MOVZX

MOVZX

彙編語言數據傳送指令MOV的變體。無符號擴展,並傳送。

movzx一般用於將較小值拷貝到較大值中。 這個指令是非常有用的,大家以後學程式設計的話,如果需要處理windows中的訊息,例如WM_COMMAND訊息,這個訊息結構的wParam的高16位是通知碼,而低16位則是命令id。有時候需要判斷命令id的話,則需要將這個wparam的低16位擴展成32位的,並且其餘位用0填充。這就用到了movzx。

基本介紹

  • 中文名MOVZX
  • 一般用於:將較小值拷貝到較大值中
  •  這個指令:是非常有用的,
  • 如果需要:處理windows中的訊息
簡介,舉例,總結,

簡介

movzx是將源運算元的內容拷貝到目的運算元,並將該值用0擴展至16位或者32位。但是它只適用於無符號整數。 他大致下面的三種格式。
movzx 32位通用暫存器, 8位通用暫存器/記憶體單元
movzx 32位通用暫存器, 16位通用暫存器/記憶體單元
movzx 16位通用暫存器, 8位通用暫存器/記憶體單元

舉例

例如
eax=00304000h
若執行 movzx eax, ax後 eax = 00004000h.
若執行 movzx eax, ah後 eax = 00000040h.
//windows記憶體00304000h存放在記憶體為
//00 40 30 00(這裡請參見大端小端存儲方式)所以ax = 4000h , ah = 40h
//請注意不要搞混了
當然暫存器當中是正常的順序
又如:
MOV BL,80H
MOVZX AX,BL
運行完以上彙編語句之後,AX的值為0080H。由於BL為80H,最高位也即符號位為1,但在進行無符號擴展時,其擴展的高8位均為0,故賦值AX為0080H。

總結

movzx其實就是將我們的源運算元取出來,然後置於目的運算元,目的運算元其餘位用0填充。

相關詞條

熱門詞條

聯絡我們