asm_31.
(Çϵå¿þ¾î-8088 mpu)
¾î¼Àºí¸®¾î °Á°¡ 4ºÎºÐÀ¸·Î ³ª´¹´Ï´Ù.
asm_00.À¸·Î ½ÃÀÛÇÑ µð¹ö±×¸¸À» »ç¿ëÇÑ ÇÁ·Î±×·¡¹Ö
asm_71.·Î ½ÃÀÛÇÑ ÇÏÀÌÅÚ µÎ·ç¹° °Á ¿ä¾à Á¤¸®
asm_51.·Î ½ÃÀÛÇÏ´Â ¾î¼Àºí¸®¾î ¸í·É¾î ÇØ¼³
asm_31.·Î ½ÃÀÛÇÏ´Â Çϵå¿þ¾î °ü·Ã Á¤¸®
°¢ µ¶ÀÚÀÇ °øºÎ ÃëÇâ°ú ¹æÇâÀÌ ´Ù¸¦ ¼ö Àֱ⠶§¹®¿¡, ÇÊÀÚ°¡ 3°¡Áö ¹æÇâÀ¸·Î ÁøÇàÇÏ´Â
°Á¿¡¼ ¸¶À½¿¡ µå´Â °ÍºÎÅÍ °øºÎÇϽñ⠹ٶø´Ï´Ù.
°øºÎ ¼ø¼´Â ¸¶À½¿¡ ³»Å°´Â °ÍÀÌ °¡Àå ÁÁ´Ù°í, ÇÊÀÚ´Â ¹Ï½À´Ï´Ù.
Á¦ 31 Àå Çϵå¿þ¾î-8088 MPU
asm_31.ºÎÅÍ´Â IBM PCÀÇ Çϵå¿þ¾î¿¡ °üÇÏ¿© Á¤¸®ÇϰíÀÚ ÇÕ´Ï´Ù. ÇÁ·Î±×·¡¹ÖÀ»
À§Çؼ´Â Çϵå¿þ¾î¿¡ ´ëÇÑ ¾î´À Á¤µµÀÇ ÀÌÇØ°¡ ÇÊ¿äÇϱ⠶§¹®¿¡, ¿©·¯ Ã¥ÀÚ¸¦
Âü°íÇÏ¿© Á¤¸®ÇØ º¸°Ú½À´Ï´Ù.
Çϵå¿þ¾î¿¡ °üÇÑ Á¤¸®·Î¼ ¸ÕÀú 8088/8086 ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡ °üÇØ ¾Ë¾Æ
º¸±â·Î ÇÏÀÚ.
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(microprocessor ¶Ç´Â MPU, Microprocessing Unit)´Â ÄÄÇ»ÅÍÀÇ
CPU(Central Processing Unit, Áß¾Óó¸®ÀåÄ¡)¸¦ ´ÜÀÏ LSI() Ĩ¿¡ ´ã¾Æ¼ ¸¸µç ¹ÝµµÃ¼
¼ÒÀÚÀÌ´Ù.
ÀüÅëÀûÀÎ ÄÄÇ»ÅÍÀÇ ±¸Á¶´Â CPU¿¡ ¿¬»êÀåÄ¡, Á¦¾îÀåÄ¡´Â ¹°·Ð ÁÖ±â¾ïÀåÄ¡±îÁö ÇÔ²²
Æ÷ÇԵǸç CPU°¡ ÇϳªÀÇ ¼ÒÀÚ·Î µÇ¾î ÀÖ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿©·¯ °³ÀÇ ¼ÒÀÚ°¡ º¹ÀâÇÑ È¸·Î·Î
¿¬°á ±¸¼ºµÇ¾úÁö¸¸, ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡´Â ÁÖ±â¾ïÀåÄ¡¸¦ Á¦¿ÜÇÑ CPUÀÇ ¸ðµç
¿ä¼Ò°¡ ÇϳªÀÇ Ä¨¿¡ ÁýÀûµÇ¾î Àֱ⠶§¹®¿¡ Å©±â¿Í ¼ÒºñÀü·ÂÀÌ ÀÛ¾ÆÁö°í ¼º´É ´ëºñ
°¡°ÝÀÌ Àú·ÅÇÏ¿© PC º¸±ÞÀÇ ±âÆøÁ¦ ¿ªÇÒÀ» Çϰí ÀÖ´Ù.
## ¹ßÀü Âü°í
Ư¼öÇÑ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)·Î¼ ´ÜÀÏ Ä¨ ¸¶ÀÌÅ©·ÎÄÄÇ»ÅÍ(singlechip microcomputer)¶ó´Â
°ÍÀÌ Àִµ¥, ±×°ÍÀº 1°³ÀÇ Ä¨¿¡ CPU ±â´ÉÀº ¹°·Ð ¸Þ¸ð¸®¿Í ÀÔÃâ·Â ȸ·Î±îÁö ³»ÀåµÇ¾î
Àֱ⠶§¹®¿¡ Ĩ Çϳª·Î¼ ¿ÏÀüÇÑ ÄÄÇ»ÅÍÀÇ ±â´ÉÀ» °®Ãß°í ÀÖÀ¸¸ç, ºÎǰÀÇ ¼ö°¡ Àû°í
°¡°ÝÀÌ Àú·ÅÇÏ¿© ±â°èÁ¦¾î¿ëÀ¸·Î ³Î¸® »ç¿ëµÈ´Ù.
Á¦ 1 Àý ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ Á¾·ù
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ Á¾·ùµµ ¸¹°í ºÐ·ùÇÏ´Â ¹æ¹ýµµ ¿©·¯ °¡Áö°¡ ÀÖ´Ù.
±×·¯³ª Âü°í·Î °£´ÜÈ÷ ¸î °¡Áö¸¸ ¾Ë¾Æ º¸±â·Î ÇÏÀÚ.
1. ºñÆ®¼ö¿¡ µû¸¥ MPUÀÇ Á¾·ù
ºñÆ®¼ö´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ÀÏ Ã³¸®´É·Â ¹× ¼Óµµ¿¡ °ü°èµÇ´Â »çÇ×À¸·Î
¸Å¿ì Áß¿äÇÑ °ÍÀÌ´Ù. ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)´Â 4ºñÆ®Çü, 8ºñÆ®Çü, 16ºñÆ®Çü, 32ºñÆ®ÇüÀ»
°ÅÃÄ 64ºñÆ®ÇüÀÌ µîÀåÇϰí ÀÖ´Â Çö½ÇÁ¤ÀÌ´Ù.
ÀÎÅÚ Ä¨À¸·Î¼ °¢ ºñÆ®Çü¿¡ ÇØ´çµÇ´Â ĨÀ» »ìÆì º¸¸é ´ÙÀ½°ú °°´Ù.
4ºñÆ®Çü: 4004, 4040
8ºñÆ®Çü: 8080, 8085
16ºñÆ®Çü : 8086(8088), 80286
32ºñÆ®Çü : iAPX432, 80386,
80486
64ºñÆ®Çü : PENTIUM
Àß ¾Ë´Ù½ÍÀÌ 8088 ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)´Â ¿ÜºÎ µ¥ÀÌÅ͹ö½º°¡ 8ºñÆ®·Î 8ºñÆ®
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿Í ºñ½ÁÇÏÁö¸¸ 16ºñÆ® ÇÁ·Î¼¼¼ÀÌ´Ù. 8086¿¡ ºñÇÏ¿© °¡°ÝÀ»
³·ÃãÀ¸·Î½á PC º¸±ÞÀ» È®»êÇϱâ À§ÇØ ¸¸µé¾îÁ³´ø ĨÀÌ´Ù.
ÇÑÆí 8085´Â 8ºñÆ® ÇÁ·Î¼¼¼ÀÌÁö¸¸ 8008ÀÇ ¼º´ÉÀ» Çâ»ó½ÃŲ °ÍÀ̸ç, 80286Àº ¼º´ÉÀÌ
Çâ»óµÈ 16ºñÆ® ÇÁ·Î¼¼¼, 80486Àº ¼º´ÉÀÌ Çâ»óµÈ 32ºñÆ® ÇÁ·Î¼¼¼ÀÌ´Ù.
2. ±¸Á¶, ¿ëµµ¿¡ µû¸¥ MPUÀÇ Á¾·ù
ÀϹÝÀûÀ¸·Î ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¶ó°í ÇÏ¸é ³»ºÎ°¡ ¿¬»êºÎ, Á¦¾îºÎ, ·¹Áö½ºÅͺηÎ
±¸¼ºµÇ¾î ±âº»ÀûÀÎ CPU ±â´É »ÓÀÎ ¹ü¿ë ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¸¦ °¡¸®Å°Áö¸¸, ±×
¿Ü¿¡µµ ÀÌ¹Ì ¾ð±ÞÇÑ ´ÜÀÏ Ä¨ ¸¶ÀÌÅ©·ÎÄÄÇ»ÅÍ µîÀÌ ÀÖ´Ù.
¹ü¿ë ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼
´ÜÀÏ Ä¨ ¸¶ÀÌÅ©·ÎÄÄÇ»ÅÍ
Bit SliceÇü ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼
Slice(½½¶óÀ̽º)¶õ ¾ã°Ô ½ã Á¶°¢À» ¶æÇÏ´Â ¿µ¾î·Î, Bit SliceÇü ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼¶õ
2ºñÆ® ȤÀº 4ºñÆ® Å©±âÀÇ ±âº» ´ÜÀ§Ã¼·Î ±¸¼ºµÇ¾î ÀÖ´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)À̸ç,
±×°ÍµéÀ» ¿©·¯ °³ º´·Ä·Î Á¶ÇÕÇϸé ÀÓÀÇÀÇ µ¥ÀÌÅÍ ±æÀ̸¦ ó¸®ÇÒ ¼ö ÀÖ´Â CPU°¡ ¸¸µé¾îÁø´Ù.
±ØÈ÷ ÇÑÁ¤µÈ ºÐ¾ß¿¡¼¸¸ »ç¿ëµÈ´Ù.
3. ¹ÝµµÃ¼ Á¦Á¶±â¼ú¿¡ µû¸¥ MPUÀÇ Á¾·ù
¹ÝµµÃ¼ Á¦Á¶±â¼úÀÇ ¹ßÀü¿¡ µû¶ó ¿©·¯ Á¾·ùÀÇ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)°¡ ³ªÅ¸³ª°Ô
µÇ¾ú´Âµ¥ ´ÙÀ½°ú °°Àº Á¾·ù°¡ ÀÖ´Ù.
PMOSÇü
NMOSÇü
COMSÇü
Schottky TTLÇü
HMOSÇü
CHMOS, HCMOS, XMOSÇü
´ëºÎºÐÀÇ 8ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡´Â NMOSÇüÀ» »ç¿ëÇϰí ÀÖÀ¸¸ç, 16ºñÆ®
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡´Â HMOSÇüÀÌ ÁÖ·Î »ç¿ëµÇ¾úÀ¸³ª 32ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡
¿Í¼´Â ¼Óµµ°¡ ºü¸£°í ÁýÀûµµ°¡ ³ôÀº HMOSÀÇ ÀåÁ¡°ú ¼ÒºñÀü·ÂÀÌ ³·Àº CMOSÀÇ ÀåÁ¡À»
Á¶ÇÕÇÑ °í¼º´É ¹ÝµµÃ¼°¡ »ç¿ëµÇ°í Àִµ¥ ¹ÝµµÃ¼ Á¦Á¶È¸»çº°·Î ´Ù¸¥ ¸íĪÀ» ºÙ¿©¼
CHMOS, HCMOS, XMOS µîÀÇ Ä¨ÀÌ ÀÖ´Ù.
Á¦ 2 Àý MPUÀÇ ±¸Á¶¿Í µ¿ÀÛ
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ±¸Á¶¿Í µ¿ÀÛÀ» ÀÌÇØÇØ µÑ Çʿ䰡 ÀÖ´Ù.
1. MPUÀÇ ³»ºÎ ±¸Á¶
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ±¸Á¶´Â ´Ù¾çÇϰÚÁö¸¸, ÀϹÝÀûÀÎ ±¸Á¶¸¦ »ìÆì º¸ÀÚ.
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ³»ºÎ´Â ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
¿¬»êºÎ(ALU, Arithmetic and Logic Unit)
Á¦¾îºÎ(Control Unit)
·¹Áö½ºÅͺÎ(Registers)
¿¬»êºÎ¶õ À̸§ ±×´ë·Î »ê¼ú(arithmetic)¿¬»ê ¹× ³í¸®(logic)¿¬»ê ±â´ÉÀ» ¼öÇàÇÏ´Â
ȸ·Î¸¦ °¡¸®Å²´Ù.
¿¬»êºÎÀÇ ÁÖµÈ ¿ä¼Ò´Â °¡»ê±â(adder)ÀÌÁö¸¸, ´©»ê±â(accumulator)¿Í »óÅ ·¹Áö½ºÅÍ(status
register)¸¦ ¿¬»êºÎ¿¡ Æ÷ÇÔ½Ã۱⵵ ÇÑ´Ù.
Á¦¾îºÎ¶õ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU) ³»ºÎ¿Í ¿ÜºÎÀÇ Á¦¾î±â´ÉÀ» ¼öÇàÇϴ ȸ·ÎÀÌ´Ù.
Áï ¸í·ÉÀ» ÇØµ¶Çϰí Á¦¾î½ÅÈ£¸¦ ¹ß»ýÇÏ´Â µîÀÇ ÀÏÀ» Çϴµ¥, ¸í·É ·¹Áö½ºÅÍ(IR,
instruction register)¿Í ¸í·É ÇØµ¶±â(instruction decoder) ¹× Á¦¾î½ÅÈ£ ¹ß»ýȸ·Î
µîÀ¸·Î ±¸¼ºµÈ´Ù.
·¹Áö½ºÅͺδ ¿©·¯ °³ÀÇ ·¹Áö½ºÅÍ·Î ±¸¼ºµÇ¸ç °¢ ·¹Áö½ºÅÍ´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)
³»ºÎ¿¡¼ ¸Þ¸ð¸®¿Í °°Àº ±â´ÉÀ» ¼öÇàÇϴµ¥, ÇÁ·Î±×·¡¸Ó°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ¹ü¿ë ·¹Áö½ºÅÍ
¹× ½Ã½ºÅÛ ¸®Áö½ºÅÍ¿Í ÇÁ·Î±×·¡¸Ó°¡ »ç¿ëÇÒ ¼ö ¾ø´Â ·¹Áö½ºÅͰ¡ ÀÖ´Ù.
2. ·¹Áö½ºÅÍ
¿ì¸®°¡ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ³»ºÎ ±¸Á¶¸¦ ¼¼¹ÐÇÏ°Ô ¾Ë ÇÊ¿ä´Â ¾øÁö¸¸, ¿ì¸®°¡
»ç¿ëÇÒ ¼ö ÀÖ´Â ·¹Áö½ºÅÍ¿¡´Â ¾î¶² °ÍÀÌ ÀÖÀ¸¸ç ±×°ÍµéÀÌ ¾î¶² ±â´ÉÀ» ÇÏ´ÂÁö Á¤µµ´Â
¾Ë¾Æ µÎ¾î¾ß ¾î¼Àºí¸® ÇÁ·Î±×·¡¹Ö¿¡ Ȱ¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
±×·¯¹Ç·Î, ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ³»ºÎ ±¸Á¶ Áß¿¡¼µµ ·¹Áö½ºÅÍ¿¡ ´ëÇØ ºñ±³Àû
ÀÚ¼¼ÇÑ ³»¿ëÀ» º°µµ Ç׸ñÀ¸·Î Á¤¸®ÇϰíÀÚ ÇÏ´Â °ÍÀÌ´Ù.
¿ì¸®°¡ »ç¿ëÇÒ ¼ö ÀÖ´Â ·¹Áö½ºÅÍ´Â Å©°Ô ³ª´©¾î ´ÙÀ½ÀÇ µÎ °¡Áö°¡ ÀÖ´Ù.
¹ü¿ë ·¹Áö½ºÅÍ
½Ã½ºÅÛ ·¹Áö½ºÅÍ
1) ¹ü¿ë ·¹Áö½ºÅÍ
¹ü¿ë ·¹Áö½ºÅÍ´Â ÇÁ·Î±×·¡¸Ó¿¡ ÀÇÇØ ÁÖ·Î µ¥ÀÌÅÍ º¸°ü¿ëÀ¸·Î ¾²À̱⠶§¹®¿¡ µ¥ÀÌÅÍ
·¹Áö½ºÅͶó°íµµ ºÎ¸£¸ç 8080 °è¿¿¡´Â ¿©·¯ °³ÀÇ ¹ü¿ë ·¹Áö½ºÅͰ¡ ÀÖ´Ù.
2) ½Ã½ºÅÛ ·¹Áö½ºÅÍ
½Ã½ºÅÛ ·¹Áö½ºÅÍ¿¡´Â ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
ÇÁ·Î±×·¥ Ä«¿îÅÍ(PC, Program Counter)
½ºÅà Æ÷ÀÎÅÍ(SP, Stack Pointer)
À妽º ·¹Áö½ºÅÍ(Index Register)
´©»ê±â(Accumulator)
»óÅ ·¹Áö½ºÅÍ(Status Register)
½Ã½ºÅÛ ·¹Áö½ºÅÍ´Â ÁÖ·Î ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)°¡ ƯÁ¤ ¿ëµµ·Î »ç¿ëÇÏ´Â °ÍÀÌÁö¸¸
ÇÁ·Î±×·¡¸Ó°¡ À̸¦ »ç¿ëÇÒ ¼öµµ ÀÖ´Ù.
ÇÁ·Î±×·¥ Ä«¿îÅÍ´Â ÇÁ·Î±×·¥ ½ÇÇà °úÁ¤¿¡¼ ´ÙÀ½¿¡ ó¸®ÇÒ ¸í·ÉÀ̳ª µ¥ÀÌÅÍÀÇ
¸Þ¸ð¸® ¹øÁö¸¦ Áö½ÃÇÏ´Â ·¹Áö½ºÅÍÀε¥, 8088/8086¿¡¼´Â IP(Index Pointer) ·¹Áö½ºÅͰ¡
ÇÁ·Î±×·¥ Ä«¿îÅÍ ¿ªÇÒÀ» ÇÑ´Ù.
½ºÅà Æ÷ÀÎÅÍ´Â ¸Þ¸ð¸® ³»¿¡ ÇöÀç ÀÖ´Â ½ºÅÃÀÇ ÃÖ»ó´Ü(stack top) ¹øÁö¸¦ Áö½ÃÇÏ´Â
·¹Áö½ºÅÍÀÌ´Ù.
À妽º ·¹Áö½ºÅÍ´Â ¸Þ¸ð¸®ÀÇ ±âÀú¹øÁö(base address)¸¦ ±â¾ïÇÏ´Â µ¥ ¾²ÀδÙ.
´©»ê±â´Â »ê¼ú ¹× ³í¸® ¿¬»êÀÇ °á°ú¸¦ ±â¾ïÇÏ´Â ·¹Áö½ºÅÍÀÌ´Ù.
»óÅ ·¹Áö½ºÅÍ´Â ¿¬»ê °á°úÀÇ »óŸ¦ Ç¥½ÃÇØ ÁØ´Ù.
¾Õ¼ ¸»ÇÑ ¹Ù¿Í °°ÀÌ ´©»ê±â¿Í »óÅ ·¹Áö½ºÅÍ´Â ¿¬»êºÎ¿¡ Æ÷ÇÔ½Ã۱⵵ ÇÑ´Ù.
3) ±âŸ ·¹Áö½ºÅÍ
±× ¿Ü¿¡ ¿ì¸®°¡ »ç¿ëÇÒ ¼ö´Â ¾ø°í ´ÜÁö ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¸¸ÀÌ Æ¯¼öÇÑ ¿ëµµ¿¡
»ç¿ëÇÏ´Â ·¹Áö½ºÅͷδ ´ÙÀ½°ú °°Àº °ÍµéÀÌ ÀÖ´Ù.
¾îµå·¹½º ¹öÆÛ(MAR, Memory Address Register)
µ¥ÀÌÅÍ ¹öÆÛ(MDR, Memory Data Register)
¸í·É ·¹Áö½ºÅÍ(Instruction Register)
Àӽà ·¹Áö½ºÅÍ(Temporary Register)
¸í·É ·¹Áö½ºÅÍ¿Í Àӽà ·¹Áö½ºÅÍ´Â Á¦¾îºÎ¿¡ Æ÷ÇÔ½Ã۱⵵ ÇÑ´Ù.
3. MPUÀÇ ¿ÜºÎ ±¸Á¶
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ¿ÜºÎ´Â ¹ö½º ¹× Àü¿ø, Ŭ·°À¸·Î ±¸¼ºµÈ´Ù.
¾îµå·¹½º ¹ö½º(Address Bus)
µ¥ÀÌÅÍ ¹ö½º(Data Bus)
Á¦¾î ¹ö½º(Control Bus)
Àü¿ø
Ŭ·°(Clock)
Ŭ·° ½ÅÈ£ÀÇ ÀԷ ȸ¼ö¿¡ µû¶ó ´ÜÀ§ ½Ã°£´ç ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)°¡ µ¿ÀÛÇÏ´Â
ȸ¼öÀΠŬ·° »çÀÌŬ(Ŭ·° Á֯ļö)ÀÌ °áÁ¤µÈ´Ù. ÀϹÝÀûÀ¸·Î Ŭ·° Á֯ļö°¡ ³ôÀ¸¸é
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ Ã³¸® ¼Óµµ°¡ »¡¶óÁø´Ù.
1) ¾îµå·¹½º ¹ö½º
¾îµå·¹½º ¹ö½º¶õ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)°¡ ¿ÜºÎÀÇ ¸Þ¸ð¸®³ª ÀÔÃâ·Â ±â±âÀÇ ¹øÁö¸¦
ÁöÁ¤ÇÒ ¶§ »ç¿ëÇÏ´Â ´Ü¹æÇâ ¹ö½º(unidirectional bus)ÀÌ´Ù.
8080 °è¿¿¡¼´Â °°Àº ¾îµå·¹½º ¹ö½º¸¦ ÅëÇÏ¿© ¸Þ¸ð¸® ¹øÁö(memory address)¿Í
ÀÔÃâ·Â ¹øÁö(I/O port)¸¦ ±¸º°ÇÏ¿© ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.
2) µ¥ÀÌÅÍ ¹ö½º
µ¥ÀÌÅ͸¦ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)·ÎºÎÅÍ ¸Þ¸ð¸® ¶Ç´Â ÀÔÃâ·Â ±â±â·Î Ãâ·ÂÇϱ⵵
ÇÏ°í ±× ¹Ý´ë ¹æÇâÀ¸·Î ¸Þ¸ð¸® ¶Ç´Â ÀÔÃâ·Â ±â±â·ÎºÎÅÍ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)·Î
ÀÔ·ÂÇϱ⵵ ÇÏ´Â ¾ç¹æÇâ ¹ö½º(bidirectional bus)ÀÌ´Ù.
3) Á¦¾î ¹ö½º
Ãâ·Â½ÅÈ£ ¹× ÀԷ½ÅÈ£ÀÇ Àü¼Û·Î·Î »ç¿ëµÇÁö¸¸ ´Ü¹æÇâ ¹ö½º(unidirectional bus)ÀÌ´Ù.
Ãâ·Â½ÅÈ£´Â ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)°¡ ÇöÀç ¼öÇà ÁßÀÎ ÀÏÀ» ¸Þ¸ð¸®³ª ÀÔÃâ·Â ±â±â¿¡°Ô
¾Ë·Á ÁÖ´Â °ÍÀ̸ç, ÀԷ½ÅÈ£´À ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡°Ô ¾î¶² µ¿ÀÛÀ» ÃëÇϵµ·Ï
Áö½ÃÇÏ´Â °ÍÀÌ´Ù.
4. MPUÀÇ µ¿ÀÛ
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ´ÜÀ§ µ¿ÀÛÀ» ¸í·É »çÀÌŬ(instruction cycle)À̶ó°í
Çϴµ¥, ¸í·É »çÀÌŬÀº µ¿ÀÛÀÇ ³»¿ë¿¡ µû¶ó ´ÙÀ½°ú °°ÀÌ 2°¡Áö·Î ³ª´¶´Ù.
ÆäÄ¡ »çÀÌŬ(fetch cycle)
½ÇÇà »çÀÌŬ(execution cycle)
ÆäÄ¡ »çÀÌŬÀº ¸Þ¸ð¸®¿¡ ÀúÀåµÇ¾î ÀÖ´Â ÇÁ·Î±×·¥ÀÇ ÇÑ ¸í·ÉÀ» CPU·Î ÀÎÃâÇØ ¿À°í
±× ¸í·ÉÀ» ÇØµ¶Çϱâ±îÁö ÀÏ·ÃÀÇ µ¿ÀÛÀ» °¡¸®Å°¸ç, ½ÇÇà »çÀÌŬÀº ÆäÄ¡ »çÀÌŬ·Î ÀÎÃâ,
ÇØµ¶ÇÑ ¸í·É¾î¸¦ ½ÇÇàÇÏ´Â µ¿ÀÛÀ» °¡¸®Å²´Ù.
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ µ¿ÀÛÀº ÆäÄ¡ »çÀÌŬ°ú ½ÇÇà »çÀÌŬÀÌ ¿¬¼ÓÇÏ¿© ±³´ë·Î
¹Ýº¹µÇ´Â °úÁ¤À¸·Î ±¸¼ºµÈ´Ù.
1) ÆäÄ¡ »çÀÌŬ
ÆäÄ¡ »çÀÌŬÀ̶õ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)°¡ ¼öÇàÇÒ ¸í·ÉÀ» ¸Þ¸ð¸®·ÎºÎÅÍ ÀÎÃâÇÏ¿©
¸í·É ·¹Áö½ºÅÍ·Î ÀúÀåÇÏ°í ¶Ç ±× ¸í·ÉÀ» ¸í·É ÇØµ¶±â¿¡¼ ÇØµ¶Çϱâ±îÁöÀÇ °úÁ¤À»
°¡¸®Å²´Ù.
ÆäÄ¡ »çÀÌŬÀÇ ±¸Ã¼ÀûÀÎ °úÁ¤À» ³ª´©¾î º¸¸é ´ÙÀ½°ú °°´Ù.
1. ÇÁ·Î±×·¥ Ä«¿îÅÍ(IP ·¹Áö½ºÅÍ)ÀÇ ³»¿ëÀÌ ¾îµå·¹½º ¹öÆÛ¸¦ °ÅÃÄ ¾îµå·¹½º ¹ö½º·Î
Ãâ·ÂµÇ¾î ÀÎÃâÇÒ ¸í·ÉÀÌ À§Ä¡ÇÏ´Â ¹øÁö¸¦ ÁöÁ¤ÇÔ
2. ÇÁ·Î±×·¥ Ä«¿îÅͰ¡ 1¸¸Å Áõ°¡
3. ÁöÁ¤µÈ ¹øÁöÀÇ ¸í·É(OP code)ÀÌ µ¥ÀÌÅÍ ¹ö½º ¹× µ¥ÀÌÅÍ ¹öÆÛ(MDR)¸¦ °ÅÃÄ ¸í·É
·¹Áö½ºÅÍ·Î Àü¼ÛµÊ
4. ¸í·É ÇØµ¶±â¿¡¼ ¸í·É(OP code)ÀÌ ÇØµ¶µÊ
2) ½ÇÇà »çÀÌŬ
¸í·ÉÀÌ ÇØµ¶µÈ ÈÄ, ±× ¸í·ÉÀÇ ³»¿ë¿¡ ÇØ´çµÇ´Â ŸÀÌ¹Ö ¹× Á¦¾î½ÅÈ£°¡ ¼øÂ÷ÀûÀ¸·Î
¹ß»ýÇÏ¿© ¸í·ÉÀÌ ½ÇÇàµÇ´Â ´Ü°èÀÌ´Ù. ¿ÀÆÛ·£µå(operand)°¡ ÀÖ´Â ¸í·ÉÀÇ °æ¿ì¿¡´Â
¸ÕÀú ±× ¿ÀÆÛ·£µå¸¦ ¸Þ¸ð¸®·ÎºÎÅÍ ÀÎÃâÇÑ ÈÄ¿¡ ÃÖÁ¾ ½ÇÇàµÈ´Ù.
## ¹ßÀü Âü°í
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿Í ¸Þ¸ð¸® »çÀÌÀÇ 1:1 ´ëÀÀ °ü°è·Î À̾îÁö´Â ÀüÅëÀûÀÎ ¼øÂ÷
½ÇÇàÀº ¸Þ¸ð¸®ÀÇ ¼Óµµ°¡ ´À¸° °ü°è·Î ºñÈ¿À²ÀûÀ̱⠶§¹®¿¡ ij½Ã ¸Þ¸ð¸®¸¦ ³»ÀåÇϰųª
ÆÄÀÌÇÁ ¶óÀÎ ±¸Á¶¸¦ äÅÃÇÑ °í¼º´É CPU¸¦ ¸¸µé¾î »ç¿ëÇϰí ÀÖ´Ù.
Á¦ 3 Àý 8088ÀÇ ³»ºÎ
¾Õ Àý¿¡¼ ÀϹÝÀûÀÎ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ¿ÜºÎ ±¸Á¶¿Í ³»ºÎ ±¸Á¶¿¡ ´ëÇÏ¿©
Á¤¸®ÇØ º¸¾Ò´Âµ¥, ³»ºÎ´Â ¿¬»êºÎ¿Í Á¦¾îºÎ ¹× ·¹Áö½ºÅͺηΠ±¸¼ºµÇ¾ú´Ù.
±×¿Í ´Ù¸¥ °¢µµ¿¡¼ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ³»ºÎ¸¦ ³ª´©¾î º¼ ¼öµµ ÀÖ´Ù.
½ÇÇàºÎ(EU, Execution Unit)
¹ö½º ÀÎÅÍÆäÀ̽ººÎ(BIU, Bus Interface Unit)
8088 ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ³»ºÎ¸¦ ½ÇÇàºÎ¿Í ¹ö½º ÀÎÅÍÆäÀ̽ººÎ·Î ³ª´©¾î »ìÆì
º¸´Â °ÍÀº ¿ì¸®¿¡°Ô »ó´çÇÑ µµ¿òÀÌ µÉ °ÍÀ¸·Î »ý°¢ÇÑ´Ù.
1. 8086ÀÇ ±¸Á¶
ÀÎÅÚ 8088/8086ÀÇ ³»ºÎ¸¦ º¸±â Àü¿¡ ¸ÕÀú ¿ÜºÎ¿Í ¿¬°áµÈ Àüü ±¸Á¶¸¦ º¸ÀÚ.
ÀÎÅÚ 8086À» »ç¿ëÇÏ´Â ÄÄÇ»ÅÍÀÇ ±âº» ±¸Á¶´Â ´ÙÀ½ ±×¸²°ú °°ÀÌ ±×¸± ¼ö ÀÖ´Ù.
+------+ ÁÖ¼Ò¼±
(address bus)
| +--20-+----------------+-------------------
| 8086 | | ÀÚ·á¼±
(data bus)
| | -16-+----------------+-------------------
| CPU | | ¢Ó Á¦¾î¼±
| ¢Ó(control bus)
| +-----+--+--+--+-------+--+--+--+----------
+------+ 20 16 | |¸Þ¸ð¸® 16 16 | |ÀÔÃâ·ÂÀåÄ¡
|
| | | | | |
|
¡é
¡é ¡é ¡é¼±ÅÃ
¡é ¡é ¡é ¡é¼±ÅÃ
+------------+
+------------+
| ¸Þ
¸ð ¸® | | ÀÔÃâ·ÂÀåÄ¡ |
+------------+
+------------+
ÀÎÅÚ 8086¿¡¼ µ¥ÀÌÅÍ ÀÔÃâ·Â ¹ö½º¿Í ¸Þ¸ð¸® ¹ö½º´Â ³í¸®ÀûÀ¸·Î´Â º°°³ÀÇ °ÍÀÌÁö¸¸
½ÇÁ¦·Î´Â °°Àº ÇÉÀ» °øÀ¯Çϸç, 󸮱â´Â Á¦¾î ¹ö½º·Î Á¦¾î ½ÅÈ£¸¦ º¸³»¾î ÇöÀç ÇÉ¿¡
µµ´ÞÇÑ ÀÚ·á°¡ ÀÔÃâ·Â Á¢¼Ó±â·Î ³ª°¥ °ÍÀÎÁö ¸Þ¸ð¸® ÀåÄ¡·Î ³ª°¥ °ÍÀÎÁö¸¦ ¾Ë·Á ÁØ´Ù.
## Ȱ¿ë ÆÁ
¾Õ Àý¿¡¼ µ¥ÀÌÅÍ ÀÔÃâ·Â ¹ö½º´Â ¾ç¹æÇâ ¹ö½º(bidirectional bus)ÀÎ ¹Ý¸é ¸Þ¸ð¸®
¹ö½º¿Í ÄÜÆ®·Ñ ¹ö½º´Â ´Ü¹æÇâ ¹ö½º(unidirectional bus)¶ó°í ¸»Çߴµ¥, ¾ÕÀÇ ±×¸²¿¡¼
ÀÚ·á¼±ÀÇ ¾çÂÊ ³¡¿¡ È»ìÇ¥°¡ ÀÖ´Â ¹Ý¸é ÁÖ¼Ò¼±°ú Á¦¾î¼±¿¡´Â ÇÑ ÂÊ ³¡¿¡¸¸ È»ìÇ¥°¡
ÀÖ´Â °ÍÀÌ ±× Ç¥½ÃÀÌ´Ù.
±×¸²¿¡¼ º¸´Â ¹Ù¿Í °°ÀÌ 8086ÀÇ ÁÖ¼Ò ¹ö½º´Â 20ºñÆ® Å©±âÀÌ´Ù. ±×·¯¹Ç·Î 8086À¸·Î
1MB±îÁöÀÇ ¸Þ¸ð¸® ÁÖ¼Ò¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
## ¹ßÀü Âü°í
8086ÀÇ ´ëºÎºÐÀÇ ¸í·ÉÀº 16ºñÆ®ÀÇ ÁÖ¼Ò¸¦ Ãë±ÞÇÑ´Ù. ±×¸®°í ¸Þ¸ð¸® »ç»óÀåÄ¡°¡
16ºñÆ®ÀÇ ÁÖ¼Ò¸¦ 20ºñÆ®ÀÇ ÁÖ¼Ò·Î ¹ø¿ªÇÑ´Ù. »ç»óÀåÄ¡(¾îµå·¹½º °¡»ê±â)¿¡ °üÇØ¼´Â
Á¶±Ý ÀÖ´Ù°¡ ¼³¸íÇÏ°Ô µÉ °ÍÀÌ´Ù.
8086¿¡¼ÀÇ ÀÔÃâ·Â ¿¬»êÀº 16ºñÆ®ÀÇ ÁÖ¼Ò¸¦ »ç¿ëÇÑ´Ù. µû¶ó¼ CPU´Â 64KB±îÁöÀÇ
ÀÔÃâ·Â Áß°³ ·¹Áö½ºÅÍ(Æ÷Æ®)¸¦ ¿¢¼¼½ºÇÒ ¼ö ÀÖ´Ù.
2. ½ÇÇàºÎ(EU)
8088°ú 8086ÀÇ ½ÇÇàºÎ´Â µ¿ÀÏÇÑ ±¸Á¶À̸ç, ´ÙÀ½°ú °°ÀÌ ±¸¼ºµÇ¾î ÀÖ´Ù.
¹ü¿ë ·¹Áö½ºÅÍ 8°³ : AX, BX, CX,
DX, SP, BP, SI, DI
Ç÷¡±× ·¹Áö½ºÅÍ : F
¿¬»êºÎ(ALU, Arithmetic and Logic Unit)
¸í·É ÇØµ¶ ¹× Á¦¾î ȸ·Î
½ÇÇàºÎÀÇ ÁÖµÈ ±â´ÉÀº ¹ö½º ÀÎÅÍÆäÀ̽ººÎÀÇ ¸í·É ¹öÆÛ(instruction queue)·ÎºÎÅÍ
¸í·ÉÀ» ²¨³»¾î ÇØµ¶ÇÏ°í ±× ÇØµ¶µÈ ³»¿ë´ë·Î ½ÇÇàÇÏ´Â °ÍÀÌ´Ù.
¸¸¾à ½ÇÇàºÎ¿¡¼ ÇØµ¶ÇÑ ¸í·ÉÀ» ½ÇÇàÇÏ´Â °úÁ¤¿¡ ¿ÜºÎ ¸Þ¸ð¸®³ª I/O¸¦ ¿¢¼¼½ºÇÒ
Çʿ䰡 »ý±â´õ¶óµµ Á÷Á¢ ¿¢¼¼½ºÇÏÁö´Â ¸øÇϸç, ¹Ýµå½Ã ¹ö½º ÀÎÅÍÆäÀ̽ººÎ¿¡ ¿ä±¸ÇÏ¿©
¹ö½º ÀÎÅÍÆäÀ̽ººÎ¸¦ °ÅÃÄ °£Á¢ÀûÀ¸·Î¸¸ ¾×¼¼½ºÇÒ ¼ö ÀÖ´Ù.
½ÇÇàºÎ°¡ ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹øÁö(¾îµå·¹½º)´Â ¿ÀÁ÷ 16ºñÆ® ¾îµå·¹½ºÀÎ ¿ÀÇÁ¼Â(offset)ÀÏ
»ÓÀ̸ç, ½ÇÇàºÎ¿¡¼ ¿ÀÇÁ¼Â ¹øÁö°¡ ¹ö½º ÀÎÅÍÆäÀ̽ººÎ·Î Àü´ÞµÇ¸é ¹ö½º ÀÎÅÍÆäÀ̽ººÎ¿¡¼´Â
±× ¹øÁö¿Í ¼¼±×¸ÕÆ® ·¹Áö½ºÅ͸¦ ÂüÁ¶(¼¼±×¸àÆÃ)ÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇÑ´Ù.
±× »ç½ÇÀº ¼¼±×¸ÕÆ® ·¹Áö½ºÅͰ¡ ½ÇÇàºÎ¿¡ ¼ÓÇÏÁö ¾Ê°í ¹ö½º ÀÎÅÍÆäÀ̽ººÎ¿¡ ¼ÓÇÏ´Â
µ¥¼ ½±°Ô ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
3. ¹ö½º ÀÎÅÍÆäÀ̽ººÎ(BIU)
¹ö½º ÀÎÅÍÆäÀ̽ººÎ´Â ´Ù½Ã CPU ³»ºÎ¿Í ¿ÜºÎ·Î ³ª´©¾î º¼ ¼ö ÀÖ´Ù.
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU) ³»ºÎ¿¡ ÇØ´çµÇ´Â ¹ö½º ÀÎÅÍÆäÀ̽ººÎ´Â ´ÙÀ½°ú °°´Ù.
¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ : CS, DS, SS,
ES
¸í·É Æ÷ÀÎÅÍ(IP, Instruction Pointer)
¸í·É ´ë±â ¹öÆÛ(Instruction Queue)
¾îµå·¹½º °¡»ê±â
¸í·É ´ë±â ¹öÆÛ¿¡ ´ëÇÏ¿© ¾Ë¾Æ º¸ÀÚ. ¹ö½º ÀÎÅÍÆäÀ̽ººÎ°¡ ¸Þ¸ð¸®ÀÇ ¸í·ÉÀ» ÀÎÃâÇÏ¿©
¸í·É ¹öÆÛ(Instruction Queue)¿¡ ´ë±â½ÃÄÑ µÎ¸é ½ÇÇàºÎ´Â ´ë±â ÁßÀÎ ¸í·ÉÀ» Â÷·Ê´ë·Î
Çϳª¾¿ ²¨³»¾î ÇØµ¶ÇÏ°í ½ÇÇàÇÏ°Ô µÇ¸ç, ±× »çÀÌ¿¡ ¹öÆÛ¿¡ ºó ÀÚ¸®(¹ÙÀÌÆ® ¶Ç´Â ¿öµå)°¡
»ý±â¸é ¹ö½º ÀÎÅÍÆäÀ̽ººÎ´Â ´Ù½Ã ±× ´ÙÀ½ ¸í·ÉÀ» ¸Þ¸ð¸®·ÎºÎÅÍ ÀÎÃâÇØ¼ ¸í·É ¹öÆÛ¿¡
ÀúÀåÇÏ¿© ´ë±â½ÃŲ´Ù. ÀÌ¿Í °°ÀÌ ½ÇÇàºÎ¿Í ¹ö½º ÀÎÅÍÆäÀ̽ººÎ°¡ º´·ÄÀûÀ¸·Î ¸í·ÉÀÇ
ÀÎÃâ ¹× ½ÇÇàÀ» ºñµ¿±â ¼öÇàÇÏ´Â ¹æ¹ýÀ¸·Î Á¾·¡ÀÇ 8ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)¿¡
ºñÇÏ¿© ó¸® ¼Óµµ¸¦ Çâ»ó½Ã۰í ÀÖ´Ù.
## ¹ßÀü Âü°í
¸¸¾à ºÐ±â(jump), È£Ãâ(call), ºÏ±Í(return) µî°ú °°ÀÌ CPUÀÇ Á¦¾î¸¦ À̵¿½ÃŰ´Â
¸í·ÉÀÌ ½ÇÇàµÇ¸é ¸í·É ¹öÆÛ¿¡ ´ë±â ÁßÀÌ´ø ³ª¸ÓÁö ¸í·ÉµéÀº ¾Æ¹« ¾µ¸ð°¡ ¾øÀ» »Ó´õ·¯
¿ÀÈ÷·Á Àå¾Ö°¡ µÉ °ÍÀÌ´Ù. µû¶ó¼ CPUÀÇ Á¦¾î¸¦ À̵¿½ÃŰ´Â ±×·± ¸í·ÉÀÌ ½ÇÇàµÇ¸é,
¹ö½º ÀÎÅÍÆäÀ̽ººÎ´Â Áï½Ã ¸í·É ´ë±â ¹öÆÛ(Instruction Queue)¸¦ ¸®¼ÂÇÏ¿© ºñ¿ì°í
Á¦¾î°¡ À̵¿µÈ À§Ä¡·ÎºÎÅÍ ¿ä±¸µÇ´Â »õ·Î¿î ¸í·ÉµéÀ» ÀÎÃâÇÏ¿© ¹öÆÛ¿¡ ´ë±â½ÃŲ´Ù.
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ¿ÜºÎ¿¡ ÇØ´çµÇ´Â ¹ö½º ÀÎÅÍÆäÀ̽ººÎ´Â ´ÙÀ½°ú °°´Ù.
¾îµå·¹½º ¹ö½º
µ¥ÀÌÅÍ ¹ö½º
Á¦¾î ¹ö½º
¹ö½º ÀÎÅÍÆäÀ̽ººÎÀÇ ÁÖµÈ ÀÓ¹«´Â ¸í·É Äڵ带 ¸Þ¸ð¸®·ÎºÎÅÍ ÀÎÃâÇÏ¿© ¸í·É ¹öÆÛ(Instruction
Queue)¿¡ ÀúÀåÇØ µÎ´Â ÀÏÀÌ´Ù. ±× ¿Ü¿¡ ½ÇÇàºÎ°¡ ¸í·ÉÀ» ½ÇÇàÇÏ´Ù°¡ ÇÊ¿äÇÏ¿© ¿ÜºÎ
¹ö½º¿¡ ´ëÇÑ ¾×¼¼½º¸¦ ¿ä±¸ÇÏ´Â °æ¿ì¿¡ ±×¿¡ ÀÀÇÏ´Â °Íµµ ¹ö½º ÀÎÅÍÆäÀ̽ººÎÀÇ Áß¿äÇÑ
ÀÏ Áß ÇϳªÀÌ´Ù.
¹ö½º ÀÎÅÍÆäÀ̽ººÎ°¡ ¿ÜºÎ ¸Þ¸ð¸®¸¦ ¾×¼¼½ºÇÒ ¶§´Â, ½ÇÇàºÎ·ÎºÎÅÍ Àü´Þ¹ÞÀº ¿ÀÇÁ¼Â
¹øÁö¿¡ ¹ö½º ÀÎÅÍÆäÀ̽ººÎ ÀÚü ³»ÀÇ ÇØ´ç ¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ °ªÀ» ½ÃÇÁÆ®ÇÑ °ªÀ»
ÇÕÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇÏ°í ¾×¼¼½ºÇÑ´Ù.
## ¹ßÀü Âü°í
½ÇÇàºÎ¿Í ´Þ¸® ¹ö½º ÀÎÅÍÆäÀ̽ººÎ´Â 8088°ú 8086ÀÌ ´Ù¸¥ Á¡ÀÌ ÀÖ´Ù. ±× Çϳª´Â
¸í·É ¹öÆÛÀÇ Å©±â·Î¼, 8088ÀÇ ¸í·É ¹öÆÛ´Â 4¹ÙÀÌÆ®ÀÌÁö¸¸ 8086ÀÇ ±×°ÍÀº 6¹ÙÀÌÆ®
Å©±âÀÌ´Ù. µÑ°·Î 8088Àº ¸Þ¸ð¸® µ¥ÀÌÅ͸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î ¾×¼¼½ºÇÏ´Â ¹Ý¸é, 8086Àº
±×°ÍÀ» ¿öµå(2¹ÙÀÌÆ®, 16ºñÆ®) ´ÜÀ§·Î ¾×¼¼½ºÇÑ´Ù. µû¶ó¼ 8088Àº ½ÇÇàºÎ·ÎºÎÅÍ Ãß°¡
Àü´ÞµÈ ¹ö½º ¾×¼¼½º ¿ä±¸°¡ ¾ø´Â ÇÑ ¸í·É Å¥(¸í·É ¹öÆÛ)°¡ 1¹ÙÀÌÆ®¸¸ ºñ¾î À־
Áï½Ã ´ÙÀ½ ¸í·ÉÀ» prefetchÇÏ¿© ¹öÆÛ¸¦ ä¿ìÁö¸¸, 8086Àº ¸í·É ¹öÆÛ°¡ 2¹ÙÀÌÆ® ÀÌ»ó
ºñ¾î ÀÖ¾î¾ß¸¸ ´ÙÀ½ ¸í·ÉÀ» prefetchÇÑ´Ù.
4. ·¹Áö½ºÅÍ
Áö±Ý±îÁö ·¹Áö½ºÅÍ´Â ´Ù °°Àº °ÍÀ¸·Î »ý°¢Çß´ø »ç¶÷À̶óµµ, ¾î¶² ·¹Áö½ºÅÍ´Â ½ÇÇàºÎ¿¡
¼ÓÇÏ°í ´Ù¸¥ ·¹Áö½ºÅÍ´Â ¹ö½º ÀÎÅÍÆäÀ̽ººÎ¿¡ ¼ÓÇÑ´Ù´Â »ç½ÇÀ» ¾È °Í¸¸À¸·Î 8088ÀÇ
¼¼±×¸àÆÃ¿¡ ´ëÇÏ¿© ÇÑÃþ ±íÀº ÀÌÇØ¸¦ ÇÏ°Ô µÇ¾úÀ» °ÍÀÌ´Ù.
ÀÌÁ¦ ½ÇÇàºÎ¿Í ¹ö½º ÀÎÅÍÆäÀ̽ººÎ¸¦ ¸Á¶óÇÏ¿© ·¹Áö½ºÅÍ Àü¹ÝÀ» Á¤¸®ÇØ º¸ÀÚ.
8088¿Í 8086¿¡´Â ²À °°ÀÌ 16ºñÆ® ·¹Áö½ºÅÍ 14°³°¡ µé¾î ÀÖ´Ù.
8088ÀÇ 14°³ ·¹Áö½ºÅÍ´Â ´ÙÀ½°ú °°Àº 4Á¾·ù·Î ±¸ºÐµÈ´Ù.
¹ü¿ë ·¹Áö½ºÅÍ(General Register) : AX, BX, CX, DX, SP, BP, SI, DI
¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ(Segment Register) : CS, DS, SS, ES
¸í·É Æ÷ÀÎÅÍ(IP, Instruction Pointer)
Ç÷¡±× ·¹Áö½ºÅÍ(Flags)
## Ȱ¿ë ÆÁ
8°³ÀÇ ¹ü¿ë ·¹Áö½ºÅÍ¿Í 1°³ÀÇ Ç÷¡±× ·¹Áö½ºÅÍ µî 9°³ÀÇ ·¹Áö½ºÅÍ´Â ½ÇÇàºÎ¿¡
¼ÓÇØ ÀÖÀ¸¸ç, 4°³ÀÇ ¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ¿Í 1°³ÀÇ ¸í·É Æ÷ÀÎÅÍ µî 5°³ÀÇ ·¹Áö½ºÅÍ´Â
¹ö½º ÀÎÅÍÆäÀ̽ººÎ¿¡ ¼ÓÇØ ÀÖ´Ù.
¹ü¿ë ·¹Áö½ºÅÍ´Â ´Ù½Ã 2Á¾·ù·Î ±¸ºÐµÈ´Ù.
µ¥ÀÌÅÍ ±×·ì(Data Group) :
AX, BX, CX, DX
Æ÷ÀÎÅÍ ¹× À妽º ±×·ì(Pointer and Index Group) : SP, BP, SI, DI
¸ðµç ·¹Áö½ºÅÍ´Â 16ºñÆ® Å©±âÀÌÁö¸¸, ¹ü¿ë ·¹Áö½ºÅÍ Áß¿¡¼ µ¥ÀÌÅÍ ±×·ì¿¡ ¼ÓÇÏ´Â
4°³ÀÇ ·¹Áö½ºÅÍ AX, BX, CX, DX´Â »óÀ§ 8ºñÆ®¿Í ÇÏÀ§ 8ºñÆ®·Î ³ª´µ¾î ±× °¢°¢ÀÌ 8ºñÆ®
·¹Áö½ºÅÍ·Î »ç¿ëµÉ ¼öµµ ÀÖ´Â ±¸Á¶¸¦ °¡Áö°í ÀÖ´Ù.
1) ¹ü¿ë ·¹Áö½ºÅÍ - µ¥ÀÌÅÍ ±×·ì
8088ÀÇ ½ÇÇàºÎ¸¦ ±¸¼ºÇÏ´Â 9°³ ·¹Áö½ºÅÍ Áß 4°³ÀÌ´Ù.
¹ü¿ë ·¹Áö½ºÅÍÀÇ µ¥ÀÌÅÍ ±×·ì¿¡ ¼ÓÇÑ ·¹Áö½ºÅ͵éÀº 4°³ÀÇ 16ºñÆ® ·¹Áö½ºÅÍ·Î »ç¿ëµÉ
¼öµµ ÀÖ°í, 8°³ÀÇ 8ºñÆ® ·¹Áö½ºÅÍ·Î »ç¿ëµÉ ¼öµµ ÀÖ´Ù.
15 ......... 8 7 ......... 0 (ºñÆ®)
+-------------+-------------+
| AH
| AL| Accumulator [AX]
+-------------+-------------+
| BH
| BL| Base
Register [BX]
+-------------+-------------+
| CH
| CL| Count
Register[CX]
+-------------+-------------+
| DH
| DL| Data
Register [DX]
+-------------+-------------+
µ¥ÀÌÅÍ ±×·ì ¹ü¿ë ·¹Áö½ºÅ͵éÀº 8ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ¾îÅ¥¹Ä·¹ÀÌÅÍó·³
´ëºÎºÐÀÇ »ê¼ú ¿¬»ê ¹× ³í¸® ¿¬»ê¿¡ »ç¿ëµÉ ¼ö ÀÖÁö¸¸, ³ª¸§´ë·Î µ¶Æ¯ÇÑ ¿ëµµ¿¡ »ç¿ëµÇ´Â
¼ö°¡ ¸¹´Ù.
AX(Accumulator)
ÁÖ·Î °¢Á¾ »ê¼ú ¿¬»ê ¹× ³í¸® ¿¬»ê¿¡ »ç¿ëµÈ´Ù.
BX(Base Register)
»ê¼ú/³í¸® ¿¬»ê ¹× ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤¿¡ »ç¿ëµÈ´Ù.
CX(Count Register)
»ê¼ú/³í¸® ¿¬»ê ¿Ü¿¡µµ, ·çÇÁ ¸í·É(loop)À̶ó repeat prefix ½ºÆ®¸µ ¸í·É(rep)¿¡¼
·çÇÁ Ä«¿îÅÍ(loop counter)·Î´Â CX ·¹Áö½ºÅͰ¡ ÁÖ·Î »ç¿ëµÇ°í, ½ÃÇÁÆ®(shift) ¹×
·ÎÅ×ÀÌÆ®(rotate) ¸í·É¿¡¼ ºñÆ® Ä«¿îÅÍ(bit counter)·Î´Â CL ·¹Áö½ºÅͰ¡ ¸¹ÀÌ »ç¿ëµÈ´Ù.
DX(Data Register)
»ê¼ú/³í¸® ¿¬»ê ƯÈ÷ °ö¼À ¹× ³ª´°¼À¿¡¼ ¸¹ÀÌ »ç¿ëµÇ¸ç, ÀÔÃâ·Â ¸í·É¿¡¼ I/O
portÀÇ °£Á¢ÁöÁ¤¿¡µµ »ç¿ëµÈ´Ù.
2) ¹ü¿ë ·¹Áö½ºÅÍ - Æ÷ÀÎÅÍ ¹× À妽º ±×·ì
8088ÀÇ ½ÇÇàºÎ¸¦ ±¸¼ºÇÏ´Â 9°³ ·¹Áö½ºÅÍ Áß 4°³ÀÌ´Ù.
¹ü¿ë ·¹Áö½ºÅÍÀÇ Æ÷ÀÎÅÍ ¹× À妽º ±×·ì¿¡´Â 2°³ÀÇ Æ÷ÀÎÅÍ ·¹Áö½ºÅÍ¿Í 2°³ÀÇ À妽º
·¹Áö½ºÅͰ¡ ¼ÓÇØ ÀÖ´Ù.
Æ÷ÀÎÅÍ ·¹Áö½ºÅÍ : SP, BP
À妽º ·¹Áö½ºÅÍ : SI, DI
Ç×»ó 16ºñÆ® ·¹Áö½ºÅͷθ¸ »ç¿ëµÇ¸ç, ÁÖµÈ ÀÓ¹«´Â ¸Þ¸ð¸® ¾îµå·¹½º ÁöÁ¤ÀÌ´Ù.
±×·¯³ª »ê¼ú ¿¬»ê ¹× ³í¸® ¿¬»ê¿¡µµ »ç¿ëµÉ ¼ö ÀÖ´Ù.
SP(Stack Pointer)
¸Þ¸ð¸® »ó¿¡¼ ½ºÅÃÀÇ »ó´ÜÀ» Áö½ÃÇϸç, ÇØ´ç À§Ä¡¸¦ ÁöÁ¤Çϱâ À§Çؼ´Â SS(Stack
Segment)¸¦ ÂüÁ¶ÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇÑ´Ù.
push, pop, call, ret ¸í·ÉÀ¸·Î ½ºÅÃÀ» Á¶ÀÛÇϸé SPÀÇ °ªÀÌ ÀÚµ¿ÀûÀ¸·Î Áõ°¡ ¶Ç´Â
°¨¼ÒÇÏ°Ô µÇ¾î ÀÖ´Ù.
BP(Base Pointer)
¿ª½Ã SS¸¦ ÂüÁ¶ÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇϸç, ÁÖ·Î ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤¿¡
»ç¿ëµÈ´Ù.
SI(Source Index)
DS(Data Segment)¸¦ ÂüÁ¶ÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇϸç, ÁÖ·Î ¸Þ¸ð¸®
°£Á¢¹øÁöÁöÁ¤¿¡ »ç¿ëµÇÁö¸¸, ½ºÆ®¸µ ¸í·É¿¡¼ ¼Ò½º ¿ÀÆÛ·£µå(source operand) ÁöÁ¤¿¡µµ
ÀÌ¿ëµÈ´Ù.
DI(Destination Index)
¹°¸® ¹øÁö »êÃâ¿¡ °æ¿ì¿¡ µû¶ó 2°³ÀÇ ¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ °ª Áß Çϳª¸¦ »ç¿ëÇÑ´Ù.
Áï ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤¿¡ »ç¿ëµÇ´Â °æ¿ì¿¡´Â DS¸¦ ÂüÁ¶ÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦
»êÃâÇÏÁö¸¸, ½ºÆ®¸µ ¸í·É¿¡¼ ¸ñÀû ¿ÀÆÛ·£µå(destination operand) ÁöÀú¿¡ »ç¿ëµÉ
¶§¿¡´Â ES(Extra Segment)¸¦ ÂüÁ¶ÇÏ¿© 20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇÑ´Ù.
3) ¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ
8088ÀÇ ¹ö½º ÀÎÅÍÆäÀ̽ººÎ¸¦ ±¸¼ºÇÏ´Â 5°³ ·¹Áö½ºÅÍ Áß 4°³ÀÌ´Ù.
8088°ú °°Àº 16ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)´Â ±¸Á¶»ó 216=65536(¹ÙÀÌÆ®) Áï 64KBÀÇ
¾îµå·¹½º ¹Û¿¡´Â °ü¸®ÇÒ ¼ö ¾ø´Ù´Â ÇѰ谡 Àֱ⠶§¹®¿¡, ±× ÇѰ踦 ±Øº¹Çϰí 1MBÀÇ
¸Þ¸ð¸®¸¦ °ü¸®Çϱâ À§ÇÏ¿© ¼¼±×¸ÕÆ®°¡ ÇÊ¿äÇÏ°Ô µÈ °ÍÀÌ´Ù.
Áï 1MBÀÇ ¸Þ¸ð¸®¸¦ 64KB ´ÜÀ§ÀÇ ¼¼±×¸ÕÆ®·Î ºÐÇÒÇϸé 16°³ÀÇ ¼¼±×¸ÕÆ®°¡ µÈ´Ù.
±×·± ½ÄÀ¸·Î °¢ ¼¼±×¸ÕÆ®¸¦ °ü¸®ÇÏ¸é ¾î·µç 1MBÀÇ ¸Þ¸ð¸®¸¦ °ü¸®ÇÒ ¼ö ÀÖ´Ù.
¼¼±×¸ÕÆ® ´ÜÀ§ÀÇ ¸Þ¸ð¸® °ü¸®¿¡ ÀÖ¾î¼ °¢ ¼¼±×¸ÕÆ®ÀÇ ±âÀú¹øÁö(base address)¸¦
Ç¥½ÃÇϱâ À§ÇØ »ç¿ëµÇ´Â ·¹Áö½ºÅ͸¦ ¼¼±×¸ÕÆ® ·¹Áö½ºÅͶó°í ÇÑ´Ù.
8088¿¡´Â 4°³ÀÇ ¼¼±×¸ÕÆ® ·¹Áö½ºÅͰ¡ ÀÖ´Ù.
CS(Code Segment): ¸í·É ÄÚµå
¿µ¿ª °ü¸®
DS(Data Segment): µ¥ÀÌÅÍ
¿µ¿ª °ü¸®
SS(Stack Segment) : ½ºÅà ¿µ¿ª °ü¸®
ES(Extra Segment) : º¸Á¶ ¿µ¿ª °ü¸®
20ºñÆ®ÀÇ ¹°¸® ¾îµå·¹½º¸¦ »êÃâÇϱâ À§Çؼ´Â ¹ö½º ÀÎÅÍÆäÀ̽ººÎÀÇ ¾îµå·¹½º °¡»ê±â°¡
½ÇÇàºÎ·ÎºÎÅÍ ¹ÞÀº ¿ÀÇÁ¼Â ¹øÁö¿¡ ÇØ´ç ¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ °ªÀÇ ¿ÞÂÊÀ¸·Î 4ºñÆ® ½ÃÇÁÆ®µÈ
°ªÀ» º¸Å´ ¹æ¹ýÀ» »ç¿ëÇÑ´Ù.
¹°¸® ¹øÁö¸¦ »êÃâÇÒ ¶§ º¸ÅÂÁö´Â ¼¼±×¸ÕÆ®¿Í ¿ÀÇÁ¼ÂÀÇ Á¶ÇÕÀº ´ÙÀ½°ú °°´Ù.
¿ÀÇÁ¼Â¼¼±×¸ÕÆ®ÀÛ¾÷
IPCSInstruntion
Fecth
SPSSStack
Operation
Effective Address DS(¶Ç´Â CS, ES,
SS) ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤
Effective Address SS(¶Ç´Â CS, DS,
ES) BP¸¦ »ç¿ëÇÑ ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤
SIDS(¶Ç´Â
CS, ES, SS) String Source
DIESString
Destination
ÀÌÁ¦ °¢ ¼¼±×¸ÕÆ®ÀÇ ¿ëµµ¸¦ ¾Ë¾Æ º¸ÀÚ.
CS(Code Segment)
ÇÁ·Î±×·¥ ¿µ¿ªÀÇ 64KB¸¦ ÁöÁ¤ÇÏ¿© °ü¸®Çϴµ¥, °á±¹ ±× ¹üÀ§ ¾È¿¡¼ ¿ÀÇÁ¼Â ¹øÁö°¡
º¯ÇÔ¿¡ µû¶ó ÇÁ·Î±×·¥ÀÇ °¢ ¸í·É Äڵ尡 ¼øÂ÷ ½ÇÇàµÈ´Ù. CS:IP·Î Á¶ÇÕµÈ ¹°¸® ¹øÁö°¡
´ÙÀ½¿¡ ½ÇÇàµÉ ÄÚµåÀÇ À§Ä¡¸¦ °¡¸®Å²´Ù.
DS(Data Segment)
µ¥ÀÌÅÍ ¿µ¿ªÀÇ 64KB¸¦ ÁöÁ¤ÇÏ¿© °ü¸®ÇÑ´Ù. ¸Þ¸ð¸® Á÷Á¢¹øÁöÁöÁ¤ ¹æ½Ä¿¡¼, ¶ÇÇÑ
BP ÀÌ¿ÜÀÇ ·¹Áö½ºÅ͸¦ »ç¿ëÇÏ´Â ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤ ¹æ½Ä¿¡¼ ¿ÀÇÁ¼Â ¹øÁö¿Í Á¶ÇÕµÈ
¹°¸® ¹øÁö°¡ ¸Þ¸ð¸® »ó¿¡¼ ÀÎÃâÇÒ µ¥ÀÌÅÍÀÇ À§Ä¡¸¦ °¡¸®Å²´Ù. ¶ÇÇÑ ½ºÆ®¸µ ¸í·É¿¡¼´Â
DS:SI·Î Á¶ÇÕµÈ ¹°¸® ¹øÁö°¡ ¸Þ¸ð¸® »ó¿¡¼ ÀÎÃâÇÒ ¼Ò½º ½ºÆ®¸µÀÇ À§Ä¡¸¦ °¡¸®Å°°Ô
µÈ´Ù.
SS(Stack Segment)
½ºÅà ¿µ¿ªÀÇ 64KB¸¦ ÁöÁ¤ÇÏ¿© °ü¸®ÇÑ´Ù. SS:SPÀÇ Á¶ÇÕÀ¸·Î ½ºÅà ¸Þ¸ð¸®ÀÇ ¹°¸®
¾îµå·¹½º°¡ »êÃâµÈ´Ù. ¶ÇÇÑ, BP¸¦ »ç¿ëÇÏ´Â ¸Þ¸ð¸® °£Á¢¹øÁöÁöÁ¤ ¹æ½Ä¿¡¼ ¿ÀÇÁ¼Â°ú
ÇÕ»êµÇ¾î ¹°¸® ¾îµå·¹½º°¡ »êÃâµÇ±âµµ ÇÑ´Ù.
ES(Extra Segment)
º¸Á¶ ¿µ¿ªÀÇ 64KB¸¦ ÁöÁ¤ÇÏ¿© °ü¸®ÇÑ´Ù. ½ºÆ®¸µ ¸í·É¿¡¼ ES:DIÀÇ Á¶ÇÕÀ¸·Î ¸ñÀû(destination)
ÂÊÀÇ ¹°¸® ¾îµå·¹½º°¡ »êÃâµÈ´Ù.
4) ¸í·É Æ÷ÀÎÅÍ(IP, Instruction Pointer)
8088ÀÇ ¹ö½º ÀÎÅÍÆäÀ̽º¸¦ ±¸¼ºÇÏ´Â 5°³ ·¹Áö½ºÅÍ Áß ÇϳªÀÌ´Ù.
¸í·É Æ÷ÀÎÅÍ´Â ´ÙÀ½¿¡ ½ÇÇàÇÒ ¸í·ÉÀÇ ¹øÁö¸¦ °¡¸®Å°´Â ·¹Áö½ºÅͷμ, 8ºñÆ® ÇÁ·Î¼¼¼¿¡
ÀÖ¾î¼ÀÇ ÇÁ·Î±×·¥ Ä«¿îÅÍ(PC, Program Counter)¿¡ ÇØ´çµÈ´Ù.
CS:IPÀÇ Á¶ÇÕÀ¸·Î ´ÙÀ½¿¡ ½ÇÇàÇÒ ¸í·ÉÀÇ ¹°¸® ¾îµå·¹½º°¡ °áÁ¤µÈ´Ù.
¸í·É Æ÷ÀÎÅÍ ·¹Áö½ºÅÍÀÇ °ªÀº »ç¿ëÀÚ°¡ ÀÓÀÇ·Î º¯°æ½Ãų ¼ö ¾ø´Ù.
## Ȱ¿ë ÆÁ
¿ì¸®°¡ µð¹ö±×·Î ÇÁ·Î±×·¥À» © ¶§´Â ¸í·É Æ÷ÀÎÅ͸¦ Á¶ÀÛÇÒ ¼ö ÀÖ´Ù.
5) Ç÷¡±× ·¹Áö½ºÅÍ(Flags)
8088ÀÇ ½ÇÇàºÎ¸¦ ±¸¼ºÇÏ´Â 9°³ ·¹Áö½ºÅÍ Áß ÇϳªÀÌ´Ù.
8088/8086ÀÇ Ç÷¢ ·¹Áö½ºÅÍ´Â 16ºñÆ® ·¹Áö½ºÅÍÀÌÁö¸¸, Àüü 16ºñÆ® Áß¿¡¼ ½ÇÁ¦·Î
»ç¿ëµÇ´Â °ÍÀº 9ºñÆ®ÀÌ´Ù. Ç÷¡±× ·¹Áö½ºÅÍ Àüü·Î¼ ÇϳªÀÇ Àǹ̸¦ °¡Áø´Ù±âº¸´Ù´Â
À¯È¿ÇÑ 9°³ÀÇ ºñÆ® Áß °¢ ºñÆ®°¡ Àǹ̸¦ °¡Áö°í ÀÖ´Â °ÍÀÌ´Ù.
Ç÷¡±× ·¹Áö½ºÅÍÀÇ À¯È¿ ºñÆ®µéÀº ´Ù½Ã ´ÙÀ½°ú °°ÀÌ ³ª´ ¼ö ÀÖ´Ù.
»óÅ Ç÷¡±×(status flag):
CF, PF, AF, ZF, SF, OF
Á¦¾î Ç÷¡±×(control flag) : TF,
IF, DF
±× Áß¿¡¼ »óÅ Ç÷¡±×´Â ¿¬»ê°á°ú¿¡ µû¸¥ »óÅÂÀÇ º¯È ¿©ºÎ¸¦ Ç¥½ÃÇϸç, Á¦¾î
Ç÷¡±×´Â ½Ã½ºÅÛ Á¦¾î¸¦ À§ÇÑ Á¤º¸¸¦ Ç¥½ÃÇÑ´Ù.
Ç÷¡±× ·¹Áö½ºÅÍÀÇ °¢ À¯È¿ ºñÆ®ÀÇ ¿ëµµ¸¦ ¾Ë¾Æ º¸ÀÚ.
CF(Carry Flag)
16ºñÆ® Áß ÇÏÀ§ 8ºñÆ®¿¡¸¸ Àû¿ëµÇ´Â Ç÷¡±×·Î, ¿¬»ê ÈÄ ÃÖ»óÀ§ ºñÆ®¿¡¼ÀÇ ÀÚ¸®
¿Ã¸²(carry)À̳ª ÀÚ¸® ³»¸²(borrow)À» Ç¥½ÃÇÑ´Ù. ¶ÇÇÑ shift³ª rotate ¸í·É¿¡¼ bitÀÇ
°Ë»ç¿¡µµ »ç¿ëµÈ´Ù.
STC(CF=1), CLC(CF=0), CMC(CF=CF) µîÀÇ ¸í·ÉÀ¸·Î Á¦¾îÇÒ ¼ö ÀÖ´Ù.
PF(Parity Flag)
¿¬»ê °á°ú 1ÀÎ ºñÆ®°¡ ¦¼ö°³ÀÌ¸é ÆÐ¸®Æ¼ Ç÷¡±×´Â 1ÀÌ µÇ°í, ¿¬»ê °á°ú 1ÀÎ ºñÆ®°¡
Ȧ¼ö°³ÀÌ¸é ÆÐ¸®Æ¼ Ç÷¡±×´Â 0ÀÌ µÈ´Ù. ±× ¼ºÁúÀ» »ç¿ëÇÏ¿© µ¥ÀÌÅÍ Àü¼ÛÀÇ ¿À·ù °ËÃâ¿¡µµ
ÀÌ¿ëµÈ´Ù.
AF(Auxiliary Carry Flag)
8ºñÆ®ÀÇ ÇÏÀ§ nibble(4ºñÆ®)·ÎºÎÅÍ »óÀ§ ´Ïºí·ÎÀÇ ÀÚ¸® ¿Ã¸² ¶Ç´Â »óÀ§ ´Ïºí·ÎºÎÅÍ
ÇÏÀ§ ´Ïºí·ÎÀÇ ÀÚ¸® ³»¸²À» Ç¥½ÃÇÑ´Ù. µû¶ó¼ º¸Á¶ ij¸® Ç÷¡±×(AF)´Â 16ºñÆ® Áß
ÇÏÀ§ 8ºñÆ®ÀÇ ¿¬»ê °á°ú¿¡¸¸ Àû¿ëµÇ¸ç, 10Áø ¿¬»ê °á°úÀÇ º¸Á¤¿¡µµ »ç¿ëµÈ´Ù.
ZF(Zero Flag)
¿¬»ê °á°ú°¡ 0ÀÓÀ» Ç¥½ÃÇÏ´Â Ç÷¡±×·Î¼, ¿¬»ê °á°ú°¡ 0À̸é Á¦·Î Ç÷¡±×´Â 1ÀÌ
µÇ°í ¿¬»ê °á°ú°¡ 0ÀÌ ¾Æ´Ï¸é Á¦·Î Ç÷¡±×´Â 0ÀÌ µÈ´Ù.
SF(Sign Flag)
¿¬»ê °á°ú°¡ À½¼öÀÎÁö ¿©ºÎ¸¦ Ç¥½ÃÇÏ´Â Ç÷¡±×·Î¼, ¿¬»ê °á°ú°¡ À½¼öÀÌ¸é »çÀÎ
Ç÷¡±×´Â 1ÀÌ µÇ¸ç ¿¬»ê °á°ú°¡ ¾ç¼öÀÌ¸é »çÀÎ Ç÷¡±×´Â 0ÀÌ µÈ´Ù. 2Áø¼öÀÇ ÃÖ»óÀ§
ºñÆ®¿¡ »çÀÎ Ç÷¡±×¸¦ ºÙ¿© Ç¥½ÃÇÏ´Â ¹æ¹ýÀ¸·Î 2ÀÇ º¸¼ö(2's complement) ü°è°¡
¸¸µé¾îÁø´Ù.
OF(Overflow Flag)
¿¬»ê °á°ú ¼ö¿ëÇÒ ¼ö ÀÖ´Â ÀÚ¸®¼ö¸¦ ÃʰúÇÏ´Â ÀÏ(overflow)ÀÌ ¹ß»ýÇß´ÂÁöÀÇ ¿©ºÎ¸¦
Ç¥½ÃÇÏ´Â Ç÷¡±×·Î¼, 8ºñÆ®ÀÇ ¿¬»ê °á°ú°¡ 9ºñÆ®ÀÇ ¼ö·Î µÇ°Å³ª 16ºñÆ®ÀÇ ¿¬»ê °á°ú°¡
16ºñÆ®ÀÇ ¼ö·Î µÈ °æ¿ì µî¿¡ ÀÚ¸®¼ö¸¦ ÃʰúÇÑ 1ºñÆ®´Â ¼Ò¸êµÇ¸ç, ±× Ç¥½Ã·Î ¿À¹öÇ÷οì
Ç÷¡±×¿¡ 1ÀÌ ÀúÀåµÈ´Ù.
TF(Trap Flag)
ÇÑ ¸í·ÉÀ» ½ÇÇàÇÑ ÈÄ type 1ÀÇ ÀÎÅÍ·´Æ®¸¦ ¹ß»ý½ÃÄѼ ¸í·ÉÀ» 1 ½ºÅܾ¿ ½ÇÇàÇϵµ·Ï
¸¸µå´Â Ç÷¡±×ÀÌ´Ù. µð¹ö°ÅÀÇ ½Ì±Û ½ºÅÜ(single step) µî¿¡¼ »ç¿ëµÈ´Ù. Ç÷¡±× ·¹Áö½ºÅ͸¦
¸¶½ºÅ·(masking) ±â¹ýÀ¸·Î Á¶ÀÛÇÏ¿© Á¦¾îÇÒ ¼ö ÀÖ´Ù.
IF(Interrupt Enable Flag)
¿ÜºÎÀÇ ¸¶½ºÅ©ºí ÀÎÅÍ·´Æ®(maskable interrupt)¸¦ °¡´ÉÇÏ°Ô ¸¸µå´Â Ç÷¡±×ÀÌ´Ù.
STI(IF=1), CLI(IF=0) µîÀÇ ¸í·ÉÀ¸·Î Á¦¾îÇÒ ¼ö ÀÖ´Ù.
DF(Direction Flag)
½ºÆ¼¸µ ¸í·É¿¡¼ ¼Ò½º ¶Ç´Â ¸ñÀû ¾îµå·¹½º¸¦ ÀÚµ¿À¸·Î Áõ°¡½ÃŰ±â³ª °¨¼Ò½ÃŰ´Â
Ç÷¡±×ÀÌ´Ù. DF=1À̸é auto-increment »óÅÂÀ̸ç, ¹Ý¸é¿¡ DF=0À̸é auto-decrement
»óÅÂÀÌ´Ù. ´ë»óÀÌ µÇ´Â ¾îµå·¹½º´Â ¼Ò½º ¾îµå·¹½ºÀÇ °æ¿ì SI °ªÀÌ µÇ¸ç ¸ñÀû ¾îµå·¹½ºÀÇ
°æ¿ì DI°¡ µÇ¹Ç·Î, °á±¹ DF=1À̸é SI ¶Ç´Â DI °ªÀ» ÀÚµ¿À¸·Î Áõ°¡½Ã۰í DF=0À̸é
SI ¶Ç´Â DI °ªÀ» ÀÚµ¿À¸·Î °¨¼Ò½ÃŰ°Ô µÉ °ÍÀÌ´Ù.
STD(DF=1), CLD(DF=0) µîÀÇ ¸í·ÉÀ¸·Î Á¦¾îÇÒ ¼ö ÀÖ´Ù.
ÀÌ ÀåÀÇ ³»¿ëÀº À±´ö¿ë(ëÅÓìéË)´ÔÀÇ "16ºñÆ® ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼ ¹× IBM PC
Çϵå¿þ¾î ÀÔ¹®"(µµ¼ÃâÆÇ ðÈêªÞä 1994.1.10. 4ÆÇ ¹ßÇà) 1 ³»Áö 50 ÂÊÀ» ÁÖ·Î
Âü°íÇÏ°í ´Ù¸¥ Ã¥ÀÚµµ Âü°íÇÏ¸é¼ ÇÊÀÚ°¡ ÀÌÇØÇÏ´Â Çѵµ¿¡¼´Â ÃÖ´ëÇÑ ½±°Ô, ¹Ýµå½Ã
Âü°íÇÒ ¸¸ÇÑ ³»¿ë¸¸ ¹ßÃé ÆíÁýÇÏ¿´Áö¸¸ ´Ù¼Ò ¾î·Á¿î ³»¿ëµµ ÀÖÀ» °ÍÀÌ´Ù. ±×·¯³ª
ÇÊÀÚ°¡ ´Ã ¸»ÇÏ´Â °Íó·³ µÚ¿¡ °¡¸é ±¸Ã¼ÀûÀÎ »ç¿ë°ú ÇÔ²² ÀúÀý·Î ´Ù ¾Ë°Ô µÇ¾î ÀÖÀ¸´Ï
¸Å´Þ¸®Áö ¸»°í ÀÌÇØµÇ´Â ºÎºÐ¸¸À¸·Îµµ ¸¸Á·ÇÏ°í ³Ñ¾î°¡±â ¹Ù¶õ´Ù. ´Ù¸¥À̵éÀÇ Ã¥ÀÚ¸¦
Âü°íÇÏ¿´Áö¸¸, ÇÊÀÚ°¡ °øºÎÇÏ¸é¼ ´À³¤ Á¡µéÀ» ¼ö½Ã·Î ¹Ý¿µÇÏ¿© ÆíÁýÇϹǷΠ»õ·Î¿î
¸ÀÀ» º¼ ¼ö ÀÖÀ» °ÍÀ̶ó°í ¹ÏÀ¸¸ç, ºÎÁ·ÇÑ Á¡ÀÌ ¹ß°ßµÇ¸é Ãæ°í ¸ÞÀÏ Áֽñ⠹ٶõ´Ù.
|