쉬프트 연산, 분기문(if)

DoiDoi·2021년 5월 29일
0

쉬프트 연산

오른쪽 혹은 왼쪽으로 비트를 옮기는것

왼쪽 : x2 효과
오른쪽 : /2 효과

mov eax, 0x12345678
PRINT_HEX 4, eax

결과

12345678

shl eax, 8 ; 왼쪽으로 8비트 쉬프트
PRINT_HEX 4, eax

결과

34567800

shr eax, 8 ; 오른쪽으로 8비트 쉬프트

결과

345678

분기문(if)

비교문법

CMP dst, src (dst가 기준)
비교를 한 결과물은 Flag Register에 저장된다.

기본 점프문법

JMP [label]
label 로 점프

점프문 종류

JMP : 무조건 jump
JE : JumpEquals
JNE : JumpNotEquals
JG : JumpGreater
JGE : JumpGreaterEquals
JL : JumpLower
JLE : JumpLowerEquals

예) 두 숫자가 같으면 1, 다르면 0을 출력하는 코드

mov rax, 10
mov rbx, 20

cmp rax, rbx

je LABEL_EQUAL

mov rcx, 0
jmp LABEL_EQUAL_END

LABEL_EQUAL:
    mov rcx, 1
LABEL_EQUAL_END:
    PRINT_HEX 1, rcx
profile
I'm ready to learn!

0개의 댓글

관련 채용 정보