社区
驱动开发/核心开发
帖子详情
送分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
打赏
收藏
送分100分:请详细讲解一下 mov eax,dword ptr [esp+4] 这条汇编语句的用法和含意
送分100分:请详细讲解一下 mov eax,dword ptr [esp+4] ret 4 这2条汇编语句的用法和含意
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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]
飞常的感谢你呀。
汇编
花指令
花指令是一堆
汇编
指令组成,对于程序来说,是一堆废话,加不加花指令都 不影响程序的正常运行.编写的花指令要终始保持堆栈的平衡. 花指令:(junk code) 意思是程序中有一些指令,由设计者特别构思,希望使反
汇编
的时候出错,让破解者无法清楚正确地反
汇编
程序的内容,迷失方向。经典的是一些跳转指令,目标位置是另一条指令的中间,这样在反
汇编
的时候便会出现混乱。花指令有可能利用各种 jmp,
汇编
面试基础
MOV
(
MOV
e) 传送指令 PUSH 入栈指令POP 出栈指令XCHG(eXCHanG) 交换指令XLAT(TRANSLATE) 换码指令LEA (Load Effective Address) 有效地址送寄存器指令LDS(Load DS with pointer) 指针送寄存器和DS指令LES(Load ES with pointer) 指针送寄存器和ES指令LA...
汇编
基础内容
MOV
(
MOV
e) 传送指令 PUSH 入栈指令 POP 出栈指令 XCHG(eXCHanG) 交换指令 XLAT(TRANSLATE) 换码指令 LEA (Load Effective Address) 有效地址送寄存器指令 LDS(Load DS with pointer) 指针送寄存器和DS指令 LES(Load ES with pointer) 指针送寄存器和ES指令 LAHF(Load AH with Flags) 标志位送AH指令 SAHF(Store AH int...
嵌入式 C/C++语言精华文章集锦
C/C+语言 struct 深层探索 ............................................................................2 C++中 extern "C"含义深层探索........................................................................7 C 语言高效
volatile
用法
volatile表示编译器不要优化代码 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子: 1) 并行设备的硬件寄存器(如:状态寄存器) 2) 一个中断服务子程序中会访问到的非自动...
驱动开发/核心开发
21,615
社区成员
21,711
社区内容
发帖
与我相关
我的任务
驱动开发/核心开发
硬件/嵌入开发 驱动开发/核心开发
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章