0-负数,就是一条指令
neg ebx ; 求补指令,相当于0-这个数
加上判断也就是4条指令
00401C2E . 3BFE cmp edi,esi ; 是否小于零
00401C30 . 7D 0A jge short 00401C3C ; 小于零跳
00401C32 . 8BDF mov ebx,edi ; EDT到EBX
00401C34 . F7DB neg ebx ; 求补指令,相当于0-这个数
调用 abs 函数
00401CC0 . |FF15 1C104000 call dword ptr [<&MSVBVM60.__vbaI4Abs>] ; 调用 abs 函数
里的内容:
CPU Disasm
地址 十六进制数据 汇编代码 注释
72A24D03 56 push esi
72A24D04 8BF1 mov esi,ecx
72A24D06 85F6 test esi,esi 测试结果
72A24D08 7D 0B jge short 72A24D15
72A24D0A F7DE neg esi 也是使用的这个方法 neg
72A24D0C 79 07 jns short 72A24D15 符号位不为1,则跳
72A24D0E 6A 06 push 6
72A24D10 E8 1795FEFF call 72A0E22C 又一层调用,靠。不过在这里没有执行,猜是错误处理过程。
72A24D15 8BC6 mov eax,esi
72A24D17 5E pop esi
72A24D18 C3 retn
neg ebx ; 求补指令,相当于0-这个数
加上判断也就是4条指令
00401C2E . 3BFE cmp edi,esi ; 是否小于零
00401C30 . 7D 0A jge short 00401C3C ; 小于零跳
00401C32 . 8BDF mov ebx,edi ; EDT到EBX
00401C34 . F7DB neg ebx ; 求补指令,相当于0-这个数
调用 abs 函数
00401CC0 . |FF15 1C104000 call dword ptr [<&MSVBVM60.__vbaI4Abs>] ; 调用 abs 函数
里的内容:
CPU Disasm
地址 十六进制数据 汇编代码 注释
72A24D03 56 push esi
72A24D04 8BF1 mov esi,ecx
72A24D06 85F6 test esi,esi 测试结果
72A24D08 7D 0B jge short 72A24D15
72A24D0A F7DE neg esi 也是使用的这个方法 neg
72A24D0C 79 07 jns short 72A24D15 符号位不为1,则跳
72A24D0E 6A 06 push 6
72A24D10 E8 1795FEFF call 72A0E22C 又一层调用,靠。不过在这里没有执行,猜是错误处理过程。
72A24D15 8BC6 mov eax,esi
72A24D17 5E pop esi
72A24D18 C3 retn
授人于鱼,不如授人于渔
早已停用QQ了