首页
社区
课程
招聘
[求助]4.5.5在纯算法实现逻辑判断的一节里面代码出现问题!!!
发表于: 2009-8-22 10:00 4916

[求助]4.5.5在纯算法实现逻辑判断的一节里面代码出现问题!!!

2009-8-22 10:00
4916
其中有一段是这样写的

neg eax
sbb eax,eax
and al,0fc    ;这个0FC到底是什么东东啊 我用这段代码做实验 就是不成功 求助啊!!!!!
add eax,5
retn

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
2
首先,要明白以下指令的意义:
neg eax
sbb eax, eax

"sbb eax, eax" 的结果取决于 CF, 而指令 "neg eax" 相当于 "eax = 0 - eax".

该指令影响 CF ,并且仅当 eax=0 时清零 CF ,否则置 CF 为1.

于是这两条指令合起来的功能就是:
if( eax != 0 )  eax = 0xFFFFFFFF;
// else         eax = 0;

至于后面的指令 "and al,0fc" , fc 二进制表示 11111100 , 所以这条指令的意义是把 eax 的 0 bit 和 1 bit 清零.

另外, 0xFFFFFFFC 看做有符号整数的话是 -4 .

所以........

你说"我用这段代码做实验 就是不成功" ,不知道你说的不成功是什么意思.

直接建立控制台程序,然后选择Release.

反汇编结果和书上的肯定是完全一致的.
2009-8-22 13:17
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
解释的很详细 我想问一下,32汇编中的0fc不用写成0fch ?
2009-8-22 20:15
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
哦 明白了 呵呵 学习啦
2009-8-23 12:00
0
游客
登录 | 注册 方可回帖
返回
//