送分100分:请详细讲解一下 mov eax,dword ptr [esp+4] 这条汇编语句的用法和含意

hundaog 2010-10-02 09:23:52
送分100分:请详细讲解一下

mov eax,dword ptr [esp+4]
ret 4

这2条汇编语句的用法和含意
...全文
1899 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cymx2002 2010-10-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fresherman 的回复:]
我不是很懂,但是可以把我个人的理解说一下仅供参考:
1,mov eax,dword ptr [esp+4] //是把以esp寄存器内的内容再加上4作为地址的内存内容赋给eax寄存器,其中mov是转移指令,eax是目标寄存器,esp是一个源寄存器,[]表示间接寻址,ptr是显示声明要转移的类型是dword的。
2,ret 4 //废除压入堆栈中的4个字节的参数。一般在调用某个子程序之前,会像堆栈……
[/Quote]

学习了,崇拜一下
baojunling2008 2010-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fresherman 的回复:]
我不是很懂,但是可以把我个人的理解说一下仅供参考:
1,mov eax,dword ptr [esp+4] //是把以esp寄存器内的内容再加上4作为地址的内存内容赋给eax寄存器,其中mov是转移指令,eax是目标寄存器,esp是一个源寄存器,[]表示间接寻址,ptr是显示声明要转移的类型是dword的。
2,ret 4 //废除压入堆栈中的4个字节的参数。一般在调用某个子程序之前,会像……
[/Quote]
确实是在送分 呵呵 谢谢楼主 学习了
chancy3100 2010-10-02
  • 打赏
  • 举报
回复
我不是很懂,但是可以把我个人的理解说一下仅供参考:
1,mov eax,dword ptr [esp+4] //是把以esp寄存器内的内容再加上4作为地址的内存内容赋给eax寄存器,其中mov是转移指令,eax是目标寄存器,esp是一个源寄存器,[]表示间接寻址,ptr是显示声明要转移的类型是dword的。
2,ret 4 //废除压入堆栈中的4个字节的参数。一般在调用某个子程序之前,会像堆栈中压入一些参数供子程序使用。那么,子程序在返回时,如果要主动废除这些压入的参数的话,就可以通过RET XX来实现。XX--〉代表压入的参数的字节数目。ret 4,是说明要废除压入堆栈的一个参数(应该是之前压入堆栈的一个寄存器的内容(4个字节))。
希望对你有所帮助,我也是刚刚查资料理解的。
cnzdgs 2010-10-02
  • 打赏
  • 举报
回复
从这两条指令来看,该函数有一个形参,这两条指令是把函数形参的值作为返回值返回。
Corepy 2010-10-02
  • 打赏
  • 举报
回复
找本 王爽的《汇编语言》,看看基础
hundaog 2010-10-02
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fresherman 的回复:]
我不是很懂,但是可以把我个人的理解说一下仅供参考:
1,mov eax,dword ptr [esp+4] //是把以esp寄存器内的内容再加上4作为地址的内存内容赋给eax寄存器,其中mov是转移指令,eax是目标寄存器,esp是一个源寄存器,[]表示间接寻址,ptr是显示声明要转移的类型是dword的。
2,ret 4 //废除压入堆栈中的4个字节的参数。一般在调用某个子程序之前,会像堆栈……
[/Quote]

飞常的感谢你呀。

21,615

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