首页
社区
课程
招聘
[求助].if !eax 的意思?
发表于: 2008-4-8 11:38 5841

[求助].if !eax 的意思?

2008-4-8 11:38
5841
.if !eax
知道这条指令是eax == 0 的意思...
但为什么呢?

然后这条指令就是
and  eax,not  xxx (常用于清除某个属性)
源操作数前面加一个not是什么意思啊?

比如这句:

                        .if        al >'9'
                                and al,not 20h              ;-----不理解
                        .endif

是什么意思啊?

请指教.

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 9449
活跃值: (6088)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
.if !eax

大概相当于
test eax,eax
jz
2008-4-8 12:32
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
not 20h就是取反的意思了   
结果应该是not 00100000H==DFH把
  应该是这样把。。
2008-4-8 12:48
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
'!'操作符是反向判断的意思,就是.if eax是如果eax“不为零”则TRUE,那么加上"!"反向判断则是.if !eax的意思就是如果eax“为零”则TRUE。
not 20h就是将20h的值取反,另其等于-20h,也就是十六进制的0FFFFFFECh
2008-4-8 12:55
0
雪    币: 207
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
多谢这位大哥的解释,非常受用!
2008-4-10 01:01
0
游客
登录 | 注册 方可回帖
返回