8088彙編指令速查手冊

2021-06-18 13:44:26 字數 3368 閱讀 3777

jmpi是段間跳轉指令,用於x86實模式下,

如:bootseg = 0x0c70

jmpi    4, #bootseg

假如當前段cs==00h,那麼執行此指令後將跳轉到段cs==0x0c70,當然段cs的值也變為0x0c70,接下來將執行指令0x0c70:0004處的指令。

8088 彙編速查手冊                    

二、算術運算指令 

─────────────────────────────────────── 

add    加法. 

adc    帶進製加法. 

inc    加 1. 

aaa    加法的ascii碼調整. 

daa    加法的十進位制調整. 

sub    減法. 

sbb    帶借位減法. 

dec    減 1. 

nec    求反(以 0 減之). 

cmp    比較.(兩運算元作減法,僅修改標誌位,不回送結果). 

aas    減法的ascii碼調整. 

das    減法的十進位制調整. 

mul    無符號乘法. 

imul    整數乘法. 

以上兩條,結果回送ah和al(位元組運算),或dx和ax(字運算), 

aam    乘法的ascii碼調整. 

div    無符號除法. 

idiv    整數除法. 

以上兩條,結果回送: 

商回送al,餘數回送ah, (位元組運算); 

或  商回送ax,餘數回送dx, (字運算). 

aad    除法的ascii碼調整. 

cbw    位元組轉換為字. (把al中位元組的符號擴充套件到ah中去) 

cwd    字轉換為雙字. (把ax中的字的符號擴充套件到dx中去) 

cwde    字轉換為雙字. (把ax中的字符號擴充套件到eax中去) 

cdq    雙字擴充套件.    (把eax中的字的符號擴充套件到edx中去)

三、邏輯運算指令 

─────────────────────────────────────── 

and    與運算. 

or      或運算. 

xor    異或運算. 

not    取反. 

test    測試.(兩運算元作與運算,僅修改標誌位,不回送結果). 

shl    邏輯左移. 

sal    算術左移.(=shl) 

shr    邏輯右移. 

sar    算術右移.(=shr) 

rol    迴圈左移. 

ror    迴圈右移. 

rcl    通過進製的迴圈左移. 

rcr    通過進製的迴圈右移. 

以上八種移位指令,其移位次數可達255次. 

移位一次時, 可直接用操作碼.  如 shl ax,1. 

移位》1次時, 則由暫存器cl給出移位次數. 

如  mov cl,04 

shl ax,cl

四、串指令 

─────────────────────────────────────── 

ds:si  源串段暫存器  :源串變址. 

es:di  目標串段暫存器:目標串變址. 

cx      重複次數計數器. 

al/ax  掃瞄值. 

d標誌  0表示重複操作中si和di應自動增量; 1表示應自動減量. 

z標誌  用來控制掃瞄或比較操作的結束. 

movs    串傳送. 

( movsb  傳送字元.    movsw  傳送字.    movsd  傳送雙字. ) 

cmps    串比較. 

( cmpsb  比較字元.    cmpsw  比較字. ) 

scas    串掃瞄. 

把al或ax的內容與目標串作比較,比較結果反映在標誌位. 

lods    裝入串. 

把源串中的元素(字或位元組)逐一裝入al或ax中. 

( lodsb  傳送字元.    lodsw  傳送字.    lodsd  傳送雙字. ) 

stos    儲存串. 

是lods的逆過程. 

rep            當cx/ecx<>0時重複. 

repe/repz      當zf=1或比較結果相等,且cx/ecx<>0時重複. 

repne/repnz    當zf=0或比較結果不相等,且cx/ecx<>0時重複. 

repc          當cf=1且cx/ecx<>0時重複. 

repnc          當cf=0且cx/ecx<>0時重複.

五、程式轉移指令 

─────────────────────────────────────── 

1>無條件轉移指令 (長轉移) 

jmp    無條件轉移指令 

call    過程呼叫 

ret/retf過程返回. 

2>條件轉移指令 (短轉移,-128到+127的距離內) 

( 當且僅當(sf xor of)=1時,op1迴圈控制指令(短轉移) 

loop            cx不為零時迴圈. 

loope/loopz    cx不為零且標誌z=1時迴圈. 

loopne/loopnz  cx不為零且標誌z=0時迴圈. 

jcxz            cx為零時轉移. 

jecxz          ecx為零時轉移. 

4>中斷指令 

int    中斷指令 

into    溢位中斷 

iret    中斷返回 

5>處理器控制指令 

hlt    處理器暫停, 直到出現中斷或復位訊號才繼續. 

wait    當晶元引線test為高電平時使cpu進入等待狀態. 

esc    轉換到外處理器. 

lock    封鎖匯流排. 

nop    空操作. 

stc    置進製標誌位. 

clc    清進製標誌位. 

cmc    進製標誌取反. 

std    置方向標誌位. 

cld    清方向標誌位. 

sti    置中斷允許位. 

cli    清中斷允許位.

六、偽指令 

─────────────────────────────────────── 

dw      定義字(2位元組). 

proc    定義過程. 

endp    過程結束. 

segment 定義段. 

assume  建立段暫存器定址. 

ends    段結束. 

end    程式結束.

8088 彙編速查手冊

8088 彙編速查手冊 pushd 32位標誌入棧.popd 32位標誌出棧.二 算術運算指令 add 加法.adc 帶進製加法.inc 加 1.aaa 加法的ascii碼調整.daa 加法的十進位制調整.sub 減法.sbb 帶借位減法.dec 減 1.nec 求反 以 0 減之 cmp 比較.兩...

8088 彙編速查手冊

三 邏輯運算指令 and 與運算.or 或運算.xor 異或運算.not 取反.test 測試.兩運算元作與運算,僅修改標誌位,不回送結果 shl 邏輯左移.sal 算術左移.shl shr 邏輯右移.sar 算術右移.shr rol 迴圈左移.ror 迴圈右移.rcl 通過進製的迴圈左移.rcr ...

8088 彙編速查手冊

一 資料傳輸指令 它們在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓...