¾î¼Àºí¸®¾î °Ô½ÃÆÇ
(http://bi.snu.ac.kr/~skim/lecture/assem03)
¾Ë¸²: ÆíÀÇ»ó Á¦¸ñ¿¡ ¸î¹ÝÀÎÁö¸¦ Àû¾îÁÖ¼¼¿ä. ¿¹: [x¹Ý] Á¦¸ñ

May 21, 2004 (19:45) from 210.222.26.13
Written by ¼Õ´Ô Hits : 3696 , Lines : 92
[½Ç½À] ±¸±¸´Ü Áß 1´Ü Ãâ·Â (5/21)
; ¹®Á¦ 1´Ü...
; 1
; 2
; 3
; 4
; 5
; 6
; 7
; 8
; 9

; °è¼Ó °öÇϱ⠿¬»êÀ» Çؼ­ °ªÀÌ ³ª¿À°Ô²û ÇÏ°Ô ÇÏ´Â ÇÁ·Î±×·¥ ÀÛ¼º
; MUL operand
; AX (wordÇü) <- operand(byteÇü)*AL(byteÇü) - À̹ø¹®Á¦¿¡¼­´Â À̰͸¸ »ç¿ëÇÏ¸é µÈ´Ù.
; DX:AX(dwordÇü) <- operand(wordÇü)*AX(wordÇü)
; ¹Ýº¹¹®À» ÅëÇؼ­ »ç¿ëÇϸé ÆíÇÏ´Ù
; ÃÑ 9¹øÀÇ ÀÛ¾÷À» ¼öÇàÇϱ⠶§¹®¿¡ LOOP ÀÌ¿ë
;
;
;LOOP
; MOV CX(¹Ýº¹È½¼ö)
; L1 :
; LOOP L1
; Çѹ®ÀÚ Ãâ·ÂÇÏ´Â °Í INT 21H - 02H(¹®ÀÚ) ----> DL:Ãâ·ÂÇÏ°íÀÚÇÏ´Â ¹®ÀÚÀÇ ¾Æ½ºÅ°ÄÚµå
; ¹®ÀÚ¿­À» È­¸é¿¡ Ãâ·ÂÇÏ´Â ÀÎÅÍ·´Æ® : INT 21H - 09H(¹®ÀÚ¿­)
; ---> DS:DX:Ãâ·ÂÇÏ°íÀÚÇÏ´Â ¹®ÀÚ¿­ÀÇ ¼¼±×¸ÕÆ®,¿ÀÇÁ¼Â
; ---> ´Ü ¹®ÀÚ¿­ ³¡¿¡´Â '$' ¸¦ Ç¥½ÃÇØ Áà¾ß ÇÑ´Ù.


; -----------------------------------------------------------------

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

DSEG SEGMENT
NUM DB 1 ; 1´ÜÀÇ ´Ü¼ö ¼±¾ð
RETURN 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 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

MOV RETURN+1, AL ; ¹®ÀÚ¿­ ¾Õ¿¡ ? ¸¦ µÎ¾î¼­ ±× ¼Ó¿¡ ³»°¡ Ãâ·ÂÇÏ°í ½ÍÀº ¹®ÀÚ¿­À» ³Ö¾îÁØ´Ù.
ADD RETURN+1, '0'


; ADD AL, '0' ; ¼ýÀÚ¸¦ ¹®ÀÚ·Î Âï±â À§ÇÑ ÀÛ¾÷
; MOV DL, AL
; MOV AH, 02H
; INT 21H
;
; MOV DL, 0DH ; ¹®ÀÚ¿­°³ÇàÀ§ÇÑ °Í 0DH, 0AH
; MOV AH, 02H
; INT 21H
;
; MOV DL, 0AH
; MOV AH, 02H
; INT 21H

LEA DX, RETURN
MOV AH, 09H
INT 21H

LOOP L1

RET

MAIN ENDP
CSEG ENDS
END MAIN

Modify Delete Post Reply Backward Forward List