首页
社区
课程
招聘
请教汇编指令
发表于: 2004-11-1 20:00 7103

请教汇编指令

2004-11-1 20:00
7103
请问一下,有谁知道这个汇编指令的用法么
00553196  |.  3B7424 30           ||cmp esi,dword ptr ss:[esp+30]    ;  ss[12ddfc]=3c
0055319A  |.  0F8D 89020000       ||jge Camtasia.00553429
005531A0  |.  BA 01000000         ||mov edx,1
005531A5  |.  D3E2                ||shl edx,cl                       ;  cl=2
005531A7  |.  85D7                ||test edi,edx
005531A9  |.  8B5424 2C           ||mov edx,dword ptr ss:[esp+2C]
005531AD  |.  0F95C0              ||setne al
005531B0  |.  880432              ||mov byte ptr ds:[edx+esi],al     ;  

就是这里面的  setne ,如果条件为真al 为1 为假 al为0,不知道这里面的条件是什么
如果那位大哥知道的话,请告诉我,谢谢!

这条指令,我查了我所有的资料,都是没有查到

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

收藏
免费 1
支持
分享
最新回复 (10)
雪    币: 209
活跃值: (45)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
zero?
2004-11-1 20:31
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
setne r/m8  ;Set Byte if not zero or not Equal

005531A7  |.  85D7                ||test edi,edx ;测试
005531A9  |.  8B5424 2C           ||mov edx,dword ptr ss:[esp+2C]
005531AD  |.  0F95C0              ||setne al  ;测试结果不为0或不相等则置a1为1
2004-11-1 20:39
0
雪    币: 333
活跃值: (369)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
4
呵呵!这些代码是来自 Camtasia Studio 2 里面的,
这也是最关键的一部分了,要使得这里面的 al 为零,
共有好几十个循环,要其中的其中六个al 为零,才有可能注册成功。
等我把这个软件的算法搞清楚了,我会发贴子出来的,
这里面有些不懂的还要请各位大哥多多指点了。:)
2004-11-1 20:56
0
雪    币: 253
活跃值: (250)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
5
这一段主要看test edi,edx,看edi和edx中是什么,和它们的关系。
2004-11-1 21:06
0
雪    币: 333
活跃值: (369)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
6
最初由 小虾 发布
setne r/m8 ;Set Byte if not zero or not Equal

005531A7 |. 85D7 ||test edi,edx ;测试
005531A9 |. 8B5424 2C ||mov edx,dword ptr ss:[esp+2C]
005531AD |. 0F95C0 ||setne al ;测试结果不为0或不相等则置a1为1


这里好像不对呀!edi 跟edx 不相等al 可以为1 也可以为○呀!
所有的测度结果都为零,al 为1
2004-11-1 22:16
0
雪    币: 333
活跃值: (369)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
7
测试结果 p=1 z=1 则条件为假  al 就置0吧!
反之al 就置1
2004-11-1 22:25
0
雪    币: 333
活跃值: (369)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
8
下面是几组数据:
text edi=5,edx=2    4<-->8   4<-->10  4<-->1   4<-->2   4<-->10  a<-->1

p=1
z=1

text edi=5,edx=4    a<-->2      a<-->8    1f<-->1    1f<-->2    1f<-->4

p=0
z=0
2004-11-1 22:43
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
9
setne指令的作用就是如果测试结果不为0或不相等时置字节(1)。否则置字节(0)。他置位时主要看ZF标志位,ZF == 1 则置1,否则置0。
2004-11-1 23:50
0
雪    币: 333
活跃值: (369)
能力值: ( LV12,RANK:490 )
在线值:
发帖
回帖
粉丝
10
最初由 小虾 发布
setne指令的作用就是如果测试结果不为0或不相等时置字节(1)。否则置字节(0)。他置位时主要看ZF标志位,ZF == 1 则置1,否则置0。


呵呵!刚好弄反了,不信你可以去测试一下,我是测试过的。(:)
2004-11-2 22:15
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
11
不好意思,说反了,SETNE指令应该是ZF == 0时置1,否则置0。:p
2004-11-3 15:01
0
游客
登录 | 注册 方可回帖
返回
//