분기 명령 JMP JE JZ JNE JNZ JG JGE JL JLE
# 무조건 분기
JMP 주소
JMP 00401000 // 00401000DMFH WJAVMGOFK
-> EIP 레지스터 변수에 00401000을 넣어라
# 조건 분기 0을 기점으로 해야함!!
JE, JZ ==
JNE, JNZ !=
JG, JGE > , >=
JL, JLE < , <=
c언어로 생각하면 반대로해야함!!
MOV EAX, 3 // EAX = 3
CMP EAX, 4 // EAX -4 = -1
JG 01007800 // -1 < 0, 점프 안함!!
00401004 MOV DWORD PTR SS:[EBP-4], 5 // INT A = 5;
0040100B CMP DWORD PTR SS:[EBP-4], 6 // 5-6=-1 , -1<=0 (점프해버림)
0040100F JLE SHORT DAY01.00401018 // IF(A>6)
00401011 MOV DWORD PTR SS:[EBP-4], 5 // { A = 0 }
00401018 XOR EAX,EAX // RETURN 0
00401006 MOV DWORD PTR SS:[EBP-4],0A 0040100D MOV DWORD PTR SS:[EBP-8],10 00401014 MOV EAX,DWORD PTR SS:[EBP-4] 00401017 CMP EAX,DWORD PTR SS:[EBP-8] 0040101A JGE SHORT day01.00401023 0040101C MOV DWORD PTR SS:[EBP-4],0 00401023 XOR EAX,EAX // return 0;
int a=10;
int b=16;
if(a<b)
{
a=0;
}
return 0;
00401006 MOV DWORD PTR SS:[EBP-4],0A 0040100D MOV DWORD PTR SS:[EBP-8],0B 00401014 MOV EAX,DWORD PTR SS:[EBP-4] 00401017 ADD EAX,1 0040101A CMP EAX,DWORD PTR SS:[EBP-8] 0040101D JE SHORT day01.00401026 0040101F MOV DWORD PTR SS:[EBP-4],0 00401026 XOR EAX,EAX // return 0;
int a=10;
int b=11;
if((a+1)!=b)
{
a=0;
}
return 0;