test eax,eax 后面跟 jl 指令的意思

jl一般是符号小于跳转
根据 sf符号标志位 和 of溢出标志位的异或来判断跳转的 (异或值为1则跳)

test指令总是清零of 和 cf进位标志位 ,  然后根据操作数与结果来修改 sf zf pf

因此本题test之后of必定是0 , 所以看sf是1则跳  不是1则不跳  。


这种用法一般来检测最高位-即符号位是否为1,也就是检测测试正负符号。

00404320 /$ 8B81 BC0A0000 mov eax,dword ptr ds:[ecx+0xABC] 00404326 56 push esi 00404327 |. 83F8 01 cmp eax,0x1 ; Switch (cases 1..3) 0040432A |. 75 0C jnz short zzllk.00404338 0040432C |. B8 A0000000 mov eax,0xA0 ; Case 1 of switch 00404327 00404331 |. BE 73000000 mov esi,0x73 00404336 |. EB 2C jmp short zzllk.00404364 00404338 |> 83F8 02 cmp eax,0x2 0040433B |. 75 0C jnz short zzllk.00404349 0040433D |. B8 78000000 mov eax,0x78 ; Case 2 of switch 00404327 00404342 |. BE 5A000000 mov esi,0x5A 00404347 |. EB 1B jmp short zzllk.00404364 00404349 |> 83F8 03 cmp eax,0x3 0040434C |. 75 0C jnz short zzllk.0040435A 0040434E |. B8 50000000 mov eax,0x50 ; Case 3 of switch 00404327 00404353 |. BE 41000000 mov esi,0x41 00404358 |. EB 0A jmp short zzllk.00404364 0040435A |> B8 28000000 mov eax,0x28 ; Default case of switch 00404327 0040435F |. BE 12000000 mov esi,0x12 00404364 |> 8B4C24 08 mov ecx,dword ptr ss:[esp+0x8] 00404368 |. 8B11 mov edx,dword ptr ds:[ecx] ; zzllk.0042AB68 0040436A |. 2BD0 sub edx,eax 0040436C |. B8 67666666 mov eax,0x66666667 00404371 |. F7EA imul edx 00404373 |. C1FA 04 sar edx,0x4 00404376 |. 8BC2 mov eax,edx 00404378 |. C1E8 1F shr eax,0x1F 0040437B |. 8D4402 02 lea eax,dword ptr ds:[edx+eax+0x2] 0040437F |. 85C0 test eax,eax 00404381 |. 8901 mov dword ptr ds:[ecx],eax 00404383 |. 7D 06 jge short zzllk.0040438B 00404385 |. C701 00000000 mov dword ptr ds:[ecx],0x0 0040438B |> 8339 16 cmp dword ptr ds:[ecx],0x16 0040438E |. 7C 06 jl short zzllk.00404396 00404390 |. C701 15000000 mov dword ptr ds:[ecx],0x15 00404396 |> 8B51 04 mov edx,dword ptr ds:[ecx+0x4] 00404399 |. B8 1F85EB51 mov eax,0x51EB851F 0040439E |. 2BD6 sub edx,esi 004043A0 |. 5E pop esi ; 0019F3A4 004043A1 |. F7EA imul edx 004043A3 |. C1FA 04 sar edx,0x4 004043A6 |. 8BC2 mov eax,edx 004043A8 |. C1E8 1F shr eax,0x1F 004043AB |. 8D4402 02 lea eax,dword ptr ds:[edx+eax+0x2] 004043AF |. 85C0 test eax,eax 004043B1 |. 8941 04 mov dword ptr ds:[ecx+0x4],eax 004043B4 |. 7D 07 jge short zzllk.004043BD 004043B6 |. C741 04 00000>mov dword ptr ds:[ecx+0x4],0x0 004043BD |> 8379 04 0E cmp dword ptr ds:[ecx+0x4],0xE 004043C1 |. 7C 07 jl short zzllk.004043CA 004043C3 |. C741 04 0D000>mov dword ptr ds:[ecx+0x4],0xD 004043CA \> C2 0400 retn 0x4 解释一下此函数的目的,函数输入一个指针和一个Cpoint坐标
最新发布
07-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值