¦È¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦Â
¦¢ ¢Æ¢Ç¢È¢Ç¢Æ ÇíÄ¿°¡ µÇÀÚ!!!! (7) ¢Æ¢Ç¢È¢Ç¢Æ ¦¢
¦¢ (¾î¼Àºí¸® ¾ð¾î¿¡ ´ëÇÑ °Á (¸¶Áö¸·È¸)) ¦¢
¦§¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦©
¦¢ Copyright 1993, DimoSoft Á¦ÀÛ : ±è¿µºó(ÑÑç´Þ¯)¦¢
¦Æ¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦¬¦Ä
¡¡ º» ÀÚ·á´Â ¾î´À ´©±¸µµ ´Ù¸¥ °÷¿¡ °è½Ã¸¦ ÇÒ ¼ö ¾ø½À´Ï´Ù. ¡Å¡Å
¡¡ º» ÀÚ·áÀÇ ³»¿ëÀ» ÀοëÀ» ÇÏ¿´À» °æ¿ì °è½Ã¸¦ ÇÏ¿©¾ß ÇÕ´Ï´Ù. ¡Å¡Å À̹øÀÌ ¾î¼Àºí¸®¾îÀÇ ¸¶Áö¸· ȸÀÔ´Ï´Ù.
¡×7.±×¹Û¿¡ ¸í·É¾î
£Ü£Ã£Á£Ì£Ì (Call)
(±â´É) ½ºÅØ »ó¿¡¼ CS¸¦(¼¼±×¸ÕÆ® »çÀÌÀÇ °æ¿ì)µÚµû¶ó ´ÙÀ½¿¡ ¿À´Â
¸í·ÉÀÇ ¿ÀÇÁ¼Â ¾îµå·¹½º¸¦ PUSHÇϰí,ÄÁÆ®·ÑÀ» ¸ñÀû ¿ÀÆÛ·£µå
·Î À̵¿ÇÑ´Ù. (Á¶ÀÛ) ¼¼±×¸ÕÆ® »çÀÌÀÇ °æ¿ì
(1) SP ¡ç SP - 2
(SP) ¡ç CS
CS ¡ç Segment
(2) SP ¡ç SP - 2
(3) (SP) ¡ç IP
(4) IP ¡ç DEST
¼¼±×¸ÕÆ® ³»ÀÇ °æ¿ì´Â (2) ¡ (4)ÀÇ ½ºÅÜÀ» ½ÇÇàÇÑ
´Ù. (Çü½Ä) CALL Target
(Ç¥Çö ¹üÀ§) ¼¼±×¸ÕÆ® ³» ¶Ç´Â ±×·ì ³»ÀÇ IP »ó´ë
(Äڵ尪) E8 | disp-low | disp-high
¼¼±×¸ÕÆ® ³» ¶Ç´Â ±×·ì ³» °£¼·
FF | mod 010 r/m | (disp-low) | (disp-high)
¼¼±×¸ÕÆ® ¶Ç´Â ±×·ì »çÀÌÀÇ Á÷Á¢
9A | offset-low | offset-high | segment-low
| segment-high
¼¼±×¸ÕÆ® ¶Ç´Â ±×·ì »çÀÌÀÇ °£¼·
FF | mod 011 r/m | (disp-low) | (disp-high) £Ü£Ã£Ì£Ã (Clear Carry Flag)
(±â´É) ij¸® Ç÷¡±× CF¸¦ Ŭ¸®¾î ÇÑ´Ù.¼¼Æ®ÇÏ´Â °ÍÀº STC¸í·É
(Á¶ÀÛ) CF ¡ç 0
(Çü½Ä) CLS (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) F8 £Ü£Ã£Ì£Ä (Clear Direction Flag)
(±â´É) ¹æÇâ Áö½Ã Ç÷¡±× DF¸¦ Ŭ¸®¾î ÇÑ´Ù.¼¼Æ®ÇÏ´Â °ÍÀº STD
¸í·É (Á¶ÀÛ) DF ¡ç 0
(Çü½Ä) CLD (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) FC £Ü£Ã£Ì£É(Clear Interrupt Enable Flag)
(±â´É) ÀÎÅÍ·´Æ® Çã°¡ Ç÷¡±× IF¸¦ Ŭ¸®¾î ÇÑ´Ù.¼¼Æ®ÇÏ´Â °ÍÀº STI
¸í·É (Á¶ÀÛ) IF ¡ç 0
(Çü½Ä) CLI (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) FA £Ü£Ã£Í£Ã(Complement Carry Flag)
(±â´É) ij¸® Ç÷¡±× CF¸¦ ¹ÝÀü½ÃŲ´Ù.
(Á¶ÀÛ) CF = 0 ÀÏ ¶§ CF ¡ç 1
CF = 1 ÀÏ ¶§ CF ¡ç 0 (Çü½Ä) CMC (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) F5 £Ü£Å£Ó£Ã (Escape)
(±â´É) ¿ÜºÎ ÂÊÀÇ ÇÁ·Î¼¼¼°¡ 8086 ¸í·É ½ºÆ®¸µÀ̹ǷΠÀÚ½ÅÀÇ ¸í·É
À» ¹Þ°Å³ª,8086 ¾îµå·¹½Ì ¸ðµå¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖµµ·Ï µÇ¾î ÀÖ´Ù.
8086ÇÁ·Î¼¼¼´Â ¸Þ¸ð¸® ¿ÀÆÛ·£µå¿¡ ¾ï¼¼½ºÇÏ°í ±× ³»¿ëÀ» ¹ö
½º¿¡ ½Æ´Â´Ù.8086¿¡ ´ëÇØ¼´Â ¾î¶² È¿°úµµ °¡Á®¿ÀÁö ¾Ê´Â´Ù. (Á¶ÀÛ) mod ¨ö 11ÀÏ ¶§,µ¥ÀÌÅÍ ¹ö½º ¡ç (EA)
mod £½ 11ÀÏ ¶§,³ë ¿ÀÆÛ·¹ÀÌ¼Ç (Çü½Ä) ESC external-opcode,source
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÄÚµå
(Äڵ尪) 11011??? | mod ??? r/m | (disp-low) | (disp-high)
??????´Â external-opcodeÀÇ 6ºñÆ®¸¦ ³ªÅ¸³½´Ù. £Ü£È£Ì£Ô (Halt)
(±â´É) CPU¸¦ HALT(Á¤Áö) »óÅ·ΠÇÑ´Ù.ÀÌ »óÅ´ ¿ÜºÎ ÀÎÅÍ·´Æ® ¶Ç
´Â ¸®¼Â¿¡ ÀÇÇØ¼¸¸ ÇØÁ¦µÈ´Ù. (Á¶ÀÛ) ¿ÀÆÛ·¡ÀÌ¼Ç Á¤Áö
(Çü½Ä) HLT (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) F4 £Ü£É£Î£Ô (Interrupt)
(±â´É) Ç÷¡±× ·¹Áö½ºÅ͸¦ PUSH(ÅðÇÇ)Çϰí TF,IF¸¦ Ŭ¸®¾îÇÑ 256ÀÎ
º¤ÅÍ ÁßÀÇ ÀÓÀÇÀÇ Çϳª¸¦ °³ÀÔ½ÃŲ °£Á¢ CALLÀ» »ç¿ëÇØ¼ ºÐ
±â Á¦¾î¸¦ ½ÇÇàÇÑ´Ù.1¹ÙÀÌÆ® ¸í·ÉÀÇ °æ¿ì´Â ÀÎÅÍ·´Æ® ŸÀÔ 3
À» ¹ß»ýÇÑ´Ù.
¼ÒÇÁÆ®¿þ¾îºÎÅÍ ÀÎÅÍ·´Æ®¸¦ ¹ß»ý½ÃŲ ¼ÒÁ¤ÀÇ Ã³¸® ·çƾ¿¡ ´ë
ÇÑ Á¦¾î¸¦ ¿Å±ä´Ù.¿ÜºÎ¿¡¼ÀÇ ÀÎÅÍ·´Æ®¿Í´Â ´Þ¸® ÇÁ·Î±×·¥ ½Ç
Çà¼ø¼´Â ¼ÒÇÁÆ®¿þ¾îÀÇ Áö½Ã¿¡ µû¸¥´Ù. (Á¶ÀÛ) SP ¡ç SP - 2
(SP) ¡ç FLAGS
IF ¡ç 0
TF ¡ç 0
SP ¡ç SP - 2
(SP) ¡ç CS
CS ¡ç TYPE * 4 + 2
SP ¡ç SP - 2
(SP) ¡ç IP
IP ¡ç TYPE * 4 (Çü½Ä) INT (interrupt-type)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 1100110v | (type if v=1)
(v = 0 ¡æ int 3ÀÓ) £Ü£É£Î£Ô£Ï (Interrupt if Overflow)
(±â´É) OF = 1ÀÇ °æ¿ì¸¸ °¡´ÉÇÏ´Ù.Ç÷¡±× ·¹Áö½ºÅ͸¦ ÅðÇÇ(PUSH)ÇÑ
ÈÄ TF,IF¸¦ Ŭ¸®¾îÇϰí Àý´ë ·ÎÄÉÀÌ¼Ç 10¿¡ ÀÖ´Â ´õºí ¿öµå
ÀÎÅÍ·´Æ® ŸÀÔ 4·ÎºÎÅÍ CALLÀ» ½ÇÇàÇÑ´Ù. (Á¶ÀÛ) SP ¡ç SP - 2
(SP) ¡ç FLAGS
IF ¡ç 0
TF ¡ç 0
SP ¡ç SP - 2
(SP) ¡ç CS
CS ¡ç 12H ;ÀÎÅÍ·´Æ® ŸÀÔ 4ÀΰͿ¡¼ Type*4+2=18=12H
SP ¡ç SP - 2
(SP) ¡ç IP
IP ¡ç 10H ;Type * 4 = 16 = 10H (Çü½Ä) INTO (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) CE £Ü£É£Ò£Å£Ô (Return Interrupt)
(±â´É) ÀÎÅÍ·´Æ®ÀÇ Á¶ÀÛ¿¡ ÀÇÇØ¼ ÅðÇǽÃ۰í ÀÖ´Â ¸®ÅÏ ¾îµå·¹½º·Î
ÇÁ·Î±×·¥ ÄÁÆ®·ÑÀ» ¿Å±ä´Ù.Ç÷¡±× ·¹Áö½ºÅÍÀÇ ³»¿ëµµ º¹±Í ½Ã
Ų´Ù. (Á¶ÀÛ) IP ¡ç (SP)
SP ¡ç SP + 2
CS ¡ç (SP)
SP ¡ç SP + 2
FLAGS ¡ç (SP)
SP ¡ç SP + 2 (Çü½Ä) IRET (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ Çü½Ä
(Äڵ尪) CF £Ü£Ì£Ï£Ã£Ë (Assert Bus Lock)
(±â´É) 8086 Maximum¸ðµåÀÏ ¶§¿¡ 29ÇÉ¿¡ Ãâ·ÂµÇ´Â LOCK ½ÅÈ£ÀÇ Á¦
¾î¸¦ ½ÇÇàÇÑ´Ù.LOCK ¸í·ÉÀº ´Ù¸¥ ÀÓÀÇÀÇ ¸í·É ÇÁ¸®ÇȽº·Î¼
ºÎ°¡µÈ´Ù.LOCK ¸í·ÉÀ» ÁÖ°¡ÇÑ ¸í·ÉÀÇ ½ÇÇàÁß¿¡´Â 8086ÀÇ L-
OCK ½ÅÈ£°¡ "L"(¾×Ƽºê)·Î µÈ´Ù.¸ÖƼÇÁ·Î¼¼¼ ½Ã½ºÅÛ¿¡¼ °ø
À¯ÀÚ¿øÀÇ ¼¼¸¶Æ÷(semaphore)°ü¸®¸¦ ½ÇÇàÇÏ´Â °æ¿ì, ÀÌ LOCK
½ÅÈ£°¡ "L"ÀÇ »çÀÌ´Â ´Ù¸¥ ÇÁ·Î¼¼¼¿¡¼ ¹ö½º ¾ï¼¼½º¸¦ ±ÝÁö
Çϵµ·Ï Çϵå¿þ¾î »ó º¸ÁõÇÏ´Â ¼³°è·Î ÇÏÁö ¾ÊÀ¸¸é ¾È µÈ´Ù.
½Ì±Û ÇÁ·Î¼¼¼¿¡¼´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. (Á¶ÀÛ) ¾øÀ½
(Çü½Ä) LOCK (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) F0 £Ü£Ì£Ï£Ï£Ð (Loop control)
(±â´É) ¹Ýº¹ Á¦¾î,·çÆ® À妽º °ü¸®¿Í Á¶°Ç ºÐ±â¸¦ Á¶ÇÕ½ÃŲ °Í
¿ì¼± ºÎÈ£ ¾ø´Â ¹Ýº¹ Ä«¿îÅ͸¦ CX¿¡ ·ÎµåÇϰí, ¹Ýº¹ÇØ¾ß ÇÒ
ÀÏ·ÃÀÇ ¸í·ÉÀÇ ÃÖÈÄ¿¡ LOOP ¸í·ÉÀ» µÐ´Ù.±×¸®Çϸé LOOP¸¦
½ÇÇàÇÒ ¶§¿¡ CX°¡ µðÅ©¸®¸ÕÆ®µÇ°í,IP¿¡ ´õÇÏ´Â °ÍÀ¸·Î Á¶°Ç
ºÐ±â°¡ ½ÇÇàµÈ´Ù.ºÐ±â¼±ÀÇ ¹üÀ§´Â LOOP ¸í·É¿¡¼, -127¹ÙÀÌ
Æ®¿¡¼ 128¹ÙÀÌÆ® »çÀÌ (Á¶ÀÛ) CX ¡ç CX - 1
CX ¨ö 0 À̸é IP ¡ç IP + ºÎÈ£ È®ÀåµÈ µð½ºÇ÷¹À̽º¸ÕÆ® (Çü½Ä) LOOP (short-label)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) E2 | disp £Ü£Î£Å£Ç (Negate an Integer)
(±â´É) ·¹Áö½ºÅÍ ¶Ç´Â ¸Þ¸ð¸® ¿ÀÆÛ·£µåÀÇ 2º¸¼ö¸¦ ÃëÇÏ¿©,¿ø·¡ÀÇ
¿ÀÆÛ·£µåÀÇ °ª°ú ġȯÇÒ ¼ö ÀÖ´Ù. (Á¶ÀÛ) ¿ÀÆÛ·£µå ¡ç ¿ÀÆÛ·£µåÀÇ 2ÀÇ º¸¼ö
(Çü½Ä) NEG (destination)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 1111011w | mod 011 r/m | (disp-low) | (disp-high) £Ü£Î£Ï£Ð (No Operation)
(±â´É) IP ÀÌ¿ÜÀÇ ±â°è»óŸ¦ º¯È½ÃŰÁö ¾Ê°í,1¹ÙÀÌÆ®ÀÇ ¿µ¿ªÀ»
ä¿î´Ù. (Á¶ÀÛ) ¾øÀ½
(Çü½Ä) NOP (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 90 £Ü£Ò£Å£Ô (Return From Subroutine)
(±â´É) ½ºÅà »óÀÇ ¹é ¸µÅ©(Back Link)¸¦ °³ÀÔÇÏ¿© ¼ºê·çƾ¿¡¼ º¹
±ÍÇÑ´Ù.¼¼±×¸ÕÆ® ³»ÀÇ °æ¿ì´Â ½ºÅà Åé ¿öµå¸¦ IP·Î Àü¼ÛÇÑ´Ù.
¼¼±×¸ÕÆ® »çÀÌÀÇ °æ¿ì´Â ½ºÅà ÅéÀÇ Å×ÀÌºí ¿öµå¸¦ °¢°¢ IP,
CS·Î Àü¼ÛÇÑ´Ù.¸í·É »ó¿¡ À̵̹ð¾îÆ® µ¥ÀÌŸ°¡ ÁöÁ¤µÇ¾î ÀÖ
´Â °æ¿ì´Â SP¿¡ µ¥ÀÌ´õ¸¦ °¡»êÇÑ´Ù. (Á¶ÀÛ) IP ¡ç (SP)
SP ¡ç SP + 2
¼¼±×¸ÕÆ®³¢¸®ÀÇ °æ¿ì´Â ´Ù½Ã Çѹø
CS ¡ç (SP)
SP ¡ç SP + 2
SP¿¡ ´ëÇÑ À̵̹ð¾îÆ® °¡»êÀÇ °æ¿ì´Â ´Ù½Ã Çѹø
SP ¡ç SP + À̵̹ð¾îÆ® µ¥ÀÌÅÍ (Çü½Ä) RET (optional-pop-value)
(Ç¥Çö ¹üÀ§) ¼¼±×¸ÕÆ® ³»ÀÇ ¸®ÅÏ(º¹±Í)
(Äڵ尪) C3
¼¼±×¸ÕÆ® ³»ÀÇ ¸®ÅÏ¹× À̵̹ð¾îÆ® µ¡¼À
C2 | data-low | data-high
¼¼±×¸ÕÆ® »çÀÌ¿¡¼ ¸®ÅÏ
CA
¼¼±×¸ÕÆ® »çÀÌ¿¡¼ ¸®ÅÏ¹× À̵̹ð¾îÆ® °¡»ê
CA | data-low | data-high £Ü£Ó£Ô£Ã (Set Carry Flag)
(±â´É) ij¸® Ç÷¡±× CF¸¦ ¼¼Æ®ÇÑ´Ù.±× ¹ÛÀÇ Ç÷¡±×´Â º¯ÈÇÏÁö ¾Ê
´Â´Ù.Ŭ¸®¾îÇÏ´Â µ¥´Â CLC¸í·É (Á¶ÀÛ) CF ¡ç 1
(Çü½Ä) STC (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) F9 £Ü£Ó£Ô£Ä (Set Direction Flag)
(±â´É) ¹æÇâ Áö½Ã Ç÷¡±× DF¸¦ ¼¼Æ®ÇÑ´Ù.±× ¹ÛÀÇ Ç÷¡±×´Â º¯ÈÇÏ
Áö ¾Ê´Â´Ù.Ŭ¸®¾îÇÏ´Â µ¥´Â CLD¸í·É (Á¶ÀÛ) DF ¡ç 1
(Çü½Ä) STD (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) FD £Ü£Ó£Ô£É (Set Interrupt Enable Flag)
(±â´É) ÀÎÅÍ·´Æ® Àο¡À̺í Ç÷¡±× IF¸¦ ¼¼Æ®ÇÑ´Ù.±× ¹ÛÀÇ Ç÷¡±×
´Â º¯ÈÇÏÁö ¾Ê´Â´Ù.Ŭ¸®¾îÇÏ´Â µ¥´Â CLI¸í·É (Á¶ÀÛ) IF ¡ç 1
(Çü½Ä) STI (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) FB £Ü£×£Á£É£Ô (Wait While TEST pin not Asserted)
(±â´É) TEST ´ÜÀÚ°¡ ¾×Ƽºê·Î µÉ ¶§±îÁö ÇÁ·Î¼¼¼¸¦ ¿þÀÌÆ® »óÅÂ
·Î ÇÑ´Ù.À̰Ϳ¡ µû¶ó¼ ¿ÜºÎ Çϵå¿þ¾î¿Í µ¿±â¸¦ ÃëÇÒ ¼ö ÀÖ
´Ù.
¿þÀÌÆ® »óÅ¿¡¼µµ Àο¡À̺íµÈ ÀÎÅÍ·´Æ®¸¦ ¹Þ¾ÆµéÀÏ ¼ö ÀÖ
´Ù.ÀÎÅÍ·´Æ®°¡ °É¸®¸é WAIT ¸í·É ÄÚµå ·ÎÄÉÀ̼ÇÀÌ ÅðÇǵǹÇ
·Î ÀÎÅÍ·´Æ® ½ºÅÃÀ¸·Î µÇµ¹¸®¸é ´Ù½Ã ¿þÀÌÆ® »óÅ·ΠµÈ´Ù.
TEST ´ÜÀÚ°¡ ¾×ƼºêµÇ¸é ¿þÀÌÆ® »óŸ¦ »Ì¾Æ³» ½ÇÇàÀ» Àç°³
ÇÏÁö¸¸,±×¶§ ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϱâ±îÁö ¿ÜºÎ ÀÎÅÍ·´Æ®´Â ¹Þ
¾ÆµéÀÌÁö ¾Ê´Â´Ù. (Á¶ÀÛ) ¾øÀ½
(Çü½Ä) WAIT (no operands)
(Ç¥Çö ¹üÀ§) ´ÜÀÏ ÇüÅÂ
(Äڵ尪) 9B À§¿¡¼ JMP ¸í·É°ú ºÐ±â¸í·É¾î´Â ¼³¸íÀ» ÇϱⰡ °ï¶õ ÇÏ¿©¼ »ý·«À» Çß½À´Ï
´Ù.ÇÏÁö¸¸ ÇÁ·Î±×·¥À» ºÐ¼®À» ÇÏ´Ù°¡ º¸¸é¼ ÀÌÇØ¸¦ ÇÒ ¼ö ÀÖµµ·Ï ÇϰڽÀ´Ï´Ù.
´ÙÀ½ ºÎÅÍ´Â µð¹ö°Å¸¦ ºÐ¼®À» ÇÏ¸é¼ ¸ÖƼ Å×½ºÅ·ÀÇ ±âÃʸ¦ ¼³¸íÀ» ÇϰڽÀ´Ï
´Ù.¸ÖƼ Å×½ºÅ·°ú ¿ì¸®ÀÇ °¡Àå Áß¿äÇÑ µµ±¸ÀÎ µð¹ö°ÅÀÇ ºÐ¼®À» ÇϰڽÀ´Ï´Ù.
---------------------------