补码乘法和补码除法是逻辑移位还是算术移位 对于原码,补码,反码的“算术左移/右移,逻辑左移/右移”是不...

\u8865\u7801\u9664\u6cd5\u662f\u7b97\u672f\u79fb\u4f4d\u8fd8\u662f\u903b\u8f91\u79fb\u4f4d

\u6709\u7b26\u53f7\u6570\u7684\u8865\u7801\u9664\u6cd5,\u5b9e\u8d28\u662f\u51cf\u6cd5\u8fd0\u7b97,\u4e0e\u7b97\u672f\u79fb\u4f4d\u6216\u903b\u8f91\u79fb\u4f4d\u65e0\u5173\uff1b
\u65e0\u7b26\u53f7\u6570\u9664\u4ee52,\u7528\u903b\u8f91\u53f3\u79fbSHR\u6307\u4ee4,\u4f8b\u5982\uff1a
SHR AL, 1 ; \u4f5c\u7528\u662f\u5c06AL\u4e2d\u7684\u65e0\u7b26\u53f7\u6570\u503c\u9664\u4ee52

\u539f\u7801\u3001\u8865\u7801\u3001\u53cd\u7801\u6700\u7ec8\u90fd\u8981\u8868\u793a\u6210\u4e8c\u8fdb\u5236\u5f62\u5f0f\uff0c\u53ef\u4ee5\u770b\u6210\u662f\u4e09\u4e2a\u72ec\u7acb\u7684\u4e8c\u8fdb\u5236\u6570\uff0c\u518d\u5bf9\u8fd9\u4e09\u4e2a\u6570\u5206\u522b\u8fdb\u884c\u6307\u5b9a\u7684\u79fb\u4f4d\u64cd\u4f5c\u3002
\u5982\u679c\u4e00\u5b9a\u8981\u8bf4\u6709\u4e00\u4e2a\u7edf\u4e00\u7684\u7801\uff0c\u8fd9\u4e2a\u7801\u5c31\u662f\u4e8c\u8fdb\u5236\u7801\u3002

对于原码乘法,是逻辑右移,意味着ACC寄存器中符号位不变,数值位右移补0,最低位挪到MQ寄存器符号位中去,MQ寄存器数值最低位抛弃,有n轮加法和右移(n代表寄存器中数值位位数,一般三个寄存器位数相等)
对于补码乘法,X、ACC、MQ寄存器位数为n+2(n代表数值位位数,X和ACC有双符号位,MQ含一个符号位和一个辅助位),是算数右移,如果ACC中符号位为11代表真值负数,按照负补数算术右移规则对数值位右移,数值首位补1,若为正则数值首位补0,末尾同样进入MQ中符号位。
对于原码除法,是逻辑左移,ACC中存被除数,X中存除数,MQ中存商,有n轮移位,n+1或n+2次加法
对于补码除法,也是逻辑左移。

逻辑左移及算术左移,适用于无符号数或有符号数乘法;
逻辑右移适合于无符号数除法;
算术右移适合于有符号数除法。

逻辑移位

