首页
社区
课程
招聘
汇编问题,初级但难住了我
发表于: 2010-7-16 16:26 3477

汇编问题,初级但难住了我

2010-7-16 16:26
3477
ebp 00B1FB10 指向 地址 00B1FA18 而00B1FA18的数值为B0 20 50 35,我想通过
    cmp byte ptr[ebp+2],50 来进行比对,结果取到的是00B1FB12的数值,请问汇编怎么
    写才能取到00B1FA18+2的值?谢谢!

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

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 246
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
你的问题, ebp是指针的指针, 取00B1FA18+2的值应当借助其他寄存器,如:

mov ebx,[ebp]
cmp byte ptr[ebx+2],50
2010-7-16 18:34
0
雪    币: 2513
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
MOV EBX,DWORD PTR[EBP]
CMP BYTE PTR[EBX+2],50
2010-7-16 18:42
0
雪    币: 246
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
[QUOTE=风随雨行;836524]MOV EBX,DWORD PTR[EBP]
CMP BYTE PTR[EBX+2],50[/QUOTE]

MOV EBX,DWORD PTR[EBP], 这里好像没必要非加“DWORD PTR”吧? EBX已经表明了数据的宽度为DWORD。
2010-7-18 10:12
0
雪    币: 2513
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
好像是的,我从来没有纠结过此类问题
使用的时候我都是显示指定宽度的
2010-7-18 10:26
0
雪    币: 17
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
正解,受教。
2010-7-18 10:38
0
游客
登录 | 注册 方可回帖
返回
//