彙編(二)8086指令系統

2021-07-22 11:12:00 字數 1689 閱讀 7271

本篇介紹8086的指令系統,包括常用指令及定址方式。

cpu的全部指令集稱為指令系統,8086指令系統有如下特性:

採用可變長指令,指令格式比較複雜

定址方式多樣靈活,處理資料能力較強,可處理位元組、字、符號等

有重複指令和乘、除運算指令。擴充了條件轉移、移位/迴圈指令

增加了軟體中斷和支援多處理器有關指令

學習指令的幾個要點:指令的功能、支援的定址方式、對標誌位的影響等。

一、資料傳送指令

1、通用資料傳送指令(不影響標誌位)

mov 傳送

push 進棧

pop 出棧

xchg 交換

2、累加器專用傳送指令

in 輸入

out 輸出

xlat 換碼

3、有效位址送暫存器指令

lea 有效位址送暫存器

lds 指標送暫存器和ds

les 指標送暫存器和es

4、標誌送暫存器傳送指令

lahf 標誌送ah

sahf ah送標誌暫存器(低位元組)

pushf 標誌進棧

popf 標誌出棧

二、算術指令

1、加法指令

add 加法 src+dist->dist

adc 帶進製加法

inc 加1

2、減法指令

sub 減法

sbb 帶借位減法

dec 減1

cmp 比較 只設定符號位,不儲存結果

neg 求補 按位求反後+1

3、乘法指令

mul (ax)<-(al)*(src) (dx,ax)<-(ax)*(src) 若乘積的高一半為0,則of=cf=0

imul 帶符號乘法 若乘積高一半是低一半的符號擴充套件 則of=cf=0

4、除法指令

div 除法

idiv 帶符號除法

位元組操作:(al)<-(ax)/(src)的商

(ah)<-(ax)/(src)的餘數

字操作: (ax)<-(dx,ax)/(src)的商

(dx)<-(dx,ax)/(src)的餘數

除法錯中斷:當被除數遠大於除數,商溢位 產生除法錯中斷

5、型別轉化指令

cbw byte->word

cwd word->double

三、邏輯指令

1、邏輯運算指令

and or not xor test

2、移位指令

shl shr sal sar rol ror rcl rcr

四、串處理指令

五、控制轉移指令

1、無條件轉移

jmp2、條件轉移

jz(je) zf=1轉移

jnz(jne) zf=0轉移

js sf=1轉移

jns sf=0轉移

jo of=1轉移

jno of=0轉移

jp pf=1轉移

jnp pf=0轉移

jb(jae,jc) cf=1轉移

jnb(jnae,jnc) cf=0轉移

3、迴圈指令

loop opr cf<>1 loop

loopz/loope opr cf<>1 zf=1 loop

loopnz/loopne opr cf<>1 zf==0 loop

8086指令系統資料傳送指令

1.一般傳送指令mov 格式 mov 目標運算元 源運算元 功能 mov主要實現內容就是各種傳送 目標運算元可以為暫存器運算元 儲存器運算元 源運算元可以為立即數運算元 暫存器運算元 儲存器運算元 根據彙編規定指令的兩個運算元不能同時為儲存器運算元所以有共有5種傳送操作 1 立即數到暫存器 例 mo...

八 指令系統

1,指令系統和指令格式 1 指令是要求計算機執行特定操作的命令,一條指令對應一種特定操作,比如加,減,轉移,位移等 2 指令系統是計算機所能執行的全部指令的集合,是計算機硬體和軟體之間的橋梁,是組合語言程式設計的基礎 3 計算機指令以二進位制的形式存放在儲存器中,用二進位制編碼形式表示的指令成為機器...

組合語言 16指令系統總結

8086cpu 提供以下幾大類指令。資料傳送指令 mov push pop pushf popf xchg等都是資料傳送指令,這些指令實現暫存器和記憶體 暫存器和暫存器之間的單個資料傳送。算術運算指令 add sub adc sbb inc dec cmp imul idiv aaa等都是算術運算指...