首页
社区
课程
招聘
汇编问题:
发表于: 2004-12-24 23:11 3745

汇编问题:

2004-12-24 23:11
3745
经常看到一些这样的:
call  ********
jne   ********
为什么没有看到他和什么做了比较就跳转???
***********************************************
第二个问题:
比如:
test   eax   eax
jne    ********
这不是明摆着不跳转吗?为什么会出现上面的情况?
***********************************************
如果应用程序寻址超过4G怎么办?
每个应用程序寻址范围都是4G,系统资源会不会不够用?

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

收藏
免费 1
支持
分享
最新回复 (6)
雪    币: 222
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
最初由 萝卜 发布
经常看到一些这样的:
call ********
jne ********
为什么没有看到他和什么做了比较就跳转???
***********************************************
........

说明已经在 call 调用的代码中进行比较或修改了状态寄存器的值了!
2004-12-25 11:54
0
雪    币: 222
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
***********************************************
第二个问题:

test eax eax 是对eax寄存器的值进行相与 如果eax 的值为 00000000h则对jnz来说不跳,否则跳
2004-12-25 12:02
0
雪    币: 332
活跃值: (499)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
test eax eax
即“eax” and “eax ”,与操作中(只要有一个数为0,结果为0)
那么这里,只有eax=0,才 与的结果为0
test这里就是测试eax是否为0
2004-12-25 12:10
0
雪    币: 260
活跃值: (81)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
谢谢,懂了!
2004-12-25 13:48
0
雪    币: 213
活跃值: (81)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
最初由 routty 发布

说明已经在 call 调用的代码中进行比较或修改了状态寄存器的值了!

怎样看出在CALL 调用的代码中那个地方修改状态寄存器的值呢?
2004-12-26 10:34
0
雪    币: 222
活跃值: (29)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
如果在调用代码中运行了一些会修改状态寄存值的指令,如:add adc sub sbb cmp inc dec 等等 ,都会使状态寄存值改变
2004-12-26 13:38
0
游客
登录 | 注册 方可回帖
返回