首页
社区
课程
招聘
[旧帖] [求助]test eax,eax 后面跟 jl 指令是什么意思? 0.00雪花
发表于: 2010-11-8 13:04 7108

[旧帖] [求助]test eax,eax 后面跟 jl 指令是什么意思? 0.00雪花

2010-11-8 13:04
7108
比如下面的指令:
call foo
test eax, eax
jl loc_xxx

test是逻辑与,jl是有符号数比较,这两者风马牛不相及呀,怎么用jl来测试test的结果呢?如果是要判断正负,直接 CMP eax,0 不就行了么?

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

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
就是测试正负符号,jl如果Eax < 80000000h则不跳,否则就跳。
2010-11-8 13:37
0
雪    币: 378
活跃值: (702)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
3

JL 标号 (SF 异或 OF) = 1小于转移
.............................

条件转移指令.pdf
上传的附件:
2010-11-8 14:22
0
雪    币: 458
活跃值: (421)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
jl一般是符号小于跳转
根据 sf符号标志位 和 of溢出标志位的异或来判断跳转的 (异或值为1则跳)

test指令总是清零of 和 cf进位标志位   然后根据操作数与结果来修改 sf zf pf
因此本题test之后of必定是0  所以看sf是1则跳  不是1则不跳    也就是2楼大大说的是测试符合位的
2010-11-8 15:41
1
雪    币: 212
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
谢谢,明白了
2010-11-8 16:55
0
游客
登录 | 注册 方可回帖
返回
//