조건문
CMP dst, src (dst가 기준) destination과 source를 compare
비교를 한 결과물은 Flag Register에 저장
JMP [label] 시리즈
JMP: 무조건 점프
JE: JumpEquals 같으면 점프
JNE: JumpNotEquals 다르면 점프
JG(JumpGreater), JGE(JumpGreaterEquals), JL(JumpLess) 등등...

간단한 예제인데 rax, rbx에 데이터를 저장하고 두 값이 같으면 LABEL_EQUAL로 점프해 rcx를 1을 저장하고 같지 않더라도 무조건 LABEL_EQUAL_END로 점프한다. 왜냐하면 LABEL들도 순차적으로 실행되기 때문에 rax, rbx가 같지 않으면 rcx를 초기값 0으로 그대로 두게 하기 위함이다.

CMP로 비교하고 나면 flag register에 저장된다고 했는데 이것은 레지스터의 eflags에서 확인할 수 있다.
'CS' 카테고리의 다른 글
| [어셈블리] 배열 (0) | 2022.06.18 |
|---|---|
| [어셈블리] 반복문 (0) | 2022.06.18 |
| [어셈블리] 쉬프트 연산 (0) | 2022.06.18 |
| [어셈블리] 입출력, 사칙 연산 (0) | 2022.06.18 |
| [어셈블리] 변수와 레지스터 (0) | 2022.06.18 |