프로그래밍/C++

#8. 어셈블리 분기문

코딩하는상후니 2022. 7. 15. 22:04

*특정 조건에 따라서 코드 흐름을 제어하는 것

ex)

스킬 버튼을 눌렀는가 ??

제한 시간 내에 던전 입장 수락 버튼을 눌렀는가 ??

*CMP dst, src ( dst 기준 )

비교를 한 결과물은 'Flag Register' 저장

JMP [ label ]

JMP : 무조건 Jump

JE : JumpEquals 같으면 Jump

JNE : JumpNotEquals 다르면 Jump

JG : JumpGreater 크면 Jump

JGE : JumpGreaterEquals 크거나 같으면 Jump

...


*어셈블리 cmp 명령

 

*eflag Register


*두 숫자가같으면 1, 아니면 0을 출력하는 프로그램.

section .text

global CMAIN

CMAIN:

mov rbp, rsp; for correct debugging

mov rax, 10

mov rbx, 10

cmp rax, rbx

je LABLE\_EQUAL

; je 에 의해 점프를 안했다면, 같지 않다는 의미

mov rcx, 0

jmp LABLE\_EQUAL\_END

LABLE\_EQUAL:

mov rcx, 1

LABLE\_EQUAL\_END:

PRINT\_HEX 1, rcx

NEWLINE

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

강의 듣기 !!

'프로그래밍 > C++' 카테고리의 다른 글

#10. 배열과 주소  (0) 2022.07.15
#9. 어셈블리 반복문  (0) 2022.07.15
#7. 시프트, 논리 연산  (0) 2022.07.15
#6. 사칙연산  (0) 2022.07.15
#5. 문자와 엔디안  (0) 2022.07.15