首页
社区
课程
招聘
[求助]WIN32汇编的运算方法
发表于: 2009-4-12 09:50 3178

[求助]WIN32汇编的运算方法

2009-4-12 09:50
3178

请问 怎么计算出 dword ptr ss:[esp+8]的值 我知道是 右边那些加起来  不过运算方法不会
请教各位大哥

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
  • 1.jpg (36.01kb,42次下载)
收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
“寻址方式”这个概念一定要理解透彻,因为这是汇编语言的基础。

首先,方括号表示是访问内存变量的值,括号里是内存地址,这个地址是ESP+8。dword ptr是指示访问数据宽度的。

所以,这条指令是,把ESP寄存器的值加上8,作为一个地址,去访问内存中这个地址处的32位的值,把这个值与EAX进行比较(做减法),并按照比较结果置EFLAGS中的标志位。

从稍高一点语义上说,ESP寄存器是栈指针,指向堆栈的TOP,所以,这里是对堆栈中偏移8的内容进行访问。

语义再高一层,根据通常的函数调用规范,通过栈传递参数,如果函数没有在栈上预留本地变量的空间,[ESP+8]应该是函数的参数;如果栈上预留了本地变量,[ESP+8]可能访问的是局部变量。
2009-4-12 10:05
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
不存在怎么计算出的问题.
那个值就在那地方.

很简单.
就是值.
值的字节数.
值字节们的地址

值比较

我没上过学.所以至今不知道“寻址方式”到底是什么意思.
2009-4-12 10:40
0
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个不是运算吧???ESP+8    你就去左下角那快找去呗   在数据窗口里面有值

你也可以改
2009-4-12 11:30
0
雪    币: 148
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
dword ptr ss:[esp+8]

这个确实不计算.如果有也是没意义的.
2009-4-12 11:32
0
游客
登录 | 注册 方可回帖
返回
//