我是靠谱客的博主 清秀麦片,最近开发中收集的这篇文章主要介绍lea,mov指令的不同,寻址以及不寻址,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

http://blog.sina.com.cn/s/blog_4d1bbec70100du0f.html--原博

AT&T汇编心得(1)
寻址方式:
0x4(%esp)的操作是把寄存器esp中的值取出,然后加上4,得到的值作为地址,间接寻址得到需要的数据
例如:
pushl -0x4(%ecx)
该指令的含义是取出寄存器ecx的值,减去4,将得到的值作为地址,在内存找到该地址对应的值,将其压入栈中。
这是执行后的结果:
ecx 
                    0xbff01450
esp                      0xbff0143c      0xbff0143c
ebp                      0xbff01498      0xbff01498

(gdb) x/x $esp
0xbff0143c:      0x0804840a     
(gdb) x/x 0xbff0144c
0xbff0144c:      0x0804840a
其中,内存0xbff0144c即为%ecx-4后得到的值

指令LEA的作用和80x86汇编有些类似,即地址传递,下面举例说明:
LEA 0x4(%esp), %ecx
该指令的作用是,取出esp寄存器里的值,加上4,不再继续寻址,而是将得到值直接传递给ecx;如果是其他指令,则还需进行间接寻址,再传值。

最后

以上就是清秀麦片为你收集整理的lea,mov指令的不同,寻址以及不寻址的全部内容,希望文章能够帮你解决lea,mov指令的不同,寻址以及不寻址所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部