플래그 값에 따른 점프
명령어 |
예시 |
설명 |
jz |
jz L1 |
ZF 값이 1이면 해당 레이블로 이동한다. |
jnz |
jnz L1 |
ZF 값이 0이면 해당 레이블로 이동한다. |
jc |
jc L1 |
CF 값이 1이면 해당 레이블로 이동한다. |
jnc |
jnc L1 |
CF 값이 0이면 해당 레이블로 이동한다. |
jo |
jo L1 |
OF 값이 1이면 해당 레이블로 이동한다. |
jno |
jno L1 |
OF 값이 0이면 해당 레이블로 이동한다. |
js |
js L1 |
SF 값이 1이면 해당 레이블로 이동한다. |
jns |
jns L1 |
SF 값이 0이면 해당 레이블로 이동한다. |
jp |
jp L1 |
PF 값이 1이면 해당 레이블로 이동한다. |
jnp |
jnp L1 |
PF 값이 0이면 해당 레이블로 이동한다. |
jcxz |
jcxz L1 |
CX 값이 0이면 해당 레이블로 이동한다. |
jecxz |
jecxz L1 |
ECX 값이 0이면 해당 레이블로 이동한다. |
피연산자의 비교에 따른 점프
cmp 명령의 결과 값에 따라 점프가 이루어진다.
-동등-
명령어 |
예시 |
설명 (j=jump n=not e=equal) |
je |
je L1 |
두 피연산자의 값이 같으면 해당 레이블로 이동한다. |
jne |
jne L1 |
두 피연산자의 값이 같지 않으면 해당 레이블로 이동한다. |
-부호 없는 정수-
명령어 |
예시 |
설명 (j=jump n=not e=equal a=above b=below) |
ja |
ja L1 |
좌측 피연산자가 크면 해당 레이블로 이동한다. |
jna |
jna L1 |
좌측 피연산자가 크지 않으면 이동한다. |
jb |
jb L1 |
좌측 피연산자가 작으면 해당 레이블로 이동한다. |
jnb |
jnb L1 |
좌측 피연산자가 작지 않으면 해당 레이블로 이동한다. |
jae |
jae L1 |
좌측 피연산자가 크거나 같으면 해당 레이블로 이동한다. |
jnae |
jnae L1 |
좌측 피연산자가 크거나 같지 않으면 해당 레이블로 이동한다. |
jbe |
jbe L1 |
좌측 피연산자가 작거나 같으면 해당 레이블로 이동한다. |
jnbe |
jnbe L1 |
좌측 피연산자가 작거나 같지 않으면 해당 레이블로 이동한다. |
-부호 있는 정수-
명령어 |
예시 |
설명 (j=jump n=not e=equal g=greater l=less) |
jg |
jg L1 |
좌측 피연산자가 크면 해당 레이블로 이동한다. |
jng |
jng L1 |
좌측 피연산자가 크지 않으면 이동한다. |
jl |
jl L1 |
좌측 피연산자가 작으면 해당 레이블로 이동한다. |
jnl |
jnl L1 |
좌측 피연산자가 작지 않으면 해당 레이블로 이동한다. |
jge |
jge L1 |
좌측 피연산자가 크거나 같으면 해당 레이블로 이동한다. |
jnge |
jnge L1 |
좌측 피연산자가 크거나 같지 않으면 해당 레이블로 이동한다. |
jle |
jle L1 |
좌측 피연산자가 작거나 같으면 해당 레이블로 이동한다. |
jnle |
jnle L1 |
좌측 피연산자가 작거나 같지 않으면 해당 레이블로 이동한다. |
'악성코드 분석 > ASSEMBLY' 카테고리의 다른 글
LEA 명령과 MOV 명령의 차이점 (3) | 2010.12.20 |
---|---|
플래그 설정 명령어 (0) | 2010.12.09 |
부울 명령어 (0) | 2010.11.27 |
연산자 (0) | 2010.11.27 |
기본 명령어 (0) | 2010.11.27 |