8086指令系統資料傳送指令

2021-09-28 11:15:22 字數 2721 閱讀 6961

1.一般傳送指令mov

格式:mov 目標運算元 ,源運算元

功能:mov主要實現內容就是各種傳送

目標運算元可以為暫存器運算元儲存器運算元

源運算元可以為立即數運算元暫存器運算元儲存器運算元

根據彙編規定指令的兩個運算元不能同時為儲存器運算元所以有共有5種傳送操作:

(1)立即數到暫存器 例:mov ax,1234h

(2)立即數到儲存器 例:mov [ax],1234h

(3)暫存器與暫存器 例:mov ax,bx

(4)暫存器與儲存器 例:mov [ax],bx

(5)儲存器與暫存器 例:mov ds,[1234h]

要求:

目標運算元與源運算元字長必須相等;

目標運算元與源運算元不能同時為儲存器運算元;

源運算元為立即數時,目標運算元不能是段暫存器;

目標運算元與源運算元不能同時為段暫存器;

控制暫存器flags整體不能作為運算元;

指令指標ip不能作為 目標運算元 但是可以作為 源運算元 ;

**段暫存器cs不能作為 目標運算元 但是可以作為 源運算元 ;

2.堆疊操作指令push、pop

壓棧指令push:

格式:push 源運算元(16位字運算元)

源運算元可以為:通用暫存器 段暫存器 儲存器單元(位址連續的兩個儲存單元)

例:push ax

push word ptr[ax]

word ptr表示指令訪問的記憶體單元是兩個位元組單元

執行過程:

堆疊段在記憶體中的位置由ss決定,堆疊指標sp總是指向棧頂,即sp的內容等於當前棧頂的偏移位址。壓入16位運算元,sp-2給壓入的數騰位置,然後運算元高8位壓入sp+1,運算元低八位壓入sp,sp-2成為新棧頂。

出棧指令pop:

格式:pop 目標運算元(16位字運算元)

目標運算元可以為:通用暫存器 段暫存器(cs暫存器除外) 儲存器單元(位址連續的兩個儲存單元)

例:pop ax

pop word ptr[bx]

執行過程:

堆疊段在記憶體中的位置由ss決定,堆疊指標sp總是指向棧頂,即sp的內容等於當前棧頂的偏移位址。出棧時,先出低八位,後出高八位,sp+2成為新棧頂。

3.交換指令xchg

格式:xchg 目標運算元 ,源運算元

操作結果:源位址與目標位址中的內容進行互換

要求:(1)兩運算元不能同時為儲存器

(2)兩運算元不能為段暫存器運算元(段暫存器的內容不能參加交換)

(3)兩運算元字長必須相等

例:xchg ax,bx

4.查表轉換指令xlat

格式:xlat

xlat src_table

操作結果:xlat可以根據表中元素的序號查出表中相應元素的內容

要求:表的首位址(偏移位址)送暫存器bx

查詢元素序號送al

例:lea bx,hex_table

mov al,8

xlat

此次執行結果al=38h,為8所對應的ascll碼

輸入指令in

直接定址:8位立即數表示的埠位址 (範圍:0~ffh 可定址256個埠)

暫存器間接定址:16位埠位址由dx給出 (範圍:0~ffffh 可定址64k個埠)

例:in al,3fh(直接定址)

in al,dx(暫存器間接定址)

輸出指令out字位擴充套件指令

操作示例

cbw將al中的位元組數擴充套件為字,並存放在ax中 ;擴充套件原則:將符號位擴充套件到最高位

mov al ,66h; cbw; 結果:ax=ff66h

cwd將ax中的字擴充套件為雙字,擴充套件後的高16位存放到dx中;擴充套件原則:將符號位擴充套件到最高位

mov ax,6666h ;cwd;結果ax=6666h,dx=0000h

標誌傳送指令

操作lahf

將flags低8位的內容送到ah

sahf

將ah的內容送到flags低八位

pushf

將flags的內容壓入堆疊中儲存

popf

將當前棧頂的兩個單元的內容彈出到flags中

遠位址傳送指令

操作lds reg16,mem32

mem32為記憶體中連續4個單元的首位址,[mem32]和[mem32+1]的內容送reg16,[mem+2]和[mem+3]的內容送 ds

les reg16,mem32

mem32為記憶體中連續4個單元的首位址,[mem32]和[mem32+1]的內容送reg16,[mem+2]和[mem+3]的內容送 es

彙編(二)8086指令系統

本篇介紹8086的指令系統,包括常用指令及定址方式。cpu的全部指令集稱為指令系統,8086指令系統有如下特性 採用可變長指令,指令格式比較複雜 定址方式多樣靈活,處理資料能力較強,可處理位元組 字 符號等 有重複指令和乘 除運算指令。擴充了條件轉移 移位 迴圈指令 增加了軟體中斷和支援多處理器有關...

80x86指令系統 資料傳送指令

累加器專用指令 位址傳送指令 標誌暫存器傳送指令 型別轉換指令 普通的傳送指令,src表示源運算元,dst表示目的運算元。雙運算元指令不允許兩個運算元都使用儲存器。如果其中乙個運算元為段暫存器,則另乙個運算元必須為儲存器或者暫存器。段暫存器不能是cs暫存器,另外,對於mov segreg,mem r...

八 指令系統

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