**於ibm pc組合語言程式設計 沈美明 溫冬嬋 編著
負責把 資料,位址或立即數傳送到暫存器或者儲存單元中.
1. 通用資料傳送指令
mov, push, pop, xchg
mov指令在cpu內或cpu和儲存器之間傳送位元組或字, 目的運算元不允許使用立即數, 也不能用cs暫存器, 不允許用mov指令在兩個儲存單元之間直接傳送資料,也不允許在兩個段暫存器之間直接傳送資訊.
mov指令不影響標誌位
mov ax, data_seg,
mov ds, ax ;;段位址必須通過暫存器如ax送到ds暫存器
mov al, 'e'
mov bx, offset table
mov ax, y[bp][si]
push ax
(sp)=(sp) -2
((sp)+1, (sp)) = (ax)
pop ax
(ax) = ((sp) +1, (sp))
(sp) = (sp) + 2
xchg opr1, opr2
(opr1) (opr2) 交換資料
2. 累加器專用傳送指令
in al, port
in ax, port
out port, al
out port, ax
如:in ax, 28h
mov data_word, ax
mov dx, 3fch
in ax, dx
xlat換碼指令
3. 位址傳送指令
lea 有效位址送暫存器
如: lea bx, [bx + si + 0f62h]
(bx) = 0400h, (si) =003ch
執行完指令後
(bx) = 0400 +003c +0f62 = 139eh
les 指標送暫存器和es指令
les di, [bx]
如:les di, [bx]
(ds)=b000h, (bx) =080ah, (0b080h) = 05aeh, (0b080ch) = 4000h
則執行完後
(di)=05eh , (es) = 4000h
lds 指標送暫存器和ds指令
如:lds si , [10h]
(ds)=c000h, (c0010h) =0180h, (c0012h) = 2000h
則執行完後
(si) = 0180h, (ds)=2000h
4. 標誌暫存器傳送指令
lahf 標誌送ah
sahf ah送標誌暫存器
pushf 標誌進棧
(sp) = (sp) - 2
((sp) + 1, ( sp)) = (psw)
popf 標誌出棧
(psw) = ((sp) + 1 , (sp))
(sp) = (sp) + 2
8086彙編 rep 指令
rep指令常和串傳送指令搭配使用 功能 根據cx的值,重複執行後面的指令 功能 以位元組為單位傳送 1 es 16 di ds 16 si 2 如果df 0則 si si 1 di di 1 如果df 1則 si si 1 di di 1 功能 以字為單位傳送 1 es 16 di ds 16 si...
8086彙編 call 指令
字面意思 呼叫子程式 實質 流程轉移指令,它們都修改ip,或同時修改cs和ip call指令實現轉移的方法和 jmp 指令的原理相似 格式 call 標號 返回指令 ret retf cpu執行call指令,進行兩步操作 1 將當前的 ip 或 cs和ip 壓入棧中 2 轉移到標號處執行指令。cal...
8086彙編 Loop 指令
功能 實現迴圈 計數型迴圈 cpu 執行loop指令時要進行的操作 用cx和loop 指令相配合實現迴圈功能的三個要點 1 在cx中存放迴圈次數 2 用標號指定迴圈開始的位置 3 在標號和loop 指令的中間,寫上要迴圈執行的程式段 迴圈體 如果 cx 0,ip ip 8位位移 10op指令示例程式...