JA 或 JNBE:大于跳转
JAE 或 JNB:大于等于跳转
JB 或 JNAE:小于跳转
JBE 或 JNA:小于等于跳转
以上四条,测试无符号整数运算的结果
JG 或 JNLE:大于跳转
JGE 或 JNL:大于等于跳转
JL 或 JNGE:小于跳转
JLE 或 JNG:小于等于跳转
以上四条,测试带符号整数运算的结果
无符号整数运算,FF FF FF FF = 4294967295
带符号整数运算,FF FF FF FF = -1
如果你换成JG就会判断成立了,不过不建议这样做。
我的做法是:
从0043BD8B |. 8945 D0 MOV DWORD PTR SS:[EBP-30],EAX这段开始改写,
CMP EAX,5
JA 0043BE98
CMP BYTE [EBP-14],0E
JNZ <A点>
MOV DWORD [EBP-4],32
JMP 43BF75
SUB EAX,1 <==A点
JMP DWORD [EAX*4+43BF96] <==这行按照我这样来简写。“PTR DS:”可以省去。或者保留原来的0043BDA4 |. FF2485 96BF43>JMP DWORD PTR DS:[EAX*4+43BF96],前一行SUB EAX,1与这行之间全部用NOP,位置应该是足够的,不用另外跳出来。