-
mov指令
-
语法格式如下
mov dest, source ; 将原操作数移动到目标操作数, 或者说是给目标赋值 ; 标准格式如下 reg代表寄存器, mem代表内存, imm代表立即数 mov reg, reg mov mem, reg mov reg, mem mov mem, imm mov reg, imm
-
注意点
-
两个操作数的大小必须是一样的
;例如 如下代码eax是32寄存器, bx是16位寄存器,大小不一样则会编译失败, 报 instruction operands must be the same size错误 mov eax, bx
-
两个操作数不能同时为内存操作数
;例如如下代码val1,val2两个都是内存操作数,报 invaild instruction operands错误 .data val1 BYTE 1 val2 BYTE 2 .code main PROC mov val1, val2 INVOKE ExitProcess, 0 main ENDP END main
-
指令寄存器(IP、EIP、RIP)不能做操作数
;例如如下代码给eip赋值,报 undefined symbol: eip错误 mov eip, eax
-
-
-
movzx指令
-
语法格式如下
movzx dest, source ; 和mov有所不同, mov操作符要求源操作数和目标操作数的大小相同, 而movzx则要求源操作数的位数小于目标操作数,且目标不能为立即数。执行movzx之后目标操作数的高位全部置为0 ; 标准格式如下 movzx reg32, reg/mem ; 将8位或16位的寄存器或内存移动到32位的寄存器中, 低位赋值,高位置为0 movzx reg16, reg/mem ; 将8位寄存器或内存移动到16位的寄存器中, 低位赋值,高位置为0
-
注意点
-
指令寄存器(IP、EIP)不能做操作数
-
-
x86汇编语言mov、movzx、movsx、sizeof、lengthof等指令
于 2022-06-19 16:29:44 首次发布