算術(shù)指令
一、加法指令
12、加法指令A(yù)DD (addition)
指令的匯編格式:add dst,src
指令的基本功能:(dst)《-(src)+(dst)
指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。
指令對標(biāo)志位的影響:SF=1 加法結(jié)果為負(fù)數(shù)(符號位為1)
SF=0 加法結(jié)果為正數(shù)(符號位為0)
ZF=1 加法結(jié)果為零
ZF=0 加法結(jié)果不為零
CF=1 最高有效位向高位有進(jìn)位
CF=0 最高有效位向高位無進(jìn)位
OF=1 兩個(gè)同符號數(shù)相加(正數(shù)+正數(shù)或負(fù)數(shù)+負(fù)數(shù)),結(jié)果符號與其相反。
OF=0 兩個(gè)不同符號數(shù)相加,或同符號數(shù)相加,結(jié)果符號與其相同。
13、帶進(jìn)為加法指令ADC (add with carry)
指令的匯編格式:ADD dst,src
指令的基本功能:(dst)《-(src)+(dst)+CF
指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。
指令對標(biāo)志位的影響:SF=1 加法結(jié)果為負(fù)數(shù)
SF=0 加法結(jié)果為正數(shù)
ZF=1 加法結(jié)果為零
ZF=0 加法結(jié)果不為零
CF=1 最高有效位向高位有進(jìn)位
CF=0 最低有效位相高位無進(jìn)位
OF=1 兩個(gè)同符號數(shù)相加,結(jié)果符號與其相反,
OF=0 兩個(gè)同符號數(shù)相加,或同符號相加,結(jié)果符號與其相同
14、加1指令I(lǐng)NC (increament)
指令的匯編格式:INC opr
指令的基本功能:(opr)《-(opr)
指令支持的尋址方式可以使用除立即數(shù)方式外的任何尋址方式
指令對標(biāo)志位的影響:SF=1 加法結(jié)果為負(fù)數(shù)
SF=0 加法結(jié)果為正數(shù)
ZF=1 加法結(jié)果為零
ZF=0 加法結(jié)果不為零
OF=1 兩個(gè)同符號數(shù)相加,結(jié)果符號與其相反,
OF=0 兩個(gè)同符號數(shù)相加,或同符號相加,結(jié)果符號與其相同。
二、減法指令
15、減法指令SUB (subtract)
指令的匯編格式:SUB dst,src
指令的基本功能:(dst)《-(dst)-(src)
指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。
指令對標(biāo)志位的影響:SF=1 減法結(jié)果為負(fù)數(shù)(符號位為1)
SF=0 減法結(jié)果為正數(shù)(符號位為0)
ZF=1 減法結(jié)果為零
ZF=0 減法結(jié)果不為零
CF=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況)
CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(shù)〉=減數(shù),夠減的情況)
OF=1 兩數(shù)符號相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)),而結(jié)果符號與減數(shù)相同。
OF=0 同符號數(shù)相減時(shí),或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
16、帶借位減法指令SBB (subtract with borrow)
指令的匯編格式:SBB dst,src
指令的基本功能:(dst)《-(dst)-(src)-CF
指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。
指令對標(biāo)志位的影響:SF=1 減法結(jié)果為負(fù)數(shù)(符號位為1)
SF=0 減法結(jié)果為正數(shù)(符號位為0)
ZF=1 減法結(jié)果為零
ZF=0 減法結(jié)果不為零
CF=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況)
CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(shù)〉=減數(shù),夠減的情況)
OF=1 兩數(shù)符號相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)),而結(jié)果符號與減數(shù)相同。
OF=0 同符號數(shù)相減時(shí),或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
17、減1指令DEC (decrement)
指令的匯編格式:DEC opr
指令的基本功能:(opr)《-(opr)-1
指令支持的尋址方式:可以使用除立即數(shù)方式外的任何尋址方式。
指令對標(biāo)志位的影響:SF=1 減法結(jié)果為負(fù)數(shù)(符號位為1)
SF=0 減法結(jié)果為正數(shù)(符號位為0)
ZF=1 減法結(jié)果為零
ZF=0 減法結(jié)果不為零
OF=1 兩數(shù)符號相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)),而結(jié)果符號與減數(shù)相同。
OF=0 同符號數(shù)相減時(shí),或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
18、比較指令CMP (compare)
指令的匯編格式:CMP opr1,opr2
指令的基本功能:(opr1)-(opr2),根據(jù)相減結(jié)果設(shè)置條件碼,但不回送結(jié)果。
指令支持的尋址方式:他們兩個(gè)操作數(shù)不能同時(shí)為存儲器尋址。即為除源操作數(shù)為立即數(shù)的情況外,源操作數(shù)和目地操作數(shù)必須有一個(gè)寄存器尋址方式。
指令對標(biāo)志位的影響:
SF=1 減法結(jié)果為負(fù)數(shù)(符號位為1)
SF=0 減法結(jié)果為正數(shù)(符號位為0)
ZF=1 減法結(jié)果為零
ZF=0 減法結(jié)果不為零
CF=1 二進(jìn)制減法運(yùn)算中最高有效位向高位有借位(被減數(shù)小于減數(shù),不夠減的情況)
CF=0 二進(jìn)制減法運(yùn)算中最高有效為向高位無借位(被減數(shù)〉=減數(shù),夠減的情況)
OF=1 兩數(shù)符號相反(正數(shù)-負(fù)數(shù),或負(fù)數(shù)-正數(shù)),而結(jié)果符號與減數(shù)相同。
OF=0 同符號數(shù)相減時(shí),或不同符號數(shù)相減,其結(jié)果符號與減數(shù)不同。
19、求補(bǔ)指令NEG (negate)
指令的匯編格式:NEG opr
指令的基本功能:(opr)《- -(opr)
指令支持的尋址方式:可以使用除立即數(shù)方式外的任何尋址方式。
指令對標(biāo)志位的影響:CF=1 不為0的操作數(shù)求補(bǔ)時(shí)
CF=0 為0的操作數(shù)求補(bǔ)時(shí)
OF=1 操作數(shù)為-128(字節(jié)運(yùn)算)或操作數(shù)為-32768(字運(yùn)算)
OF=0 當(dāng)求補(bǔ)運(yùn)算的操作數(shù)不為-128(字節(jié))或-32768(字)時(shí)三、乘法指令
20、無符號乘法指令NUL (unsigned multiple)
有符號乘法指令 IMUL(signed muliple)
指令的匯編格式:NUL src IMUL src
指令的基本功能:(AX)《-(AL)*(src) (DX,AX)《-(AX)*(src)
指令支持的尋址方式:src可以使用除立即數(shù)方式以外的任一種尋址方式。
指令對標(biāo)志位的影響:乘法指令只影響標(biāo)志位CF和OF,其他條件碼位無定義。MUL指令的條件碼設(shè)置為:
CF OF=0 0 乘積的高一半為0(字節(jié)操作的(AH)或字操作的(DX))
CF OF=1 1 乘積的高一半不為0
IMUL指令的條件碼設(shè)置為:
CF OF=0 0 乘積的高一半為低一半的符號擴(kuò)展。
CF OF=1 1 其他情況
指令的特殊要求:MUL和IMUL指令的區(qū)別僅在于操作數(shù)是無符號還是帶符號數(shù),它們的共同點(diǎn)是,指令中只給出源操作數(shù)src,目的操作數(shù)是隱含的,它只能是累加器(字運(yùn)算為AX,字節(jié)運(yùn)算為AL)。隱含的乘積寄存器是AX或DX(高位)和AX(低位)。
四、符號擴(kuò)展指令
21、節(jié)擴(kuò)展為字CBW (convert byte to word)
指令的匯編格式:CBW
指令的基本功能:(AH)=00H 當(dāng)(AL)的最高有效位為0時(shí)
?。ˋH)=FFH 當(dāng)(AL)的最高有效位為1時(shí)
指令對標(biāo)志位的影響:不影響標(biāo)志位
指令的特殊要求:這是條無操作數(shù)的指令,進(jìn)行符號擴(kuò)展的操作數(shù)必須存放在AL寄存器 AX寄存器中。
22、字?jǐn)U展為雙字CWD (convert word to double word)
指令的匯編格式:CWD
指令的基本功能:(DX)=0000H 當(dāng)(AX)的最高有效位為0時(shí)
?。―X)=FFFFH 當(dāng)(AX)的最高有效位為1時(shí)
指令對標(biāo)志位的影響:不影響標(biāo)志位
指令的特殊要求:這是條無操作數(shù)的指令,進(jìn)行符號擴(kuò)展的操作數(shù)必須存放在AL寄存器或AX寄存器中。
五、除法指令23、無符號數(shù)除法DIV (unsigned divide)
帶符號數(shù)除法 IDIV (singed divide)
指令的匯編格式:DIV src IDIV src
指令的基本功能:字操作
?。ˋL)《-(AX)/src的商 (AH)《-(AX)/src的余數(shù)字節(jié)操作
(AX)《-(DX,AX)/src的商 (DX)《-(DX,AX)/src的余數(shù)
指令支持的尋址方式:src作為除數(shù),可用除立即數(shù)以外的任一種尋址方式來取得。
指令對標(biāo)志位的影響:不影響條件碼。
指令的特殊要求:除法指令要求字操作時(shí),被除數(shù)必須為32位,除數(shù)是16位,商和余數(shù)是16位的;字節(jié)操作時(shí),被除數(shù)必須為16位,除數(shù)是8位,得到的商和余數(shù)是8位的。
六、十進(jìn)制調(diào)整指令
評論
查看更多