mov指令和資料傳輸

2021-10-14 22:25:06 字數 825 閱讀 5315

1.mov指令的順序是從右到左,如mov a,b,則把b的值複製給a。如:mov 目的運算元(a)

,源運算元(b)

,即a=b

2.除了之前提到的movb,movw,movl,movq,還有movabsq,代表傳送絕對的四字,movq雖可傳四字,但一旦要傳立即數,則只能傳32位補碼表示的立即數,隨後把它符號拓展到64位。而movabsq可以直接傳64位的立即數,但是它只能以暫存器作為目的地。

3.所有mov指令都不支援從乙個記憶體位址直接傳到另乙個記憶體位址,如movw (%rax),4(%rsp)是不行的。

4.決定mov使用哪個字尾的是暫存器的大小,當兩邊操作的都是暫存器時,若大小不同,必須用第5條中的小資料複製到大目的地的型別的mov指令,當兩邊操作的是立即數和記憶體時,可以以立即數大小為準,

例子:movl $0x4050,%eax  0x4050雖然是2位元組,但%eax是4位元組,所以movl

movw %bp,%sp

movb (%rdi,%rcx),%al

movb $17,(%rsp)  立即數->記憶體

movq %rax,-12(%rbp)

5.當想將小的資料複製到大的目的地時,可以用movz或movs,前者代表用0填充高位元組,後者代表用符號填充高位元組,後面還要加上兩種轉換資料的大小,

比如movzbw(位元組->字,0填充),movswq(字->四字,符號填充),還有一種cltq指令,特指%eax->%rax的符號拓展轉換,等價於movslq %eax,%rax

注意movs和movz都是以暫存器為目的地的。

根據以上資訊,可以知道,之前的第4點中的特殊規則其實相當於是說movl可以實現movzlq的功能

資料傳輸指令 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 ...

一 資料傳輸指令

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

SQLServer和 資料傳輸簡單總結

所謂的資料傳輸,其實是指sqlserver訪問access excel間的資料。為什麼要考慮到這個問題呢?由於歷史的原因,客戶以前的資料很多都是在存入在文字中,如acess excel foxpro。現在系統公升級及資料庫伺服器如sqlserver oracle後,經常需要訪問文字資料庫中的資料,所...