어셈블리에서 조건문은 점프를 이용한 분기로 이루어진다
이때 두 피연산자를 비교해주는 CMP 명령어를 주로 사용한다
CMP 명령어는 두개의 피연산자를 비교해준다
한 피연산자에서 다른 피연산자를 빼주면서 둘을 비교한다
이때 두 피연산자의 값에는 영향을 주지 않는다
형식
CMP OP1, OP2
JMP 명령어는 실행할 명령어의 주소로 점프시켜주는 역할을 한다
이 명령어는 조건에 상관없이 무조건 점프시켜주는 역할을 한다
형식
JMP address
조건 점프는 조건에 맞을 때만 점프시켜주는 명령어이다
CMP 명령어로 비교한 결과를 조건으로 사용한다
예제
CMP AX, 0 ; AX와 0을 비교한다
JE Label1 ; 두 수가 같으면 Label1로 점프
A statements
Label1:
B statements
위 예제를 C언어로 표현하면 다음과 같다
if(A == 0){
A statement;
}
B statements;