조건문 심화
2025. 5. 25. 20:18ㆍ어셈블리 프로그래밍
CASE 구조
- AX-BX 식에서 0보다 크면 CX=1, 0이라면 CX=0이고 0보다 작다면 CX=-1로 저장
CMP AX, BX
JG @LARGE
JE @EQUAL
JL @SMALL
@LARGE:
MOV CX, 1
JMP @END_CASE
@EQUAL:
MOV CX,0
JMP @END_CASE
@SMALL:
MOV CX, -1
@END_CASE
- CASE문의 경우 조건 점프 명령어를 사용하여서 해당 레이블로 이동한 이후에 마지막 레이블로 이동
.MODEL SMALL
.STACK 100H
.DATA
A DW 2
B DW 3
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
MOV AX, A
MOV BX,B
CMP AX, BX
JG @LARGE
JE @EQUAL
JL @SMALL
@LARGE:
MOV CX, 1
JMP @END_CASE
@EQUAL:
MOV CX, 0
JMP @END_CASE
@SMALL:
MOV CX, -1
@END_CASE:
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
IF-THEN-ELSE 구조
- AL과 BL의 내용을 비교하여 큰 수를 CL저장하는 프로그램
CMP AL,BL
JL @THEN
MOV CL, AL
JMP @END_IF
@THEN:
MOV CL, BL
@END_IF:
- AL과 BL의 내용을 비교하기 CMP명령어를 활용
- 부호 있는 조건 점프 명령어를 사용하여 THEN 문장이나 ELSE문장 중의 1개를 실행
- 조건에 따라 두 문장 중에 하나를 실행하기 위해서 JMP명령어가 포함됨
.MODEL SMALL
.STACK 100H
.DATA
A DB -5
B DB 10
.CODE
MAIN PROC
MOV AX, @DATA
MOV DS, AX
MOV AL, A
MOV BL, B
CMP AL, BL
JL @THEN
MOV CL, AL
JMP @END_IF
@THEN:
MOV CL, BL
@END_IF:
MOV AH, 4CH
INT 21H
MAIN ENDP
END MAIN
'어셈블리 프로그래밍' 카테고리의 다른 글
| 반복문(2) (0) | 2025.05.25 |
|---|---|
| 반복문 (0) | 2025.05.25 |
| 조건문 구조(2) (0) | 2025.05.22 |
| 조건문 구조 (0) | 2025.05.22 |
| 플래그 래지스터&디버거 (0) | 2025.04.27 |