7 분 소요

제어문 (Control Statement)

  • 프로그램을 제어하는 구문
  • 순차, 선택, 반복

1. 분기문

  • 특정 조건에 따라서 코드 흐름을 제어

1. 비교

  • 비교 선언
    ; cmp [기준], [비교대상]
    cmp dst, src
    ; 결과는 Flag Register에 저장
    

2. 점프

  • 점프 선언
    ; [점프 조건] [Label]
    
    점프 조건 연산자 기능
    jmp   무조건 점프 (Jump)
    je == 같으면 점프 (Jump Equals)
    jne != 다르면 점프 (Jump Not Equals)
    jg < 크면 점프 (Jump Greater)
    jge <= 크거나 같으면 점프 (Jump Greater Equals)
    jl > 작으면 점프 (Jump Less)
    jle >= 작거나 같으면 점프 (Jump Less Equals)
; Input이 짝수인지 홀수인지 구별
GET_DEC 12, ax
mov bl, 2
div bl
; 나머지와 0을 비교
cmp ah, 0
je LABEL_EQUAL
mov al, 0
jmp LABEL_END

LABEL_EQUAL:
  mov al, 1

LABEL_END:
  PRINT_DEC 1, al


2. 반복문

  • 특정 조건을 만족할 때까지 반복해서 실행

0. 증감 연산자

  • 증감 연산자 선언
    ; ecx -= 1
    dec ecx
    ; ecx += 1
    inx ecx
    

1. Jump를 이용한 방법

  ; 감소 연산자 사용
  mov ecx, [N]
  LABEL_LOOP_DEC:
    ; 작업
    dec ecx
    cmp ecx, 0
    jne LABEL_LOOP_DEC
  ; 증가 연산자 사용
  LABEL_LOOP_INC:
    ; 작업
    inc ecx
    cmp ecx, N
    jne LABEL_LOOP_INC

2. Loop를 이용한 방법

  • Loop
    • Loop 선언
      ; loop 할 때 마다 ecx(반복횟수)가 1씩 감소
      ; ecx가 0이면 빠져나가거나 Label로 이동
      loop [Label]
      
mov ecx, [N]
LABEL_LOOP:
  ; 작업
loop LABEL_LOOP ; ecx -= 1


📑. 참고

카테고리:

업데이트:

댓글남기기