asm_82.
¿ª¿öµå Çü½Ä°ú ADC ¸í·É
25 ÀÌÇü¹® buju8t 12/29 1049
12 ¿ª¿öµå Çü½Ä°ú ADC ¸í·É....
¾Æ½ºÅ° ÄÚµå·Î½á Ç¥½ÃÇÒ ¼ö ¾ø´Â ¼ýÀÚ°¡ °á°ú·Î¼ ¾ò¾îÁø °æ¿ì¿¡
DEBUG ·Î ¾Ë¾Æº¾½Ã´Ù.
* ADD3.ASM
MAIN SEGMENT
ASSUME CS:MAIN,DS:MAIN
;
MOV AX,CS
MOV DS,AX
;
MOV AX,1000H
MOV BX,1234H
ADD AX,BX
MOV ANS1,AX
;
MOV AH,4CH
INT 21H
;
ANS1 DW ?
;
MAIN ENDS
END
±×·³ µð¹ö°Å¸¦ ±âµ¿½ÃÄÑ º¾½Ã´Ù.
C:ASM>DEBUG ADD3.ASM
-R
AX=0000 BX=0000 CX=0015 DX=0000 SP=0000 BP=0000
SI=0000 DI=0000
DS=46E0 ES=46E0 SS=46 F0 CS=46F0 IP=0000 NV
UP EI PL NZ NA PO NC
46F0:0000 8CC8 MOV
AX,CS
-U0
46F0:0000 8CC8 MOV
AX,CS
46F0:0002 8ED8 MOV
DS,AX
46F0:0004 B80010 MOV AX,1000
46F0:0007 BB3412 MOV BX,1234
46F0:000A 03C3 ADD AX,BX
46F0:000C A31300 MOV [0013],AX
46F0:000F B44C MOV
AH,4C
46F0:0011 CD21 INT
21
46F0:0013 0000 ADD
[BX+SI],AL
0013H ¹øÁö¿¡ º¯¼ö ANSI ¿µ¿ªÀÌ
Á¤Àǵ˴ϴÙ.
46F0:0015 3339 XOR
DI,[BX+DI]
46F0:0017 7944 JNS
005D
.
.
.
-Q
¿ø·¡ÀÇ ÇÁ·Î±×·¥¿¡¼ MOV ANSI,AX ¶ó°í ¾²¿©ÀÖ´Â ºÎºÐÀÌ ¿ª¾î¼ÀºíµÇ¸é
MOV [0013],AX
·Î ¹Ù²î¾îÁ® ÀÖÀ¾´Ï´Ù. Áï, º¯¼ö ANSIÀº 0013H ¹øÁö¿¡ ÇÒ´çµÇ±â ¶§¹®¿¡
À̰ÍÀº ¸ÞÀÎÇÁ·Î±×·¥ ¹Ù·Î µÚ¿¡ À§Ä¡Çϰí ÀÖÀ¾´Ï´Ù.
°è¼Ó T Ä¿¸Çµå¸¦ ½ÇÇàÈÄ ´Ù½Ã ¿ª¾î¼ÀºíÇØ º¾½Ã´Ù.
-T
AX=4C34 BX=1234 CX=0015 DX=0000 SP=0000 BP=0000
SI=0000 DI=0000
DS=48B0 ES=48A0 SS=48B0 CS=48B0 IP=0011 NV
UP DI PL NZ NA PO NC
48B0:0011 CD21 INT
21
-U0
48B0:0000 8CC8 MOV
AX,CS
48B0:0002 8ED8 MOV
DS,AX
48B0:0004 B80010 MOV AX,1000
48B0:0007 BB3412 MOV BX,1234
48B0:000A 03C3 ADD
AX,BX
48B0:000C A31300 MOV [0013],AX
48B0:000F B44C MOV
AH,4C
48B0:0011 CD21 INT
21
48B0:0013 3422 XOR
AL,22
µ¡¼ÀÇÑ °á°ú°¡
¿©±â¿¡ ÀúÀåµÇ¾î ÀÖÀ¾´Ï´Ù.
48B0:0015 3339 XOR
DI,[BX+DI]
.
-Q
µ¡¼À °á°ú°¡ 0013H¹øÁö¿¡ ÀúÀåµÇ¾î ÀÖÀ¾´Ï´Ù. ¿©±â¼ ¿ª¾î¼Àºí °á°ú°¡
XOR AL,22 ¶ó´Â °ÍÀº ´Ü¼øÈ÷ ÀÌ µ¥ÀÌÅ͸¦ ¸í·ÉÀ¸·Î º¸°í ª¾î¼Àº ÇÑ °Í
À¸¹Ç·Î ¾Æ¹«Àǹ̰¡ ¾øÀ¾´Ï´Ù.
¿¬»ê°á°ú´Â 1000H + 1234H = 2234H ÀÌÁö¸¸ 0013H ¹øÁö¿Í 0014H ¿¡´Â
3422
·Î ÀúÀåµÇ¾î ÀÖÀ¾´Ï´Ù. »óÀ§ ¹ÙÀÌÆ®ÀÇ 22H ¿Í ÇÏÀ§ ¹ÙÀÌÆ® 34H °¡ ¼·Î
¹Ù²ï ÇüÅ·ΠÀúÀåµÇ¾î ÀÖÀ¾´Ï´Ù.
À̰ÍÀº 80 °è¿ CPUÀÇ Æ¯Â¡ÀûÀÎ Çö»óÀ¸·Î¼,16ºñÆ® ·¹Áö½ºÅÍ »óÀÇ µ¥ÀÌ
ÅÍ(¿öµåµ¥ÀÌÅÍ)¸¦ ¸Þ¸ð¸®¿¡ Àü¼ÛÇÒ ¶§¿¡´Â »óÀ§ ÇÏÀ§ ¹ÙÀÌÆ®°¡ ¹Ù²ï´Ù¶ó´Â
±ÔÄ¢ÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù.
ÀÌ¿Í °°Àº Àü¼Û¹æ½ÄÀ» "¿ª¿öµå Çü½Ä"À̶ó°í ÇÕ´Ï´Ù.
¸Þ¸ð¸® »óÀÇ µ¥ÀÀÌÅ͸ ·¹Áö½ºÅÍ »óÀ¸·Î Àü¼ÛÇÒ ¶§¿¡´Â »óÇϹÙÀÌÆ®°¡ ´Ù½Ã
¹Ù²î¾î¼ Àü¼ÛµÇ¹Ç·Î ½Å°æ¾µ ÇÊ¿ä´Â ¾øÀ¾´Ï´Ù.
´Ü,¹ÙÀÌÆ®Çü µ¥ÀÌÅÍ¿Í ¿öµåÇü µ¥ÀÌÅ͸¦ ¼¯¾î¼ Ãë±ÞÇÒ °æ¿ì ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù.
* ADC ¸í·É
Áö±Ý±îÁö´Â 2°³ÀÇ 16ºñÆ® ·¹Áö½ºÅ͸¦ ´õÇÏ¸é °á°úµµ 16ºñÆ® À̳»·Î µÇ´Â
°æ¿ì¿´Áö¸¸, ÀÌÁ¦ °á°ú°¡ 2°³ÀÇ ·¹Áö½ºÅÍ·Î ÀúÀåÇÒ ¼ö ¾ø´Â °æ¿ì¿¡´Â 2°³ÀÇ
16ºñÆ® ·¹Áö½ºÅ͸¦ »ç¿ëÇÏ¿© 32ºñÆ® ¼ýÀÚ¸¦ Ç¥½ÃÇϵµ·Ï Á¤Çسõ°í,ÇÏÀ§ 16ºñ
Æ®¸¦ µ¡¼ÀÇÒ ¶§¿¡ ¹ß»ýÇÑ ÀÚ¸®¿Ã¸²(ij¸®,carry)À» ¾îµò°¡¿¡ ±â¾ïÇØ ³õ°í ,
»óÀ§ 16ºñÆ®¸¦ µ¡¼ÀÇÒ ¶§ ´õÇØÁÀÖ´ ¹æ¹ýÀ» ÃëÇÕ´Ï´Ù.
CF ÀÚ¸®¿Ã¸² ¿¹·Î
1
AX BX
1000
8000
+ CX + DX +
2000 8123
-------- --------- ---------------------
AX' BX'
3001
0123
¿¹¸¦ µé¸é AX ·¹Áö½ºÅͰ¡ »óÀ§ 16ºñÆ® ,BX ·¹Áö½ºÅͰ¡ ÇÏÀ§ 16ºñÆ®¸¦ ³ªÅ¸
³»´Â °ÍÀ¸·Î ÇÏ¿© AX,BX¸¦ Á¶ÇÕÇÏ¿© 32ºñÆ®ÀÇ ¼ýÀÚ¸¦ Ç¥ÇöÇϵµ·Ï ÇÕ´Ï´Ù.
¸¶Âù°¡Áö·Î CX,DXµµ ±×·¸°Ô ÇÕ´Ï´Ù.
¿ì¼± ÇÏÀ§ 16ºñÆ® ¾¿ BX+DX¸¦ °è»êÇÏ°í °á°ú¸¦ BX ·¹Áö½ºÅÍ¿¡ ±â¾ïÇÕ´Ï´Ù
À̶§, ÀÚ¸®¿Ã¸²ÀÌ ÀÖ´Ù¸é ±â¾ïÇØµÓ´Ï´Ù.
´ÙÀ½¿¡ AX+DX¸¦ ´õÇÑÈÄ ±â¾ïµÇ¾î ÀÖ´ø ÀÚ¸®¿Ã¸²µµ °°ÀÌ ´õÇÕ´Ï´Ù.ÀÌ °ÍÀ»
AX·¹Áö½ºÅÍ¿¡ ±â¾ï½Ãŵ´Ï´Ù.
Çѹø µ¡¼ÀÇßÀ» ¶§ ÀÚ¸®¿Ã¸²Àº ,0 ȤÀº 1À̹ǷΠÇÑ ºñÆ®¸¸ ÀÖÀ¸¸é ±â¾ïÇÒ
¼ö ÀÖÀ¾´Ï´Ù.±×·¡¼ ±× ±â¾ïÀ» À§ÇØ ¼³Á¤µÈ °ÍÀÌ Ä³¸®Ç÷¯±×(carry flag)
¶ó°í ºÎ¸£´Â ºñÆ®ÀÔ´Ï´Ù.
ADD ¸í·É¿¡´Â ij¸® Ç÷¯±×´Â ´õÇØÁöÁö ¾Ê¾Ò´Âµ¥,ij¸® Ç÷¯±×µµ µ¿½Ã¿¡
´õÇÏ´Â ¸í·ÉÀ¸·Î ADC (ADdition with Carry)¸í·ÉÀÌ ÀÖÀ¾´Ï´Ù.
* ADD4 --- 10008000H+20008123 À» ´õÇÏ´Â ÇÁ·Î±×·¥
MAIN SEGMENT
ASSUME CS:MAIN,DS:MAIN
;
MOV AX,MAIN
MOV DS,AX
;
MOV AX,1000H
MOV BX,8000H
MOV CX,2000H
MOV DX,8123H
ADD BX,DX
ADC AX,CX
MOV ANS1,AX
MOV ANS2,BX
;
MOV AH,4CH
INT 21H
;
ANS1 DW 0
ANS2 DW 0
;
MAIN ENDS
END
µ¡¼À °á°ú »óÀ§ 16ºñÆ®°¡ ANS1¿¡ ÇÏÀ§ 16ºñÆ®°¡ ANS2¿¡ ÀúÀåµÇ¾î ÀÖÀ¾´Ï´Ù
±×·³ DEBUG ¸¦ ±âµ¿½ÃÄÑ º¾½Ã´Ù.
-U0,24
4DB0:0000 B8B04D MOV AX,4DB0
4DB0:0003 8ED8 MOV
DS,AX
4DB0:0005 B80010 MOV AX,1000
4DB0:0008 BB0080 MOV BX,8000
4DB0:000B B90020 MOV CX,2000
4DB0:000E BA2381 MOV DX,8123
4DB0:0011 03DA ADD
BX,DX
4DB0:0013 13C1 ADC
AX,CX
4DB0:0015 A32000 MOV [0020],AX
4DB0:0018 891E2200 MOV [0022],BX
4DB0:001C B44C MOV
AH,4C
4DB0:001E CD21 INT
21
4DB0:0020 0000 ADD
[BX+SI],AL
4DB0:0022 0000 ADD
[BX+SI],AL
4DB0:0024 7269 JB 008F
-Q
°á°ú´Â ,20H¿Í 22H ¹øÁö¿¡ ÀúÀåµÇ¾î¾ßÇÔÀ» ¾Ë ¼ö ÀÖÀ¾´Ï´Ù.
±×·³ GÄ¿¸Çµå¸¦ »ç¿ëÇØ ¾Ë¾Æ º¾½Ã´Ù.
-G=0,1E
AX=4C01 BX=0123 CX=2000 DX=8123 SP=0000 BP=0000
SI=0000 DI=0000
DS=4DB0 ES=4DA0 SS=4DB0 CS=4DB0 IP=001E NV
UP EI PL NZ NA PO NC
4DB0:001E CD21 INT
21
-U20,24
4DB0:0020 0130 ADD
[BX+SI],SI
4DB0:0022 2301 AND
AX,[BX+DI]
4DB0:0024 7269 JB 008F
-Q
µÎ¼ö¸¦ ´õÇÑ °Àá°ú´ 30010123H ÀÌÁö¸¸ ¿ª¿öµå Çü½Ä¿¡ ÀÇÇØ¼ »óÀ§¿öµå 3001
ÀÌ 0130À¸·Î ÀúÀåµÇ°í ÇÏÀ§¿öµå 0123 ÀÌ 2301 ·Î ÀúÀåµË´Ï´Ù.
|