匯編語(yǔ)言菜鳥教程 匯編語(yǔ)言中CMP是什么意思?
匯編語(yǔ)言中CMP是什么意思?CMP(比較)指令比較兩個(gè)操作數(shù)的大小。1匯編語(yǔ)言是一種面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。在匯編語(yǔ)言中,助記符代替操作碼,地址符號(hào)或標(biāo)簽代替地址碼。這樣,機(jī)器語(yǔ)言的二進(jìn)制代碼就被符號(hào)
匯編語(yǔ)言中CMP是什么意思?
CMP(比較)指令比較兩個(gè)操作數(shù)的大小。1匯編語(yǔ)言是一種面向機(jī)器的程序設(shè)計(jì)語(yǔ)言。在匯編語(yǔ)言中,助記符代替操作碼,地址符號(hào)或標(biāo)簽代替地址碼。這樣,機(jī)器語(yǔ)言的二進(jìn)制代碼就被符號(hào)所取代,機(jī)器語(yǔ)言就變成了匯編語(yǔ)言。所以匯編語(yǔ)言也被稱為符號(hào)語(yǔ)言。用匯編語(yǔ)言編寫的程序不能被機(jī)器直接識(shí)別。程序是用來(lái)把匯編語(yǔ)言翻譯成機(jī)器語(yǔ)言的。這種翻譯程序稱為匯編程序。匯編程序是系統(tǒng)軟件中的語(yǔ)言處理系統(tǒng)軟件。匯編程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言的過(guò)程稱為匯編。2示例:cmpoprd1,oprd2,是第一個(gè)操作減去第二個(gè)操作,但不影響兩個(gè)操作數(shù)的值,它影響CF,ZF,of,AF,PF of標(biāo)志。如果執(zhí)行指令后ZF=1,則兩個(gè)數(shù)字相等,因?yàn)?是1,所以結(jié)果是0。當(dāng)沒(méi)有符號(hào)時(shí),CF=1表示進(jìn)位或借位,CMP是減法運(yùn)算,因此可以看作借位。因此,oprd1oprd2,當(dāng)有符號(hào)時(shí),如果SF=0,of=0,則該值為正,不存在溢出。直觀地可以看出,OPRD1>oprd2,如果SF=1,of=0,則該值為負(fù)且沒(méi)有溢出,則oprd1oprd2。
匯編語(yǔ)言中CMP是什么意思?
CMP是一種比較指令。CMP的功能相當(dāng)于減法指令,但結(jié)果不保存。在執(zhí)行CMP指令之后,它將影響標(biāo)志寄存器。其他相關(guān)指令通過(guò)識(shí)別受影響的標(biāo)志寄存器位來(lái)知道比較結(jié)果。例如:mov ax、8 mov BX、3 CMP ax、執(zhí)行后的BX:ax=8、ZF=0、PF=1、SF=0、CF=0、of=0。在執(zhí)行CMP指令后,可以從相關(guān)標(biāo)志位的值中看到比較結(jié)果。CMP、ax和BX的邏輯意義是比較ax和BX中的值。如果ZF=1,ax=BX,ZF=0,ax!=Bxsf=1,那么ax
在匯編語(yǔ)言中,CMP和CMPs是比較指令。主要區(qū)別如下:(r1)CMP比較指令是對(duì)兩個(gè)數(shù)(包括有符號(hào)數(shù))進(jìn)行減法運(yùn)算。CMPs比較指令是對(duì)兩個(gè)字符串進(jìn)行減法運(yùn)算,所有數(shù)據(jù)都被認(rèn)為是一個(gè)無(wú)符號(hào)數(shù)。R 2。CMP比較指令必須有兩個(gè)顯式操作數(shù)。R CMPs compare指令可以有兩個(gè)顯式操作數(shù),或者指令cmpsb或cmpsw可以用來(lái)表示字節(jié)字符串比較或字符串比較以及隱式操作數(shù)。R 3。當(dāng)CMP比較指令用于比較連續(xù)數(shù)據(jù)時(shí),程序必須更改其中一個(gè)操作數(shù)。R當(dāng)CMPs比較指令用于比較連續(xù)字符時(shí),將Si尋址的源字符串中的數(shù)據(jù)與di尋址的目標(biāo)字符串中的數(shù)據(jù)進(jìn)行比較。執(zhí)行比較指令后,Si和Di將自動(dòng)調(diào)整。
匯編語(yǔ)言中CMP和CMPS有什么不同?
例如,在您的示例中,CMP BX,0------將寄存器BX與0進(jìn)行比較,jge next------當(dāng)結(jié)果為“大于或等于”時(shí),轉(zhuǎn)到下一語(yǔ)句執(zhí)行g(shù),即大于,E,即等于