JNB al, bl ;al里的内容不等于bl时跳转
JBE al, bl ;al里的内容小于或等于bl时跳转
;同理,JGB是大于或等于,JLE是小于或等于
;A(above)大于,B(below)小于,E(equal)等于,用于比较无符号数
;G(great)大于,L(less than)小于, E(equal)等于,用于比较带符号数
PS:cmp指令后用je; test指令后用jz, 这样子上下文看着比较顺!
一般是for 语句里会有对应的汇编jge 命令!
eg:C代码:
int main()
{
for (int i = 0; i<10;i++) {
cout<<1<<endl;
}
}
int main()
{
004113A0 push ebp
004113A1 mov ebp,esp
004113A3 sub esp,0CCh
004113A9 push ebx
004113AA push esi
004113AB push edi
004113AC lea edi,[ebp-0CCh]
004113B2 mov ecx,33h
004113B7 mov eax,0CCCCCCCCh
004113BC rep stos dword ptr es:[edi]
for (int i = 0; i<10;i++) {
004113BE mov dword ptr [i],0
004113C5 jmp main+30h (4113D0h)
004113C7 mov eax,dword ptr [i]
004113CA add eax,1
004113CD mov dword ptr [i],eax
004113D0 cmp dword ptr [i],0Ah
004113D4 jge main+66h (411406h)