搜索
写经验 领红包

汇编mov指令详解(汇编语言mov指令的用法)

在生活中,很多人可能想了解和弄清楚汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)的相关问题?那么关于汇编mov指令详解的答案我来给大家详细解答下。

汇编mov指令详解(汇编语言mov指令的用法)

一、MOV指令

1、将十六进制0x1234数值,赋值给eax寄存器

mov eax,0x1234

2、将十六进制0x123数值,赋值给内存地址为ebx

mov dword [ebx],0x123

3、将edx的高八位赋值给eax的低八位

ax,eax的低16位,al,eax的低8位,ah,eax的高8位,通力bx,bl,bh为ebx的相关数值

mov al, dh

4、将十六进制0x11数值,复制给内存地址为ebx的第一个字节

mov byte [ebx],0x11

二、MOVSX指令,有符号扩展

当我们执行,mov eax,bl的时候,会提示错误,bl是8位,eax是32位,所以需要扩展,这时需要movsx

movsx eax,bl

将ebx置为0x12345680,再执行movsx eax,bl,会发现eax变成了FFFFFF80

因为有符号4字节最大表示的正数是0x7F,0x80就是表示负数了,所以这里执行的结果不一样。

三、MOVZX指令,无符号扩展

假如用MOVZX就不会出现上面的错误,这里全部表示的是正数

movzx eax, bl

四、LEA指令,赋址操作

1、mov取的内存的值,而lea的指令取的是址,lea后面必须跟的是寄存器,后面是一个内存

lea eax, ds:[ebx+0x5]对比mov eax, ds:[ebx+0x5]

五、XCHG指令,交换数值

将ebx的值和eax的值进行交换

xchg ebx, eax

温馨提示:通过以上关于汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)内容介绍后,相信大家有新的了解,更希望可以对你有所帮助。