8086算術運算類指令

2022-09-04 12:42:11 字數 1818 閱讀 5417

算術運算指令

①加法類指令

②減法類指令

③乘法指令

④除法指令

⑤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 操作結...