full defination 이 아닌 약식 code 입니다 . ( 참고 로 처음 에 는 full defination 으로 assembly 어 를 이해 하 시 는 것 이 좋 다고 생각 합니다 . ) 주석 은 따로 안 달 겠 습니다 . * code escode equ 1 bhmain segment assume cs : main , ds : main , ss : efgefg segment stack dw 100 h dup ( ? ) tos label wordefg ends mov ax , efg cli mov ss , ax mov sp , offset tos stistart : jmp sizak aamsg db 0 dh , 0 ah , '$' jemsg 1 db 0 dh , 0 ah , '*** 앗싸 구구단 ***$' jemsg 2 db 0 dh , 0 ah , ' 숫자 를 쳐 주 세요 ! $' errmsg db 0 dh , 0 ah , ' 숫자 치 라니깐 장난 하 나 ! $' sizak : mov ax , cs mov ds , ax mov ah , 09 h lea dx , jemsg 1 int 21 hjemok 1 : mov ah , 09 h lea dx , jemsg 2 int 21 h lea dx , aamsg mov ah , 09 h int 21 hguss : mov ah , 0 int 16 h cmp al , escode je exit cmp al , ' 1 ' jb error cmp al , ' 9 ' ja error sub al , 30 h mov bl , 0 gugu : inc bl push ax push ax add al , 30 h mov dl , al call fjfj mov dl , ' ' call fjfj mov dl , '*' call fjfj mov dl , ' ' call fjfj add bl , 30 h mov dl , bl call fjfj mov dl , ' ' call fjfj mov dl , '=' call fjfj mov dl , ' ' call fjfj pop ax sub bl , 30 h mul bl aam or ax , 3030 h push ax mov dl , ah mov ah , 02 h int 21 h pop ax mov dl , al mov ah , 02 h int 21 h mov dl , 0 ah call fjfj mov dl , 0 dh call fjfj cmp bl , 09 h pop ax jb gugu jmp jemok 1 exit : mov ah , 4 ch int 21 herror : mov ah , 09 h lea dx , errmsg int 21 h jmp jemok 1 fjfj proc near mov ah , 2 int 21 h retfjfj endpmain endsend start