是算数右移

  • 鍘熺爜,琛ョ爜涔橀櫎娉閲嶈鍚?鐪嬬殑濂界疮路路
    绛旓細鑰冪爺鐝殑鑰佸笀璇翠笉鏄噸鐐逛笉杩囨垜瑙夊緱杩欎釜绠鍗曞惂锛熶箻闄ゅ彧闇瑕佽寰楀氨鏄 鍘熺爜 涔锛宐ooth绠楁硶 锛闄ゆ硶鍘熺爜锛岄櫎娉 琛ョ爜 鍏朵粬瑕佹槸鑰冨氨鐪熺殑寰堜笉闈犺氨浜嗗仛涓ら亾棰樺氨鐔熺粌鍟
  • 鍘熺爜銆佸弽鐮併琛ョ爜
    绛旓細鍦ㄨ绠楁満绯荤粺涓紝鏁板硷紝涓寰嬮噰鐢琛ョ爜琛ㄧず鍜屽瓨鍌ㄣ傚師鐮佸拰鍙嶇爜锛岃绠楁満閮戒笉鐢ㄣ傝绠楁満涓紝涔熸牴鏈氨娌℃湁鍘熺爜鍜屽弽鐮併傚師鐮佸拰鍙嶇爜锛屽彧鏄敤鍦ㄨ鍫備笂銆佷功鏈腑銆傝繖浜涳紝鏄绠楁満涓撲笟鑰佸笀鐨勮楗銆
  • 浠涔鏄昏緫鍔犳硶,閫昏緫涔樻硶,闄ゆ硶,鍑忔硶
    绛旓細浣犺鐨勫簲璇ユ槸浜岃繘鍒舵暟鐨勭畻鏈繍绠楀惂銆備簩杩涘埗鏁扮殑绠楁湳杩愮畻闈炲父绠鍗曪紝瀹冪殑鍩烘湰杩愮畻鏄姞娉曘傚湪璁$畻鏈轰腑锛屽紩鍏琛ョ爜琛ㄧず鍚庯紝鍔犱笂涓浜涙帶鍒閫昏緫锛屽埄鐢ㄥ姞娉曞氨鍙互瀹炵幇浜岃繘鍒剁殑鍑忔硶銆涔樻硶鍜岄櫎娉杩愮畻銆傦紙1锛変簩杩涘埗鐨勫姞娉曡繍绠 浜岃繘鍒舵暟鐨勫姞娉曡繍绠楁硶鍒欏彧鏈夊洓鏉★細0+0=0 0+1=1 1+0=1 1+1=10(鍚戦珮浣嶈繘浣)渚嬶細...
  • Day2:Part2鈥斺旇繍绠楁柟娉曞拰杩愮畻鐢佃矾
    绛旓細4. 绮惧噯璁$畻锛氬姞鍑忚繍绠楃瓥鐣ヨˉ鐮佸姞鍑: 閫氳繃绠鍗曡鍒欏疄鐜帮紝濡傝ˉ鐮佽繍绠楋紝鍒ゆ柇鍔犲噺娉曞拰缁濆鍊煎悗杩涜鎿嶄綔銆傛孩鍑哄垽鍒: 閲囩敤绗﹀彿浣嶅垽鏂紝濡傚弻绗﹀彿浣嶆硶锛岄氳繃杩愮畻缁撴灉鐨勭鍙蜂綅纭畾婧㈠嚭鐘舵併5. 涔橀櫎杩愮畻鐨勭簿瀵嗘搷浣涔樻硶: 鐢辩疮鍔犲拰鍙崇Щ瀹炵幇锛屾秹鍙婂師鐮併佹棤绗﹀彿鏁鍜岃ˉ鐮鐨勮繍绠楁柟娉曪紝濡侭ooth绠楁硶銆闄ゆ硶: 浠庣鍙锋墿灞曞埌...
  • 浜岃繘鍒琛ョ爜杩愮畻娉曞垯
    绛旓細锛1锛夐鍏堝皢锛5鐨勪簩杩涘埗琛ョ爜011鍜3鐨勪簩杩涘埗琛ョ爜011鐩镐箻锛屽緱鍒1101锛屾鏃朵笉瀛樺湪杩涗綅銆傦紙2锛夊皢1101杞崲涓哄崄杩涘埗鏁帮紞3锛屽洜姝わ紞5脳3=锛15銆4銆佷簩杩涘埗琛ョ爜闄ゆ硶娉曞垯 鍦ㄤ簩杩涘埗琛ョ爜闄ゆ硶涓紝闇瑕佹寜鐓т簩杩涘埗闄ゆ硶鐨勮鍒欒繘琛岃繍绠楋紝骞朵笖闇瑕佹敞鎰忚礋鏁扮殑琛ョ爜琛ㄧず浼氬奖鍝嶅晢鐨勭鍙枫傚亣璁捐璁$畻锛5梅3鐨勭粨鏋滐紝鍒欏彲浠ユ寜鐓...
  • 璁$畻涓轰粈涔堜娇鐢琛ョ爜,琛ョ爜鍒板簳鏄庝箞鍥炰簨
    绛旓細鎴戠矖鐣ュ洖绛斾竴涓,闈炲ぇ绁炰笉瓒充箣澶勮繕璇锋寚鐐:浣跨敤琛ョ爜,鏄洜涓哄湪璁$畻鐨勬椂鍊,浣犵湅鍒扮殑鍔犲噺涔橀櫎,鍏跺疄璁$畻鏈哄彧鏈夊姞娉,鏃犺鍑忔硶杩樻槸涔橀櫎娉曢兘鏄閫氳繃,浣嶈繍绠(浣嶇Щ,浣嶄笌...寮傛垨...)杩涜鍔犳硶璁$畻鐨!浠ヨˉ鐮佸舰寮忓瓨鍦,杩欐牱鍙互瀵瑰叾绗﹀彿浣嶅拰鏈夋晥鍊间綅缁熶竴澶勭悊 娉ㄦ剰涓嬩綘鏈夋椂鍊欑湅鍒扮殑浜岃繘鍒舵鏁版儏鍐典笅,鍏跺疄鏄渷鐣ユ帀绗﹀彿...
  • 琛ョ爜涔樻硶闂
    绛旓細琛ョ爜锛屽仛鍔犲噺娉曪紝鑳芥湁姝g‘鐨勭粨鏋溿傝ˉ鐮侊紝鍋涔橀櫎娉锛屼笉鍙傚厛瑕佽浆鎹㈠埌鍘熺爜銆
  • 璁$畻鏈虹殑鍔犲噺涔橀櫎(鍘熺爜鍙嶇爜琛ョ爜)
    绛旓細濡傛灉鐢琛ョ爜璁板綍璐熸暟锛屽垯9 + (-9) = 0000 1001 + 1111 0110 = 1111 1111锛屽啀+1锛岀瓑浜0000 0000锛屽垰濂戒负0 鎬荤粨锛氳绠楁満涓彧鏈夊姞娉曪紝娌℃湁鍑忔硶锛岄渶瑕佺敤琛ョ爜鏉ヨ〃绀鸿礋鏁帮紝鍑忔硶鐨勮〃绀烘柟娉曞彉鎴愪簡锛氬姞涓涓礋鏁般傛澶栵紝娌℃湁涔樻硶鍜岄櫎娉锛岄偅涔堟庝箞琛ㄧず涔橀櫎鍛紵 绉讳綅锛屽乏绉讳箻2锛屽彸绉婚櫎2 姣斿3 * 5 ...
  • 鍏充簬浜岃繘鍒琛ョ爜,瀹冨彲浠ョ敤鏉ヨ〃绀哄皬鏁板悧
    绛旓細杩欑瀹氱偣灏忔暟锛屽仛鍔犲噺娉曟椂锛岄渶瑕佸皬鏁扮偣瀵归綈锛屽繀瑕佹椂闇鍏堝仛绉讳綅鎿嶄綔銆涔橀櫎娉鏃讹紝涔熻鎺屾彙灏忔暟鐐逛綅缃備緥濡傗淨8鏍煎紡鈥濆拰鈥淨4鏍煎紡鈥濈殑鏁鐩镐箻锛屽叾绉簲璇ョ湅鍋氣淨12鏍煎紡鈥濈殑銆傞渶娉ㄦ剰C璇█涓殑绉讳綅鎿嶄綔涓紝鍏垛滃彸绉烩濆垎涓衡滅畻鏈彸绉烩濆拰鈥閫昏緫鍙崇Щ鈥濅袱绉嶃傚浜庘滄湁绗﹀彿鈥濇暟锛屽疄琛岀殑鏄滅畻鏈彸绉烩濓紝瀵逛簬...
  • 灏忔暟浜岃繘鍒闄ゆ硶鎬庝箞绠?
    绛旓細涔樻硶鏄繛鍔,鍑忔硶鏄姞娉曠殑閫嗚繍绠(鍒╃敤琛ョ爜鍘熺悊,杩樺彲浠ヨ浆鍖栦负鍔犳硶杩愮畻,绫讳技閽熻〃鎷ㄩ拡鏃剁殑璁$畻),闄ゆ硶鏄箻娉鐨勯嗚繍绠椼傚叾浣欎换浣曞鏉傜殑鏁板艰绠椾篃閮藉彲浠ュ垎瑙d负鍩烘湰绠楁湳杩愮畻澶嶅悎杩涜銆備负鎻愰珮杩愮畻鏁堢巼,鍦ㄨ绠楁満涓櫎閲囩敤鍔犳硶鍣ㄥ,涔熺洿鎺ヤ娇鐢ㄤ箻娉曞櫒銆 浼楁墍鍛ㄧ煡,鍗佽繘鍒剁殑鍔犳硶鍜屼箻娉曡繍绠楄鍒欑殑鍙h瘈鍚勬湁100鏉,鏍规嵁浜ゆ崲鐜囧幓鎺夐噸澶...
  • 扩展阅读:负数补码移位会溢出吗 ... 六位补码阵列乘法器 ... 补码左移右移怎么判断溢出 ... 算术移位符号位会一起移吗 ... 用带求补器补码乘法器 ... 关于求补码方法的问题 ... 补码左移溢出规则 ... 取补码的方法 ... 补码算术左移溢出的条件 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网