西門子cmp指令的用法 CMP指令的指令詳解?
CMP指令的指令詳解?CMP(比較)指令比較兩個操作數(shù)的大小。例如,cmpoprd1和oprd2從第一個操作中減去第二個操作數(shù),但不影響第二個操作數(shù)的值。它們影響flag的CF、ZF、of、AF和PF
CMP指令的指令詳解?
CMP(比較)指令比較兩個操作數(shù)的大小。例如,cmpoprd1和oprd2從第一個操作中減去第二個操作數(shù),但不影響第二個操作數(shù)的值。它們影響flag的CF、ZF、of、AF和PF。我們?nèi)绾闻袛喑叽纾咳绻麍?zhí)行指令后ZF=1很簡單,那么這兩個數(shù)字相等,因為0是1,所以結(jié)果是0。當沒有符號時:如果CF=1,則有進位或借位,CMP是減法運算,因此可以看作借位。因此,OPRD1<oprd2cf=0,則不存在借入,但此時應注意ZF是否為0。如果為0,則結(jié)果不是0,因此當RD2有符號時OPRD1>OP:如果SF=0,of=0,則表示此時的值為正值,并且沒有溢出。直觀可以看出,OPRD1>oprd2如果SF=1,of=0,表示此時值為負,沒有溢出;如果SF=0,of=1,表示OPRD1<oprd2此時值為正,有溢出??梢钥闯?,OPRD1<oprd2如果SF=1,of=1,則表示此時的值為負,存在溢出,可以看出,OPRD1>oprd2之所以能做出這樣的判斷,最后兩個原因是溢出的本質(zhì):如果兩個數(shù)都是正的,加起來,值都是負的,則表示兩個數(shù)都是負的負數(shù),累加且值為正數(shù),表示有溢出;正數(shù)為負數(shù),表示溢出;負數(shù)為負數(shù),表示常規(guī)溢出
比較指令(CMP)指令格式:CMP reg/MEM,reg/MEM/IMM受影響的標志位:AF、CF、of、PF,SF和ZF指令函數(shù):用第二個操作數(shù)減去第一個操作數(shù),并根據(jù)差值設(shè)置相關(guān)標志位,為后續(xù)的條件轉(zhuǎn)移指令提供條件。但差異不會被保存,因此指令中的操作數(shù)不會更改。規(guī)則與減法相同,例如cmpax,4cmpbytetetr[BX],4cmpal,ahcmpal,[BX
CMP(compare)指令比較兩個操作數(shù)的大小。例如,cmpoprd1,oprd2是第一個操作減去第二個操作,但不影響第二個操作的值。它影響標志的CF、ZF、of、AF、PF。我們?nèi)绾闻袛喑叽??R如果執(zhí)行指令后ZF=1是簡單的,那么這兩個數(shù)字相等,因為0=1表示結(jié)果為0。當沒有符號時,如果CF=1表示有進位或借位,則CMP是減法運算,因此可以看出它是借位運算。因此,OPRD1