汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)一 MOV 指令 1 将十六进制 0x1234 数值 赋值给 eax 寄存器 mov eax 0x12342 将十六进制 0x123 数值 赋值给内存地址为 ebxmov dword ebx 0x1233 将 edx 的高八位赋值给 eax 的低八位 ax eax 的

欢迎大家来到IT世界,在知识的湖畔探索吧!

一、MOV指令

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

mov eax,0x1234

欢迎大家来到IT世界,在知识的湖畔探索吧!

汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

欢迎大家来到IT世界,在知识的湖畔探索吧!

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

欢迎大家来到IT世界,在知识的湖畔探索吧!mov dword [ebx],0x123
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

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

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

mov al, dh
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

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

欢迎大家来到IT世界,在知识的湖畔探索吧!mov byte [ebx],0x11
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

二、MOVSX指令,有符号扩展

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

movsx eax,bl
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

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

汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

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

三、MOVZX指令,无符号扩展

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

欢迎大家来到IT世界,在知识的湖畔探索吧!movzx eax, bl
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

四、LEA指令,赋址操作

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

lea eax, ds:[ebx+0x5] 对比 mov eax, ds:[ebx+0x5]
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)

五、XCHG指令,交换数值

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

欢迎大家来到IT世界,在知识的湖畔探索吧!xchg ebx, eax
汇编指令学习(MOV,MOVSX,MOVZX,LEA,XCHG)


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/82376.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信