1. GET_DEC
GET_DEC 1, al ; 입력부 GET_DEC 1, num PRINT_DEC 1, al ; 출력부 NEWLINE PRINT_DEC 1, num |
GET_DEC [byte] [reg]
2. 사칙연산
(1) 더하기
add a, b |
a는 레지스터 혹은 메모리
b는 레지스터 혹은 메모리 혹은 상수
단 a와 b가 둘 다 메모리일 수 없음.
add al, 1 ; 레지스터 + 상수 PRINT_DEC 1, al NEWLINE add al, [num] ; 레지스터 + 메모리 PRINT_DEC 1, al NEWLINE mov bl, 3 add al, bl ; 레지스터 + 레지스터 PRINT_DEC 1, al NEWLINE add [num], byte 1 ; 메모리 + 상수 PRINT_DEC 1, [num] NEWLINE add [num], al ; 메모리 + 레지스터 PRINT_DEC 1, [num] NEWLINE |
(2) 곱하기
mul reg
mul bl => al * bl
연산 결과를 ax에 저장
mul bx => ax * bx
연산 결과를 dx(상위 16비트) ax(하위 16비트)에 저장
mov ax, 0 mov al, 5 mov bl, 8 mul bl ; al * bl PRINT_DEC 2, ax |
(3) 나누기
div reg
div bl => ax / bl
연산결과를 al(몫) ah(나머지)에 저장
mov ax, 100 mov bl, 3 div bl PRINT_DEC 1, al NEWLINE mov al, ah PRINT_DEC 1, al ; ah를 Print 할 수 없기 때문 |
'어셈블리' 카테고리의 다른 글
0-8. 분기문(If) (0) | 2023.04.28 |
---|---|
0-7. 시프트 연산과 논리 연산 (0) | 2023.04.28 |
0-5. 문자와 엔디안 (0) | 2023.04.27 |
0-4. 변수와 레지스터 (0) | 2023.04.27 |
0-3. 레지스터 기초 (0) | 2023.04.26 |