; 문제 2단...
; 2
; 4
; 6
; 8
; 10
; 12
; 14
; 16
; 18
.286
SSEG SEGMENT STACK
DB 256 DUP(?)
SSEG ENDS
DSEG SEGMENT
NUM DB 2 ; 2단의 단수 선언
RESULT DB ?, ?, 0DH, 0AH, '$'
DIVNUM DB 10
DSEG ENDS
CSEG SEGMENT 'CODE'
ASSUME CS:CSEG, SS:SSEG, DS:DSEG
MAIN PROC FAR
PUSH DS
PUSH 0
MOV AX, DSEG
MOV DS, AX
MOV BL, 0 ; 증가하는 값의 초기화
MOV CX, 9 ; 9번반복
L1:
ADD BL, 1 ; 1씩 증가하는 값
MOV AL, BL ; 곱하는 값은 AL 그래서 BL의 값을 넣어준다.
MUL NUM ; 결과는 AX에 저장이 된다.
;---------------------------- AL*NUM = AX
; 00001001 (1BYTE)
; 00000000 00001001 (2BYTE) <- AX
CMP AL, 10
JL L2
; 10이상인경우
DIV DIVNUM
MOV RESULT, AL
ADD RESULT, '0'
MOV RESULT+1, AH
ADD RESULT+1, '0'
JMP L3
L2:
MOV RESULT, ' '
MOV RESULT+1, AL
ADD RESULT+1, '0'
L3:
LEA DX, RESULT
MOV AH, 09H
INT 21H
LOOP L1
RET
MAIN ENDP
CSEG ENDS
END MAIN
'IT > Assembler' 카테고리의 다른 글
1부터 5까지의 합 (0) | 2014.12.19 |
---|---|
어셈블리어 곱하기 소스 (0) | 2014.12.19 |
[ASM]구구단 1단 출력 (0) | 2014.12.19 |
[어셈블러] LOOP을 이용한 1부터 10까지 더하기 (0) | 2014.12.19 |
어셈블리어 기본 (0) | 2014.12.19 |