8086學習筆記 傳輸指令

2021-06-18 20:14:01 字數 2423 閱讀 1549

一.傳送指令

格式: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可以響應可遮蔽中斷。

8086彙編學習筆記5 偽指令

偽指令不同於彙編指令,彙編指令有對應cpu能夠識別的機器碼,而偽指令主由編譯器識別。1.段宣告 段名 segment 段名 ends segment和ends是用來定義乙個段,segment是乙個段的開始,ends是乙個段的結束,乙個段必須有個名稱來標識。2.匯程式設計序結束標記end end是乙個...

8086標誌操作指令

標號傳送指令 lahf 把flag低八位送入ah。不影響flag的任何位 lahf 把cf,pf,af,zf,sf送入ah的相應位即0,2,4,6,7位 sahf 把ah送入flag低八位。根據ah中的內容flag的低八位受到影響,高位不受影響 mov ah,11111111b sahf 執行後cf...

8086串操作指令

1.串傳送指令movs 常與無條件重複字首rep連用 movs 運算元1 運算元2 movsb movsw 2.串比較指令cmps 常與條件重複字首repe repz 或repne repnz 連用 cmps 運算元1 運算元2 cmpsb cmpsw repe repz cx 0且zf 1時繼續迴...