組合語言 算術運算類指令

2021-10-05 20:21:44 字數 1237 閱讀 5356

知識回顧——幾個重要標誌位的含意

cf(進製標誌) =1 算術操作最高位產生了進製或借位 =0 最高位無進製或借位 ;

pf(奇偶標誌) =1 資料最低8位中1的個數為偶數 =0 資料最低8位中1的個數為奇數;

af(輔助進製標誌) =1 d3→d4位產生了進製或借位 =0 d3→d4位無進製或借位;

zf(零標誌) =1 操作結果為0 =0 結果不為0;

sf(符號標誌) =1 結果最高位為1 =0 結果最高位為0;

of(溢位標誌) =1 此次運算發生了溢位 =0 無溢位。

加法指令

加法指令add

加法指令adc

mov ax,4652h	;ax=4652h

mov dx,0234h ;dx=0234h

mov cx,0f0f0h ;cx=0f0f0h

mov bx,0f0f0h ;bx=0f0f0h

add ax,cx ;ax=3742h,cf=1

adc dx,bx ;dx=f325h,cf=0

增量指令inc

inc reg/mem ;reg/mem←reg/mem+1

加法調整指令daa減法指令sub

帶借位減法指令sbb

mov ax,4652h	;ax=4652h

sub ax,0f0f0h ;ax=5562h,cf=1

mov dx,0234h ;dx=0234h

sbb dx,0f0f0h ;dx=1143h,cf=1

;dx-ax= 0234 4652h

-f0f0 f0f0h

=1143 5562h

減量指令dec

比較指令cmp

cmp al,100 ; al←100

jb be; al<100, 跳轉到be處執行

sub al,100; al>100, a←al-100

inc ah; ah←ah+1

be:...

執行比較指令之後,可以根據標誌判斷兩個數是否相等、大小關係等

壓縮bcd碼減法das無符號數乘法 mul

帶符號數乘法指令imul無符號數除法指令

帶符號數除法指令

彙編(十) 算術運算類指令

算術運算類指令用來執行二進位制及十進位制的算術運算 加減乘除。這類指令會根據運算結果影響狀態標誌,有時要利用某些標誌才能得到正確的結果。一 加法指令 1 加法指令add add reg,imm reg mem reg reg imm reg mem add mem,imm reg mem mem i...

組合語言 彙編指令

功能 用來進行資料傳輸。以 mov a,b 為例,相當於a b。具有以下形式 mov 暫存器,資料 mov 暫存器,暫存器 mov 暫存器,記憶體單元 mov 記憶體單元,暫存器 mov 段暫存器,暫存器 功能 用來做加法。以 add a,b 為例,相當於a a b。具有的形式,和 mov 一樣。功...

組合語言 控制轉移類指令

1 無條件轉移指令 根據轉移的距離,jmp指令可分為兩類 段內轉移和段間轉移 段內轉移是在同一 段內進行,又稱近轉移,只要修改ip的值即可實現 段間轉移可以在不同 之間進行,又稱遠轉移,需要同時修改cs和ip的值。直接轉移是指轉移的目標位址直接出現在指令中,在程式執行前就已經確定 間接轉移是指轉移的...