算術運算指令
①加法類指令
②減法類指令
③乘法指令
④除法指令
⑤bcd嗎指令
一、加法類指令
首先我麼們先看加法類指令三個(add,adc,inc)
1)不帶進製位的加法指令add
add用來執行2個位元組或2個字的相加操作,運算時不考慮cf位
add影響of,sf,zf,af,pf,cf標誌
2)帶進製位的加法指令adc
adc在功能上和add類似,只是有一點區別,即執行adc指令時,將進製標誌cf的值加進和中。
adc dst,src ;dst
adc指令多用於多位元組相加運算,如進行兩個8位元組(64位)資料相加,應先用add指令將低32位相加,再用adc指令將高32位相加,此時會把低位位元組產生的進製傳遞到高位位元組運算中。
adc影響of,sf,zf,af,pf,cf.標誌位
3)增量指令inc
inc指令只有乙個運算元,指令執行時,將運算元內容加1,
inc指令影響af,of,pf,sf,zf.
注意:inc指令不影響進製標誌cf
二、減法類指令(sub,sbb,cmp,dec,neg)
1)比考慮借位的減法指令sub
sub和上面的加法類似,也是不帶借位的減
sub [bp+2],cl ;將ss段中的bp+2所指的單元中的值減去cl中的值,結果在bp+2所指堆疊單元中
sub影響的標誌位of,zf,af,sf,pf,cf
2)考慮借位的減法指令sbb
和上面的adc類似,就是sbb在執行減法運算時還要減去cf的值。
sbb ax,2530h ;將ax中的內容減去2530h,並減去進製位cf的值
和上面類似,這裡不在重複
3)減量指令dec
這又和上面的inc類似,就是將運算元減一,同樣不會影響cf,只是執行減一而已。
和上面都一樣,這裡不在重複。
4)求補指令nec
其實我更喜歡叫它求負指令,它就是對給出的運算元求乙個負,然後回送,可是機器內部是以補碼的形式儲存的,所以就是求補指令啦。
neg影響的標誌位af,cf,zf,pf,sf,of'
注意:①如果運算元的值為80h、8000h、80000000h,那麼執行求補指令會溢位,結果沒有變化,但溢位標誌of置1
②此指令執行時,通常使cf為1,只有當運算元為0時,cf才為0,因為此指令是用0減去某個運算元,所以除非為0,通常都會產生借位。
5)比較指令cmp
cmp也是執行兩個數相減操作,但不送回相減結果,會影響標誌位
此指令會影響標誌位af,cf,of,pf,sf,zf
那麼如果判斷比較結果呢?
答:如果比較的兩個運算元相等的話,zf = 1,根據zf就可判斷兩數是否相等
①兩個無符號比較
無符號相減時cf,就是借位標誌,如果cf為0,表示無借位,則被減數大,若果,cf為1,則表示有借位,則減數大
②兩個有符號數比較
看符號標誌sf,而符號標誌sf總是和結果的最高位相同,如果sf為0,表示被減數大,如果sf為1,則表示減數大
**來自
8086彙編 算術指令
於ibm pc組合語言程式設計 沈美明 溫冬嬋 編著 1.加法指令 必須有乙個數放在暫存器中 add dx,0f0f0h adc 帶進製加法 inc 加一 2.減法指令 sub dh,bp 4 sbb帶借位減法 dec減一 neg求補 neg opr cmp比較 與sub一樣,只是不儲存結果,設定條...
彙編(十) 算術運算類指令
算術運算類指令用來執行二進位制及十進位制的算術運算 加減乘除。這類指令會根據運算結果影響狀態標誌,有時要利用某些標誌才能得到正確的結果。一 加法指令 1 加法指令add add reg,imm reg mem reg reg imm reg mem add mem,imm reg mem mem i...
組合語言 算術運算類指令
知識回顧 幾個重要標誌位的含意 cf 進製標誌 1 算術操作最高位產生了進製或借位 0 最高位無進製或借位 pf 奇偶標誌 1 資料最低8位中1的個數為偶數 0 資料最低8位中1的個數為奇數 af 輔助進製標誌 1 d3 d4位產生了進製或借位 0 d3 d4位無進製或借位 zf 零標誌 1 操作結...