一.傳送指令
格式:mov dst, src
源運算元可以使累加器,暫存器,儲存單元,立即數。
目的運算元不能為立即數。
注意問題:
源和目的運算元不能同時是段暫存器;**段暫存器cs不能作為目的暫存器;ip既不能作為源,也不能作為目的。
源運算元與目的運算元型別要一致16對16位, 8位對8位。
兩個運算元不能都為儲存器,必須有一暫存器。
資料傳送指令能實現下列傳輸功能:
1.cpu內部暫存器間資料傳送
mov ah, al
mov dl, dh
mov bp, sp
mov as, cs
2.立即數送通用暫存器或儲存單元(立即數不能直接送到段暫存器)
mov al, 2
mov si, –5
mov varb, –1
mov varw, 1234h
mov [si], 1234h
mov al, 『d』
3.暫存器與儲存器間資料傳送
mov a, varw
mov bh, [di]
mov dl, es:[si+3]
mov varb, dl
mov ds:[bp], dl
mov varw, ds
mov es, varw
--------------------------------
mov ax, offset table
offset為屬性操作符,把table偏移位址送至ax。
二.交換指令
通用暫存器與通用暫存器或儲存單元資料的交換,但不包括段暫存器,也不能同時是儲存單元,還不能有立即數。
格式:xchg oprd1, oprd2
三.位址傳送指令
(1)lea
傳送有效位址指令
格式:lea reg, oprd
oprd必須是乙個儲存器運算元
reg必須是乙個16位通用暫存器
lea ax, buffer
lea ds, [bs+s]
lea sl, [bx+si+2]
(2)lds
段值和段內偏移構成乙個32位位址指標,該指令傳送這個32位指標
格式:lds reg, oprd
reg<-[src]
ds<-[src+2]
段值送到ds
偏移送到reg
(3)指令les(load point into es)
les也是傳送32位位址指標
les reg, oprd
reg<-[src]
es<-[src+2]
四.堆疊操作指令
堆疊操作以字為單位。
(1)進棧push
格式:push src
執行操作:sp<-sp – 2
先把堆疊指標暫存器sp的值減2,然後把源運算元src送入由sp所指的棧頂,源運算元src可以是通用暫存器喝段暫存器,也可是字儲存單元。
(2)出棧pop
格式:pop dst
dst可以是通用暫存器喝段暫存器(cs例外),也可是字儲存單元。
例子1:
臨時儲存暫存器內容
push ax
push bx
pop bx
pop ax
例子2:
push si pop si
push ds pop ds
push varw pop varw
push[si] pop [si]
資料交換的三種方式:
用mov,利用暫存器過度方法
mov bx, ax
mov ax, si
mov si, bx
用交換指令xchg
xchg ax, si
用堆疊指令
push si
push ax
pop ax
pop si
五.標誌操作指令
(1)標誌傳送指令
lahf(load ah with flags)
該指令把標誌暫存器的低8位(包括sf,zf,af,pf,cf)傳送到暫存器ah的指定位。
sahf
與lahf相反
pushf
該指令把標誌暫存器內容壓入堆疊
popf
(2) 標誌位操作指令
clc清進製標誌
stc置進製標誌,進製標誌位1.
cmc進製標誌取反指令
cld清方向標誌指令,使方向標誌df為0.
std置方向標誌
cli清中斷允許標誌指令,該指令使中斷允許標誌if為0,cpu不再響應來自外部裝置的可遮蔽中斷,但對不可遮蔽中斷和內部中斷都沒有影響。
sti置中斷允許標誌允許指令,該指令使if為1,cpu可以響應可遮蔽中斷。
80X86學習筆記 轉移指令
無條件段內直接轉移指令格式 jmp 標號 使控制無條件的轉移到標號位址。例 next mov ax,cx jmp next jmp over over mov ax,1 在執行無條件段內轉移指令時,實際操作是把指令中的位址差加到指令指標ip上,使ip內容為目標位址,從而達到轉移目的。段內無條件直接轉...
80X86學習筆記 算術運算指令
加法指令add 格式 add oprd1,oprd2 操作 oprd1 oprd1 oprd2 加法指令影響標誌位,of位更具運算元符號變化情況來設定 若兩個運算元符號相同而結果與之相反時溢位,of 1,否則of 0。cf可以用來表示無符號數的溢位,最高位產生進製或借位,產生溢位,cf 1。2.帶進...
80X86學習筆記 算術運算指令
加法指令add 格式 add oprd1,oprd2 操作 oprd1 oprd1 oprd2 加法指令影響標誌位,of位更具運算元符號變化情況來設定 若兩個運算元符號相同而結果與之相反時溢位,of 1,否則of 0。cf可以用來表示無符號數的溢位,最高位產生進製或借位,產生溢位,cf 1。2.帶進...