複製鏈接
請複製以下鏈接發送給好友

MOVZX

鎖定
彙編語言數據傳送指令MOV的變體。無符號擴展,並傳送。
movzx一般用於將較小值拷貝到較大值中。 這個指令是非常有用的,大家以後學程序設計的話,如果需要處理windows中的消息,例如WM_COMMAND消息,這個消息結構的wParam的高16位是通知碼,而低16位則是命令id。有時候需要判斷命令id的話,則需要將這個wparam的低16位擴展成32位的,並且其餘位用0填充。這就用到了movzx。
中文名
MOVZX
一般用於
將較小值拷貝到較大值中
這個指令
是非常有用的,
如果需要
處理windows中的消息

目錄

MOVZX簡介

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

MOVZX舉例

例如
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總結

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