一 資料傳輸指令

2021-04-12 23:15:12 字數 1328 閱讀 2274

───────────────────────────────────────

它們在存貯器和暫存器、暫存器和輸入輸出埠之間傳送資料.

1. 通用資料傳送指令.

mov    傳送字或位元組.

movsx  先符號擴充套件,再傳送.

movzx  先零擴充套件,再傳送.

push    把字壓入堆疊.

pop    把字彈出堆疊.

pusha  把ax,cx,dx,bx,sp,bp,si,di依次壓入堆疊.

popa    把di,si,bp,sp,bx,dx,cx,ax依次彈出堆疊.

pushad  把eax,ecx,edx,ebx,esp,ebp,esi,edi依次壓入堆疊.

popad  把edi,esi,ebp,esp,ebx,edx,ecx,eax依次彈出堆疊.

bswap  交換32位暫存器裡位元組的順序

xchg    交換字或位元組.( 至少有乙個運算元為暫存器,段暫存器不可作為運算元)

cmpxchg 比較並交換運算元.( 第二個運算元必須為累加器al/ax/eax )

xadd    先交換再累加.( 結果在第乙個運算元裡 )

xlat    位元組查表轉換.

── bx 指向一張 256 位元組的表的起點, al 為表的索引值 (0-255,即

0-ffh); 返回 al 為查表結果. ( [bx+al]->al )

2. 輸入輸出埠傳送指令.

in      i/o埠輸入. ( 語法: in 累加器, )

out    i/o埠輸出. ( 語法: out ,累加器 )

輸入輸出埠由立即方式指定時, 其範圍是 0-255; 由暫存器 dx 指定時,

其範圍是 0-65535.

3. 目的位址傳送指令.

lea    裝入有效位址.

例: lea dx,string  ;把偏移位址存到dx.

lds    傳送目標指標,把指標內容裝入ds.

les    傳送目標指標,把指標內容裝入es.

lfs    傳送目標指標,把指標內容裝入fs.

lgs    傳送目標指標,把指標內容裝入gs.

lss    傳送目標指標,把指標內容裝入ss.

4. 標誌傳送指令.

lahf    標誌暫存器傳送,把標誌裝入ah.

sahf    標誌暫存器傳送,把ah內容裝入標誌暫存器.

pushf  標誌入棧.

popf    標誌出棧.

pushd  32位標誌入棧.

popd    32位標誌出棧. 

彙編指令速查 之一 資料傳輸指令

在存貯器和暫存器 暫存器和輸入輸出埠之間傳送資料.1.通用資料傳送指令.mov 傳送字或位元組.movsx 先符號擴充套件,再傳送.movzx 先零擴充套件,再傳送.push 把字壓入堆疊.pop 把字彈出堆疊.pusha 把ax,cx,dx,bx,sp,bp,si,di依次壓入堆疊.popa 把d...

資料傳輸指令 mov

mov指令 格式 mov dst,src dst為目的運算元,src為源運算元 使 dst src 用法 1 通用暫存器之間的資料傳遞 mov reg,reg eg mov al bl 2 立即數送通用暫存器 mov reg data eg mov al 4 3 通用暫存器和儲存器之間傳送 mov ...

mov指令和資料傳輸

1.mov指令的順序是從右到左,如mov a,b,則把b的值複製給a。如 mov 目的運算元 a 源運算元 b 即a b 2.除了之前提到的movb,movw,movl,movq,還有movabsq,代表傳送絕對的四字,movq雖可傳四字,但一旦要傳立即數,則只能傳32位補碼表示的立即數,隨後把它符...