首页
社区
课程
招聘
[求助]汇编代码问题:lea esi, dword ptr [edx+9ADCEB9F]
发表于: 2014-8-12 00:13 14234

[求助]汇编代码问题:lea esi, dword ptr [edx+9ADCEB9F]

2014-8-12 00:13
14234
结贴结贴.原来是自己后面的代码理解有误,这里的逻辑正确的.

***********************************
已经知道edx=65231477       (十六进制数)

lea esi, dword ptr [edx+9ADCEB9F]
cmp esi, 17
ja short 10003C5A

65231477 + 9ADCEB9F = 100000016
即 esi = 00000016.
cmp语句 结果是 esi < 17.
ja语句不成立.

请问以上的计算逻辑正确吗?  感觉和代码逻辑不符合.求助.
****************************************

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 66
活跃值: (41)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
因为一个DWORD 最多储存0xFFFFFFFF (8个F),你数一下100000016 这个数字多少位
所以他正确的值是0x16  下次遇见这样的问题不要问calc 自己写个控制台
int main(int argc, char* argv[])
{
        printf(" %08X \n",0x65231477 + 0x9ADCEB9F);
        return 0;
}
2014-8-12 00:21
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我写了esi = 00000016..
2014-8-12 00:24
0
雪    币: 205
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=kuty;1307674]因为一个DWORD 最多储存0xFFFFFFFF (8个F),你数一下100000016 这个数字多少位
所以他正确的值是0x16  下次遇见这样的问题不要问calc 自己写个控制台
int main(int argc, char* argv[])
{
        printf(" %08X \n&...[/QUOTE]

我以为lea计算进位会影响CMP的结果,汇编了解基础,还需进一步加深了解.
感谢你回复
2014-8-12 00:27
0
雪    币: 6
活跃值: (60)
能力值: ( LV2,RANK:15 )
在线值:
发帖
回帖
粉丝
5
即 esi = 00000016.
cmp语句 结果是 esi < 17.
ja语句不成立.

就是这么算的,建议lz修改时保留原帖,以免误解
2014-8-12 10:58
0
雪    币: 0
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我还要看 懂这些事时间问题,看样子我要加油啊
2014-9-17 00:17
0
雪    币: 105
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
同样看不懂,泪奔呀。
2014-9-17 05:58
0
游客
登录 | 注册 方可回帖
返回