본문 바로가기
IT/Assembler

[ASM]구구단 1단 출력

by Jang HyunWoong 2014. 12. 19.

.286 
SSEG SEGMENT STACK 
DB 256 DUP(?) 
SSEG ENDS 

DSEG SEGMENT 
BUFFER  DB ?, " * ", ?, " = ", ?, 0DH, 0AH, '$' 
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 BH, 1 ; 출력하고자 하는 단수 
MOV CX, 9 ; 루프 반복 횟수 
MOV BL, 0 ; 곱해지는 수 초기화(1,...,9) 

L1: 
ADD BL, 1 

MOV AL, BL 
MUL BH ; AX = BH(단수) * AL(각 단 내에서 곱해지는수) 

MOV BUFFER, BH ; (1) * (2) = (3) 에서 (1)부분 세팅 
ADD BUFFER, '0' 

MOV BUFFER+4, BL ; (1) * (2) = (3) 에서 (2)부분 세팅 
ADD BUFFER+4, '0' 

ADD AL, '0' ; (1) * (2) = (3) 에서 (3)부분 세팅 
MOV BUFFER+8, AL 

MOV AH, 09H ; 위 과정에 의해 세팅된 문자열을 화면에 출력 
LEA DX, BUFFER 
INT 21H

반응형