汇编语言中CMP和CMPS有什么不同 汇编语言里“#”是什么意思?
\u6c47\u7f16\u8bed\u8a00\u4e2d\uff0c\u201c@\u201d,\u201c#\u201d\uff0c\u90fd\u6709\u4ec0\u4e48\u542b\u4e49\uff1f#\u8868\u793a\u7acb\u5373\u6570\u5bfb\u5740\u3002\u91c7\u7528\u7acb\u5373\u5bfb\u5740\u65b9\u5f0f\u7684\u6307\u4ee4\uff0c\u5728\u7acb\u5373\u6570\u524d\u9762\u52a0\u4e0a\u7acb\u5373\u5bfb\u5740\u7b26\u201c#\u201d\u3002
\u4f8b\u5982\u6307\u4ee4MOV A\uff0c#30H\u4e2d30H\u5c31\u662f\u7acb\u5373\u6570\uff0c\u6307\u4ee4\u529f\u80fd\u4e3a\u5c0630H\u8d4b\u7ed9\u7d2f\u52a0\u5668A\u3002
@\u8868\u793a\u5bc4\u5b58\u5668\u7684\u95f4\u63a5\u5bfb\u5740\u3002
\u4f8b\u5982\u6307\u4ee4MOV A\uff0c@R0\u5c31\u4f7f\u7528\u4e86\u5bc4\u5b58\u5668\u95f4\u63a5\u5bfb\u5740\u65b9\u5f0f\uff0c\u8fd9\u6761\u6307\u4ee4\u7684\u610f\u4e49\u4e3a\u5c06\u5730\u5740\u6307\u9488R0\u6307\u5411\u7684\u5185\u90e8\u6570\u636e\u5b58\u50a8\u5668\u5355\u5143\u4e2d\u7684\u6570\u636e\u9001\u5165\u7d2f\u52a0\u5668A\u4e2d\u3002\u5047\u8bbeR0\u4e2d\u5185\u5bb9\u4e3a30H\uff0c\u5219\u6b64\u6307\u4ee4\u7684\u529f\u80fd\u662f\u4ee5R0\u5bc4\u5b58\u5668\u7684\u5185\u5bb930H\u4e3a\u5730\u5740\uff0c\u628a\u5185\u90e8RAM 30H\u5355\u5143\u4e2d\u7684\u5185\u5bb9\u4f20\u9001\u7ed9\u7d2f\u52a0\u5668A\u3002
\u6c47\u7f16\u8bed\u8a00\u4e2d\u7684\u201c#\u201d\u4ee3\u8868\u7684\u662f\u5bfb\u5740\u65b9\u5f0f\u4e3a\u7acb\u5373\u5bfb\u5740\u3002
\u6bd4\u5982\u6307\u4ee4: MOV A,#21H
MOV\u610f\u601d\u662f\u5355\u7247\u673a\u7247\u5185RAM\u4e4b\u95f4\u4f20\u9001\uff0c\u8be5\u6307\u4ee4\u7684\u610f\u601d\u662f\uff1a\u5c06\u503c21H\u9001\u7ed9\u5bc4\u5b58\u5668A\u4e2d\u6682\u5b58\uff1b
\u5982\u679c\u628a\u201c#\u201d\u53bb\u6389\uff0cMOV A,21H\u8be5\u6307\u4ee4\u5bfb\u5740\u65b9\u5f0f\u53d8\u4e86\uff0c\u4e3a\u76f4\u63a5\u5bfb\u5740\uff0c21H\u5c31\u4e0d\u662f\u503c\u4e86\uff0c\u800c\u53d8\u6210\u4e86\u4e00\u4e2a\u5730\u5740\uff0c\u610f\u601d\u4e3a\uff1a\u5c0621H\u8fd9\u4e2a\u5730\u5740\u91cc\u9762\u4e2d\u7684\u5185\u5bb9\u9001\u7ed9\u5bc4\u5b58\u5668A\u4e2d\u6682\u5b58\u3002
\u5176\u4e2d\u5355\u7247\u673a\u4e2d\u7684\u5bfb\u5740\u65b9\u5f0f\u4e3a7\u79cd\u65b9\u5f0f\uff0c\u5206\u522b\u4e3a\uff1a\u7acb\u5373\u5bfb\u5740\uff0c\u76f4\u63a5\u5bfb\u5740\uff0c\u4f4d\u5bfb\u5740\uff0c\u5bc4\u5b58\u5668\u5bfb\u5740\uff0c\u5bc4\u5b58\u5668\u95f4\u63a5\u5bfb\u5740\uff0c\u53d8\u5740\u5bfb\u5740\uff0c\u76f8\u5bf9\u5bfb\u5740\u3002
串比较用cmps.
汇编语言中,CMP和CMPS都是比较指令,不同主要有:
1、CMP比较指令是执行两个数的相减操作,包括有符号数。
CMPS比较指令是执行两个字符串的相减操作,所有数据认为是无符号数。
2、CMP比较指令必须有两个显式操作数。
CMPS比较指令可以有两个显式操作数,也可以使用指令CMPSB或CMPSW分别表示字节串比较或字串比较而隐含操作数。
3、使用CMP比较指令比较连续的数据时,必须由程序改变其中一个操作数。
使用CMPS比较指令比较连续的字符时,对由SI寻址的源串中数据与由DI寻址的目的串中数据进行比较,执行完一条比较指令,SI,DI将自动调整.
绛旓細鏈夌鍙锋暟銆佹棤绗﹀彿鏁伴兘鏄敤cmp銆備覆姣旇緝鐢╟mps.
绛旓細CMPS鍙互鏈変笉鍚岀殑褰㈠紡锛屽寘鎷晢涓氱増鏈拰寮婧愮増鏈銆傜敤鎴峰彲浠ユ牴鎹叾闇姹傚拰棰勭畻閫夋嫨涓嶅悓绫诲瀷鐨凜MPS銆CMps鏄竴绉嶈绠楁満鎿嶄綔绯荤粺(Operating System)銆1.CMps鏄竴绉嶈绠楁満鎿嶄綔绯荤粺銆2.鍘熷洜锛欳Mps鏄熀浜嶮PS鐨勪竴涓绠楁満鎿嶄綔绯荤粺锛屽畠鏄负CPU鍜岀‖浠惰澶囦笂鐨勭▼搴忔彁渚涜繍琛岀幆澧冨拰璧勬簮绠$悊鍔熻兘鐨勮蒋浠躲侰Mps绯荤粺琚箍娉涘簲鐢ㄤ簬...
绛旓細CMP锛圕oMPare锛 姣旇緝鎸囦护 MUL锛坲nsinged MULtiple锛 鏃犵鍙锋暟涔樻硶鎸囦护 IMUL锛坰Igned MUL tiple锛 鏈夌鍙锋暟涔樻硶鎸囦护 DIV锛坲nsigned DIVide锛 鏃犵鍙锋暟闄ゆ硶鎸囦护 IDIV锛坰Igned DIVide锛 鏈夌鍙锋暟闄ゆ硶鎸囦护 CBW锛圕ount Byte to Word锛 瀛楄妭杞崲涓哄瓧鎸囦护 CWD锛圕ount Word to Doble word锛 瀛楄浆鎹负鍙屽瓧鎸囦护...
绛旓細cmps 鎸囦护(涓叉瘮杈) (瀛楃涓叉搷浣滄寚浠) 鍗曚釜姣旇緝 閲嶅姣旇緝 scas 鎸囦护(涓叉壂鎻)(瀛楃涓叉搷浣滄寚浠) 鍗曚釜鎼滅储 閲嶅鎼滅储 lods 鎸囦护(瑁呭叆涓) (瀛楃涓叉搷浣滄寚浠) 鍗曚釜瑁呰浇 閲嶅瑁呰浇 stos 鎸囦护(淇濆瓨涓) (瀛楃涓叉搷浣滄寚浠) 鍗曚釜瀛樺偍 閲嶅瀛樺偍 mov 鎸囦护(浼犻佸瓧鎴栧瓧鑺)(鏁版嵁浼犻佸懡浠) 瀵勫瓨鍣ㄤ笌瀵勫瓨鍣ㄩ棿浼犻 瀛樺偍鍣ㄤ笌瀵勫瓨鍣ㄩ棿...
绛旓細鍏跺疄缁忓父鐢ㄥ氨浼氳浣忎簡锛屼笉闇瑕佽〃锛屽叾瀹炰篃娌′粈涔堝姪璁扮琛
绛旓細scas鎸囦护鏄敤al(鎴朼x)涓鐨鍊煎鐩殑涓(es:di鎴杄di)涓殑瀛楄妭(鎴栧瓧)杩涜鎵弿,甯镐笌repnz(涓嶇浉绛夌户缁)鎴杛epz(鐩哥瓑缁х画)杩炵敤,cmps鏄敤婧愪覆(si鎴杄si)涓庣洰鐨勪覆(es:di鎴杄di)杩涜瀛楄妭鎴栧瓧姣旇緝,涔熷父涓巖epz(鐩哥瓑缁х画)鎴杛epnz(涓嶇浉绛夌户缁)杩炵敤,
绛旓細瀛楃涓叉瘮杈冩寚浠cmps鍜屽瓧绗︿覆鎵弿鎸囦护scas锛岀‘瀹為兘鏈変袱涓搷浣滄暟銆備絾杩欎袱涓寚浠ょ殑鎿嶄綔鏁颁笉涓鏍凤紝瀛楃涓叉瘮杈冩寚浠cmps鐨涓や釜鎿嶄綔鏁伴兘鍦ㄥ唴瀛樺崟鍏冦備絾瀛楃涓叉壂鎻忔寚浠cas鐨勪袱涓搷浣滄暟锛屼竴涓湪绱姞鍣ㄤ腑锛屽彟涓涓搷浣滄暟鍦ㄥ唴瀛樺崟鍏冦傚叧浜庡瓧绗︿覆姣旇緝鎸囦护cmps鐨勪袱涓搷浣滄暟閮藉湪鍐呭瓨鍗曞厓鐨勯棶棰橈紝杩欒鍏蜂綋闂鍏蜂綋鍒嗘瀽...
绛旓細姹囩紪璇█x86澶勭悊鍣ㄦ寚浠ら泦鍖呭惈澶氫釜鍏抽敭閮ㄥ垎锛屼互瀹炵幇鏁版嵁浼犺緭銆佺畻鏈昏緫杩愮畻銆佷綅鎿嶄綔鍜屾帶鍒惰浆绉荤瓑涓嶅悓鍔熻兘銆傞鍏堬紝鏁版嵁浼犻佹寚浠ゅMOV銆丆MOVcc锛堟牴鎹瓻FLAGS鐨勭姸鎬佸喅瀹氭搷浣滐級浠ュ強鍫嗘爤鎿嶄綔鎸囦护锛圥USH/ POP绛夛級鐢ㄤ簬鏁版嵁鐨勪紶杈撳拰瀛樺偍銆傛暣鏁板拰閫昏緫杩愮畻鎸囦护锛屽ADD銆丼UB銆CMP銆丮UL绛夛紝鎵ц鍩烘湰鐨绠楁湳鍜岄昏緫杩愮畻銆傜Щ浣...
绛旓細鍔熻兘:浠庣洰鏍囨搷浣滄暟涓噺鍘绘簮鎿嶄綔鏁,鍐嶅噺鍘诲熶綅CF,骞舵妸缁撴灉瀛樺叆鐩爣鎿嶄綔鏁般 (3)DEC 鍑1鎸囦护; (OPR)鈫(OPR)鈥1鏍煎紡:DEC OPR鍔熻兘:灏嗙洰鏍囨搷浣滄暟鍑1銆 (4)NEG 姹傝ˉ鎸囦护鏍煎紡:NEG OPR;(OPR)鈫10000H鈥(OPR);16浣嶅姛鑳:浣挎搷浣滄暟鎸変綅姹傚弽鍐嶅姞1,缁撴灉閫佸叆鐩爣鎿嶄綔鏁般 (5)CMP 姣旇緝鎸囦护鏍煎紡:CMP OPR1,OPR2...
绛旓細鍖哄埆锛歋CAS鍙渶鎸囧嚭鐩殑涓诧紝婧愪覆鍦ㄩ粯璁ゅ瘎瀛樺櫒涓紝CMPS闇瑕佹寚鍑轰袱涓覆 涓叉壂鎻忔寚浠CAS 鍙傛暟鏄殣鍚搷浣滄暟鍑忕洰鐨勪覆OPD 鎸囦护鏍煎紡锛歋CAS OPD 涓叉瘮杈冩寚浠CMPS 灏嗘簮涓睴PS鍑忕洰鐨勪覆OPD 鎸囦护鏍煎紡锛欳MPS OPS,OPD