asm_51.
(¸í·É¾î)
¾î¼Àºí¸®¾î °Á°¡ 4ºÎºÐÀ¸·Î ³ª´¹´Ï´Ù.
asm_00.À¸·Î ½ÃÀÛÇÑ µð¹ö±×¸¸À» »ç¿ëÇÑ ÇÁ·Î±×·¡¹Ö
asm_71.·Î ½ÃÀÛÇÑ ÇÏÀÌÅÚ µÎ·ç¹° °Á ¿ä¾à Á¤¸®
asm_51.·Î ½ÃÀÛÇÏ´Â ¾î¼Àºí¸®¾î ¸í·É¾î ÇØ¼³
asm_31.·Î ½ÃÀÛÇÏ´Â Çϵå¿þ¾î °ü·Ã Á¤¸®
°¢ µ¶ÀÚÀÇ °øºÎ ÃëÇâ°ú ¹æÇâÀÌ ´Ù¸¦ ¼ö Àֱ⠶§¹®¿¡,
ÇÊÀÚ°¡ 3°¡Áö ¹æ
ÇâÀ¸·Î ÁøÇàÇÏ´Â °Á¿¡¼ ¸¶À½¿¡ µå´Â °ÍºÎÅÍ °øºÎÇϽñâ
¹Ù¶ø´Ï´Ù.
°øºÎ ¼ø¼´Â ¸¶À½¿¡ ³»Å°´Â °ÍÀÌ °¡Àå ÁÁ´Ù°í, ÇÊÀÚ´Â
¹Ï½À´Ï´Ù.
Á¦ 51 Àå ¸í·É¾î
¦£¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¤
¦¢ asm_51.ºÎÅÍ´Â ÀÎÅÚ 8088/8086 ¸í·É¾î¸¦ Á¤¸®ÇϰíÀÚ ÇÕ´Ï´Ù. ÀÌ
À妢
¦¢ ¿¡¼´Â Àü¹ÝÀûÀÎ ±âÃʸ¦ ´Ù·ç°í ´ÙÀ½ ÀåºÎÅÍ´Â ABC ¼ø¼·Î ¸í·É
ÇϦ¢
¦¢ ³ª¾¿À» ¼³¸íÇÕ´Ï´Ù. »öÀÎÀº ÀÌ Àå¿¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. ¦¢
¦¦¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¡¦¥
ÀÌ ÀåÀ¸·ÎºÎÅÍ´Â 8088ÀÇ ¸í·É¾î¸¦ °øºÎÇϱâ·Î ÇÑ´Ù.
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)´Â ¸Þ¸ð¸®¸¦ ´ë»óÀ¸·Î ÀÛ¾÷À» ÁøÇàÇÑ´Ù.
±×·±µ¥, ÀÌ¹Ì ¼³¸íÇßÁö¸¸, ÄÄÇ»ÅÍÀÇ ¸Þ¸ð¸®´Â ÀÓÀÇÀÇ ¼ø¼·Î Á¢±ÙÇÒ ¼ö ÀÖ´Â ºñÆ®¿ÀÇ
¹è¿¿¡ ºÒ°úÇÏ´Ù. ¸í·ÉÀ̳ª µ¥ÀÌÅͳª ¸ðµÎ 2Áø¼öÀÎ ±â°è¾î·Î ¸Þ¸ð¸®¿¡
ÀúÀåµÇ¾î ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ »Ó¸¸ ¾Æ´Ï¶ó, ¸Þ¸ð¸®¿¡´Â ¸í·É¾î¿Í ±× ¸í·É¾î¿¡ µû¶ó
ó¸®ÇÒ ´ë»óÀÌ µÇ´Â µ¥ÀÌÅͰ¡ ºñÆ®¿À̶ó´Â µ¿ÀÏÇÑ ¸ð¾çÀ¸·Î µÚ¼¯¿© ÀÖ´Ù.
±×·¸±â ¶§¹®¿¡, °°Àº ¸Þ¸ð¸®¿¡ µÚ¼¯¿© ÀúÀåµÇ¾î ÀÖ´Â ºñÆ®¿ Áß¿¡¼ ¾î¶²
°ÍÀÌ ¼öÄ¡ ÀÚ·áÀÌ°í ´Ù¸¥ ¾î¶² °ÍÀÌ ¸í·É¾î ÄÚµåÀÎÁö¸¦ ±¸ºÐÇÏ´Â ÀÏÀÌ ÇÁ·Î¼¼¼ÀÇ
Áß¿äÇÑ ÀÛ¾÷À¸·Î µîÀåÇÏ°Ô µÈ´Ù.
ÄÄÇ»ÅÍ ÇÁ·Î¼¼¼´Â ¸í·É¾î¿Í µ¥ÀÌÅÍ(¿©±â¿¡¼ µ¥ÀÌÅͶó´Â ¸»Àº ó¸®ÇÒ ´ë»óÀÌ
µÇ´Â ÀÚ·á)¶ó´Â ±× µÎ °¡Áö¸¦ ±¸ºÐÇÒ ¼ö ÀÖÀ»±î?
±× ¹®Á¦¸¦ ÀÌÇØÇÏ·Á¸é, ÇÁ·Î¼¼¼°¡ ÇÏ´Â ÀÏÀ» ¸ÕÀú ÀÌÇØÇÒ Çʿ䰡 ÀÖ´Ù.
½ÇÇàÇÒ ¸í·É¾î¸¦ ¸Þ¸ð¸®¿¡¼ ÀÐ¾î ¿Â´Ù.
±× ¸í·É¿¡ ´ëÇÑ ÀÛ¾÷À» ÇÑ´Ù.
´Ù½Ã ¸»Çؼ Àаí ÀÛ¾÷Çϰí, ¶Ç Àаí ÀÛ¾÷ÇÏ´Â °ÍÀÌ ÇÁ·Î¼¼¼ÀÇ ÀÏÀÌ´Ù.
¾Ë°í º¸¸é ÇÁ·Î¼¼¼°¡ Àоî¾ß µÉ ¸í·É¾îµµ ¸Þ¸ð¸®¿¡ ÀÖ°í, ¸í·É¾î¿¡ µû¶ó
ÀÛ¾÷ÇÑ °á°úµµ °á±¹ ¸Þ¸ð¸®¿¡ ±â·ÏÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.
ÇÁ·Î¼¼¼°¡ ¸Þ¸ð¸®·ÎºÎÅÍ ¸í·É¾î¸¦ Àд ÀÛ¾÷À» fetch cycle(ÃÊÄ¡ ÇàÁ¤)À̶ó Çϰí,
±× ¸í·É¾î¸¦ ó¸®ÇÏ´Â ÀÛ¾÷À» execution cycle(½ÇÇà ÇàÁ¤)À̶ó°í ºÎ¸¥´Ù.
°¡·É ¸Þ¸ð¸®¿¡ F3(h) Áï 11110011(b)ÀÌ ÀúÀåµÇ¾î ÀÖÀ» ¶§ ±× ¼öÄ¡´Â ¸í·É
ÄÚµå repz¸¦ Ç¥½ÃÇÒ ¼öµµ ÀÖ°í, ´Ü¼øÇÑ ¼öÄ¡ ÀÚ·á 243(d)¸¦ Ç¥½ÃÇÒ ¼öµµ Àֱ⠶§¹®¿¡
»ç¶÷ÀÌ ´ëÃæ º¸¾Æ¼´Â ¸í·ÉÀÎÁö ÀÚ·áÀÎÁö ¾Ë±â ¾î·Æ´Ù.
±×·¯³ª ÄÄÇ»ÅÍÀÇ ¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)´Â ÇöÀç ÀڱⰡ ÇÏ´Â ÀÏÀÌ
ÃÊÄ¡ ÇàÁ¤(fetch cycle)ÀÎÁö ¾Æ´Ï¸é ½ÇÇà ÇàÁ¤(execution cycle)ÀÎÁö¿¡ µû¶ó
°°Àº ¼öÄ¡¶óµµ ÃÊÄ¡ ÇàÁ¤ÀÇ ´ë»óÀÏ ¶§´Â ¸Þ¸ð¸®ÀÇ ÇÑ ¹ÙÀÌÆ®¸¦ ¸í·É ÄÚµå·Î
Ãë±ÞÇÏ¸ç ½ÇÇà ÇàÁ¤ Áß¿¡´Â ±×°ÍÀ» ´Ü¼øÇÑ ¼öÄ¡ ÀÚ·á·Î Ãë±ÞÇÏ¿© ±¸ºÐÇÏ´Â °ÍÀÌ´Ù.
## ÇÊÀÚÅë½Å
ÃÊÄ¡ ÇàÁ¤ÀÌ ¹«¾ùÀÌ°í ½ÇÇà ÇàÁ¤ÀÌ ¹«¾ùÀÎÁö¸¦ ÀÌÇØÇϱâ À§Çؼ´Â ÀÛ¾÷ÀÇ
¿¬¼Ó¼º¿¡ °üÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÒ °ÍÀÌ´Ù. ¸í·É ÄÚµå ´ÙÀ½¿¡´Â ÀÛ¾÷ ´ë»óÀÌ
µÇ´Â ¼öÄ¡ ÀÚ·á°¡ ¿Í¾ß µÇ°í, ÇÊ¿äÇÑ ¼öÄ¡ ÀÚ·á°¡ ³¡³ª ¸í·ÉÀÌ ¿Ï¼öµÇ¾ú´Ù¸é
±× ÈÄ¿¡´Â ´Ù¸¥ ¾î¶² ¸í·ÉÀÌ ÀÖ¾î¾ß ÀÛ¾÷ÀÌ ¿¬¼ÓµÉ °ÍÀÌ´Ù. À̰ÍÀº ºñÀ¯ÄÁ´ë,
¹è°¡ °íÇÁ¸é ¹«¾ð°¡¸¦ ¸Ô¾î¾ß µÇ°í ¸Ô¾î¼ ¹è°íÇ »óŰ¡ ÇØ¼ÒµÇ¾ú´Ù¸é ±× ´ÙÀ½¿¡´Â
´Ù¸¥ ¹«¾ð°¡¸¦ ÇÒ ¼ö ÀÖ´Â Àλý°ú ºñ½ÁÇÏ´Ù°í º¼ °ÍÀÌ´Ù. ÇÊÀÚÀÇ ÀÌ ¼³¸íÀÌ
µ¶ÀÚÀÇ ÀÌÇØ¿¡ ´Ù¼Ò µµ¿òÀÌ µÇ±â¸¦ ¹Ù¶ó¸ç, ¾à°£ ¾î·Æ´õ¶óµµ ¸Å´Þ¸®Áö ¸»°í ³Ñ¾î°¡±â
¹Ù¶õ´Ù.
ÃÊÄ¡ ÇàÁ¤Àº ´Ü¼øÈ÷ PC°¡ ÁöÀûÇϰí ÀÖ´Â ±â¾ïÀå¼Ò¿¡¼ ¸í·É¾îÀÇ Ã¹ ¹ÙÀÌÆ®¸¦ Àоî
µéÀÏ »ÓÀ̸ç, ±× ÈÄ¿¡ PC´Â ´ÙÀ½ÀÇ ±â¾ïÀå¼Ò¸¦ ÁöÀûÇϱâ À§ÇÏ¿© ´ÙÀ½ ¹ÙÀÌÆ®ÀÇ ÁÖ¼Ò·Î
°»½ÅµÈ´Ù. ¸¸¾à ¸í·É¾î°¡ ÇÑ ¹ÙÀÌÆ®·Î ³¡³ªÁö ¾Ê°í µÎ ¹ÙÀÌÆ® ÀÌ»óÀÇ Å©±â¸¦ °¡Áö´Â
°ÍÀ̶ó¸é ¸í·É¾îÀÇ ³¡±îÁö ÃÊÄ¡ ÇàÁ¤À¸·Î ÀÐ°Ô µÉ °ÍÀÌ´Ù.
½ÇÇà ÇàÁ¤ °úÁ¤¿¡ 󸮵Ǵ µ¿ÀÛÀº ÀÐÇôÁø ¸í·É¾î¿¡ µû¶ó ´Þ¶óÁú °ÍÀÌ´Ù.
Á¦ 1 Àý ¸í·É¾îÀÇ Å©±â, Çü½Ä
¸í·É¾îµµ ÇÁ·Î¼¼¼¿¡ µû¶ó ´Þ¶óÁø´Ù.
ÀÎÅÚ Ä¨¿¡¼µµ 8088, 8086, 80286, 80386ÀÇ ¸í·É¾î°¡ ¼·Î ´Ù¸£´Ù. ¹°·Ð ÇÁ·Î¼¼¼°¡
¹ßÀüÇÔ¿¡ µû¶ó ¸í·É¾î°¡ È®ÀåµÇ¾î ¿Ô±â ¶§¹®¿¡ »õ·Î¿î ÇÁ·Î¼¼¼ÀÇ ¸í·É¾î¿¡´Â
ÀÌÀüÀÇ ÇÁ·Î¼¼¼¿¡¼ »ç¿ëµÇ´ø ´ëºÎºÐÀÇ ¸í·É¾î°¡ ÅëÇÒ °ÍÀÌ´Ù.
ÀÌ Àý¿¡¼´Â ÀÎÅÚ 8088ÀÇ ¸í·É¾î¸¦ ´Ù·ç±â·Î ÇÑ´Ù.
## Ȱ¿ë ÆÁ
8088°ú 8086Àº ¿ÏÀüÈ÷ µ¿ÀÏÇÑ ¸í·É¾î ¼ÂÆ®¸¦ °¡Áö°í ÀÖÀ¸¸ç, 8ºñÆ®
ÇÁ·Î¼¼¼ 8080, 8085ÀÇ ´ëÇ¥ÀûÀÎ ¸í·ÉµéÀ» °ÅÀÇ Æ÷ÇÔÇϰí ÀÖ´Ù.
1. ¸í·É¾îÀÇ Å©±â
ÀÎÅÚ 8088ÀÇ ¸í·É¾î´Â 1¹ÙÀÌÆ® ³»Áö 6¹ÙÀÌÆ® Å©±â·Î µÇ¾î ÀÖ´Ù.
Áï 8088ÀÇ ¸ðµç ¸í·É¾î´Â ¿µ¾î 1±ÛÀÚ ³»Áö 6±ÛÀÚ ¹üÀ§¿¡ ¼ÓÇÏ´Â °ÍÀÌ´Ù.
## ÁÖÀÇ
¸í·É¾îÀÇ Å©±â´Â ¿ì¸®°¡ ¾î¼Àºí¸®¾î·Î ÀÔ·ÂÇÏ´Â ¸í·É¾îÀÇ ±ÛÀÚ ¼ö¿Í´Â
¹«°üÇϸç, ±× ¸í·É¾î°¡ ±â°è¾î·Î ¹ø¿ªµÇ¾úÀ» ¶§ ¸î ¹ÙÀÌÆ®¸¦ Â÷ÁöÇϴ°¡¿¡
´Þ·Á ÀÖ´Ù. °¡·É Á¦2Àý 2.2.(¸í·É¾î¿Í ÀÚ·áÀÇ ±¸ºÐ)¿¡¼ ¿¹·Î µé¾ú´ø repz¶ó´Â
¾î¼Àºí¸® ¸í·É¾îÀÇ ±â°è¾î ÄÚµå´Â F3(h)·Î ±× ¸í·ÉÀº ¾î¼Àºí¸®¾î·Î´Â 4±ÛÀÚÀÌÁö¸¸
1¹ÙÀÌÆ® ¸í·ÉÀÎ °ÍÀÌ ÁÁÀº ¿¹ÀÌ´Ù.
2. ¸í·É¾îÀÇ Çü½Ä
ÀÎÅÚ 8088/8086ÀÇ ¸í·ÉÀº 1 ³»Áö 6¹ÙÀÌÆ® ³»¿¡¼ ±æÀ̰¡ º¯ÇÒ ¼ö ÀÖ´Â ¹æ½ÄÀ¸·Î
µÇ¾î Àִµ¥, ¸í·É¾îÀÇ ±âº» Çü½ÄÀº ´ÙÀ½°ú °°´Ù.
Á¦1¹ÙÀÌÆ® = OP
ÄÚµå(6) + D(1) + W(1)
Á¦2¹ÙÀÌÆ® = MOD(2)
+ REG(3) + R/M(3)
Á¦3¹ÙÀÌÆ® = low
displacement(low data)
Á¦4¹ÙÀÌÆ® = high
displacement(high data)
Á¦5¹ÙÀÌÆ® = low
data
Á¦6¹ÙÀÌÆ® = high
data
¸í·ÉÀÇ Á¦1 ³»Áö 2¹ÙÀÌÆ®´Â ¸í·ÉÀÇ ±â´É ¹× µ¿ÀÛÀ» ³ªÅ¸³»´Â °¡Àå Áß¿äÇÑ
ºÎºÐÀ̸ç, ³ª¸ÓÁö ¹ÙÀÌÆ®µéÀº displacement ¶Ç´Â immedidate data·Î ±¸¼ºµÈ´Ù.
8088ÀÇ ´ëºÎºÐÀÇ ¸í·ÉÀº ¹ÙÀÌÆ® ¹× ¿öµå µ¥ÀÌÅ͸¦ ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç, ¿ÀÆÛ·£µå·Î¼
·¹Áö½ºÅÍ(register), ¸Þ¸ð¸®(menory), ÁïÄ¡(immediate) µ¥ÀÌÅ͸¦ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ
¼ö ÀÖ´Ù. ƯÈ÷ ¿¬»êÀ̳ª ºñ±³, ½ÃÇÁÆ® ¸í·É µî¿¡¼ ¸Þ¸ð¸® º¯¼ö(memory variable)¸¦
·¹Áö½ºÅÍ·Î ¿Å±âÁö ¾Ê°í Á÷Á¢ »ç¿ëÇÒ ¼ö Àֱ⠶§¹®¿¡ »ç¿ëÇÒ ·¹Áö½ºÅÍÀÇ ¼ö
¹× ¸í·É ¼öÇà½Ã°£À» Àý¾àÇÒ ¼ö ÀÖ´Ù.
3. ¸í·É¾î Á¦1¹ÙÀÌÆ®ÀÇ ÀÎÄÚµù
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼(MPU)ÀÇ ¸í·ÉÀº ¾î¼Àºí¸®¾î ·¹º§°ú ±â°è¾î ·¹º§ÀÌ Àִµ¥,
ÀϹÝÀûÀ¸·Î´Â ¾î¼Àºí¸®¾î·Î ÇÁ·Î±×·¡¹ÖÀ» ÇÏÁö¸¸ ´ÜÀÏ º¸µå ÄÄÇ»ÅÍ µî¿¡¼´Â ±â°è¾î¸¦
Á÷Á¢ ÀÔ·ÂÇÏ´Â °æ¿ìµµ ÀÖÀ¸¹Ç·Î ±â°è¾î ÄÚµåÀÇ ±¸Á¶¸¦ ¾Ë¾Æ µÎ¸é Æí¸®ÇÑ
°æ¿ì°¡ ÀÖ´Ù.
¿©±â¿¡¼´Â °¡Àå Áß¿äÇÑ ¸í·É¾îÀÇ Á¦1¹ÙÀÌÆ® ÀÎÄÚµùÀ» ¸ÕÀú ¾Ë¾Æ º¸±â·Î ÇÑ´Ù.
±âº»ÇüÀ» ¿Å°Ü µÎ°í º¸¸é¼ ¼³¸íÀ» °è¼ÓÇϱâ·Î ÇÏÀÚ.
Á¦1¹ÙÀÌÆ® = OP
ÄÚµå(6) + D(1) + W(1)
ÀÌ¹Ì ¾Ë°ÚÁö¸¸, °¢ ¹ÙÀÌÆ®ÀÇ ºñÆ® À§Ä¡¸¦ ´Ù½Ã ÇÑ ¹ø È®ÀÎÇÏ°í ³Ñ¾î°¡ÀÚ.
(8ºñÆ®) Á¦7
6 5 4 3 2 1 0(ºñÆ® À§Ä¡)
Á¦1¹ÙÀÌÆ® = OP
ÄÚµå(6) + D(1) + W(1)
## Ȱ¿ë ÆÁ
ºñÆ® À§Ä¡´Â ÀÚ¸®¼ö¿Í °°ÀÌ »ý°¢ÇÏ¸é µÇ¸ç, ¿À¸¥ÂÊ ³¡ ÀÚ¸®ºÎÅÍ ¹ÙÀÌÆ® µ¥ÀÌÅÍÀÇ
°æ¿ì 0, 1, 2, 3, 4, 5, 6, 7ºñÆ®·Î Ç¥½ÃÇÏ¸ç ¿öµå µ¥ÀÌÅÍÀÇ °æ¿ì¿¡´Â
¿À¸¥ÂÊÀ¸·ÎºÎÅÍ 0, 1, 2, ... , 14, 15ºñÆ®·Î ºÎ¸¥´Ù.
±âº»Çü¿¡¼ óÀ½ÀÇ 6ºñÆ®´Â ±âº»ÀûÀÎ ¸í·É(add, xor µî)À» ³ªÅ¸³»´Â OP
ÄÚµåÀ̸ç, D ºÎºÐÀº 2°³ÀÇ ¿ÀÆÛ·£µå¸¦ ¿ä±¸ÇÏ´Â ¸í·É¿¡¼ Á¦2¹ÙÀÌÆ®¿¡¼
REG(·¹Áö½ºÅÍ)·Î ÁöÁ¤µÈ ¿ÀÆÛ·£µå°¡ ¼Ò½º ¿ÀÆÛ·£µåÀÎÁö ¸ñÀû ¿ÀÆÛ·£µåÀÎÁö Ç¥½ÃÇϰí,
W ºÎºÐÀº ¿ÀÆÛ·£µå µ¥ÀÌÅͰ¡ ¿öµåÀÎÁö ¹ÙÀÌÆ®ÀÎÁö¸¦ ¾Ë·Á ÁØ´Ù.
D=1 : REG·Î ÁöÁ¤µÈ µ¥ÀÌÅͰ¡ ¸ñÀû(destination) ¿ÀÆÛ·£µåÀÓ
D=0 : REG·Î ÁöÁ¤µÈ µ¥ÀÌÅͰ¡ ¼Ò½º(source) ¿ÀÆÛ·£µåÀÓ
W=1 : ¿ÀÆÛ·£µå µ¥ÀÌÅͰ¡ ¿öµå Å©±âÀÓ
W=0 : ¿ÀÆÛ·£µå µ¥ÀÌÅͰ¡ ¹ÙÀÌÆ® Å©±âÀÓ
ÀϺΠ¸í·É¿¡¼´Â D, W ¿Ü¿¡µµ S, V, Z¿Í °°Àº ´ÜÀÏ ºñÆ® ¿µ¿ªÀÌ Æ÷ÇԵȴÙ.
S´Â W¿Í ÇÔ²² »ç¿ëµÇ¾î ÁïÄ¡(immediate) µ¥ÀÌÅÍÀÇ ºÎȣȮÀåÀ» ³ªÅ¸³½´Ù. V´Â ½ÃÇÁÆ®
¹× ·ÎÅ×ÀÌÆ® ¸í·É¿¡¼ ºñÆ® À̵¿ÀÇ ¼ö°¡ 1ÀÎÀÌ °¡º¯ÀûÀÎÁö¸¦ Ç¥½ÃÇØ ÁØ´Ù.
Z´Â Á¶°ÇºÎ repeat ¹× loop ¸í·É¿¡¼ Á¦·Î Ç÷¡±×¿ÍÀÇ ºñ±³ ºñÆ®·Î »ç¿ëµÈ´Ù.
## Ȱ¿ë ÆÁ
¿ÀÆÛ·£µå·Î¼ ¿öµå µ¥ÀÌÅ͸¦ ´Ù·ç´ÂÁö ¿©ºÎ¸¦ Ç¥½ÃÇÏ´Â W ºñÆ®´Â ¸í·É¾î
Á¦1¹ÙÀÌÆ®ÀÇ 0ºñÆ®(³¡ ÀÚ¸®) À§Ä¡¿¡ ¾²À̰í ÀÖÀ½À» ±â¾ïÇÏ¸é ½¬¿ï
°ÍÀÌ´Ù. ¿¹¿ÜÀûÀÎ °æ¿ì´Â Á¶±Ý ÀÖ´Ù°¡ ´Ù·ç°Ô µÈ´Ù. ±×¸®°í, D,
S, V µîÀº WÀÇ ¹Ù·Î ¾ÕÀÎ 1ºñÆ® À§Ä¡¿¡ ¾²ÀδÙ.
ÀÌ»ó ¼³¸íÇÑ S, V, Z ºñÆ®ÀÇ ¿ë¹ýÀ» ¾Ë¾Æ º¸±â·Î ÇÏÀÚ.
S=1 : W=1ÀÎ °æ¿ì¿¡ 8ºñÆ® µ¥ÀÌÅ͸¦ 16ºñÆ®·Î ºÎÈ£¸¦
È®ÀåÇÔ
S=0 : ºÎÈ£¸¦ È®ÀåÇÏÁö ¾ÊÀ½
V=1 : ½ÃÇÁÆ®/·ÎÅ×ÀÌÆ® ¸í·ÉÀÇ ºñÆ®À̵¿ ¼ö¸¦ CL·Î ÁöÁ¤(°¡º¯Àû)
V=0 : ½ÃÇÁÆ®/·ÎÅ×ÀÌÆ® ¸í·ÉÀÇ ºñÆ®À̵¿ ¼ö´Â 1·Î °íÁ¤µÊ
Z=1 : Á¦·Î Ç÷¡±×°¡ 1ÀÎ µ¿¾È repeat ¶Ç´Â loop
Z=0 : Á¦·Î Ç÷¡±×°¡ 0ÀÎ µ¿¾È repeat ¶Ç´Â loop
ÀÌ»óÀÇ ¼³¸íÀ» Âü°íÇÏ¿© ½ÇÁ¦ ±â°è¾î Äڵ忡 Àû¿ëµÈ ¸í·É Çü½ÄÀ» »ìÆì º¸ÀÚ.
Á¦1Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(6)
+ D(1) + W(1)
Á¦2Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(6)
+ S(1) + W(1)
Á¦3Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(6)
+ V(1) + W(1)
Á¦4Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(7)
+ Z(1)
Á¦5Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(4)
+ W(1) + REG(3)
Á¦6Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(5)
+ REG(3)
Á¦7Çü½Ä Á¦1¹ÙÀÌÆ® = OP ÄÚµå(3)
+ SEG(2) + (3)
ÀÌÁ¦ °¢ Çü½ÄÀÇ Á¦1¹ÙÀÌÆ® ³»¿ëÀ» ±¸Ã¼ÀûÀ¸·Î ¼³¸íÇϱâ·Î ÇÑ´Ù.
1) Á¦1Çü½Ä
¸í·É¾î Á¦1¹ÙÀÌÆ®ÀÇ °¡Àå ÀϹÝÀûÀÎ ±¸¼ºÀº ´ÙÀ½°ú °°´Ù.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(6) + D(1) + W(1)
ÀÌ Çü½ÄÀº µ¥ÀÌÅÍ Àü¼Û¸í·ÉÀ̳ª ¿¬»ê¸í·É µî 2°³ÀÇ ¿ÀÆÛ·£µå¸¦ ÇÊ¿ä·Î ÇÏ´Â
´ëºÎºÐÀÇ ¸í·É¿¡¼ »ç¿ëµÈ´Ù.
Á¦0ºñÆ®(W)°¡ 0ÀÌ¸é ¿ÀÆÛ·£µå µ¥ÀÌÅÍÀÇ Å©±â´Â ¹ÙÀÌÆ®, 1ÀÌ¸é ¿öµå°¡ µÈ´Ù.
Á¦1ºñÆ®(D)°¡ 0ÀÌ¸é ·¹Áö½ºÅÍ ¿ÀÆÛ·£µå°¡ ¼Ò½º, 1ÀÌ¸é ¸ñÀûÀÌ µÈ´Ù.
2) Á¦2Çü½Ä
´ÙÀ½À¸·Î »ê¼ú¿¬»ê ¸í·É¿¡¼ »ç¿ëÇÏ´Â ¸í·É ±¸¼ºÀ» º¸ÀÚ.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(6) + S(1) + W(1)
Á¦1ºñÆ®(S)°¡ 0ÀÌ¸é ºÎÈ£¸¦ È®ÀåÇÏÁö ¾Ê´Â´Ù.
Á¦1ºñÆ®(S)¿Í Á¦0ºñÆ®(W)°¡ ¸ðµÎ 1À̸é, Áï ¸í·É¾î Á¦1¹ÙÀÌÆ®°¡ ......11·Î
³¡³ª¸é, 8ºñÆ® µ¥ÀÌÅ͸¦ 16ºñÆ®·Î ºÎÈ£¸¦ È®ÀåÇÑ´Ù.
3) Á¦3Çü½Ä
´ÙÀ½ Çü½ÄÀº shift ¹× rotate ¸í·É¿¡¼ »ç¿ëµÇ´Â ±¸¼ºÀÌ´Ù.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(6) + V(1) + W(1)
Á¦1ºñÆ®(V)°¡ 0À̸é 1ºñÆ®¸¸Å¸¸ À̵¿ÇÑ´Ù.
Á¦1ºñÆ®(V)°¡ 1À̸é CL ·¹Áö½ºÅÍ °ª¸¸Å ºñÆ® À̵¿ÇÑ´Ù. CL ·¹Áö½ºÅͰ¡ ¾î¶² ¼öÀÎÁö
¹Ì¸® ¾Ë ¼ö ¾ø±â ¶§¹®¿¡ °¡º¯ÀûÀÎ ºñÆ® À̵¿À̶ó°í ¸»ÇÏ´Â °ÍÀÌ´Ù.
4) Á¦4Çü½Ä
À̹ø¿¡´Â W ºñÆ®°¡ ¾ø´Â Ư¼öÇÑ Çü½ÄÀÌ´Ù. ¸í·ÉÀÇ ¹Ýº¹ ¶Ç´Â ·çÇÁ°¡ Á¦·Î
Ç÷¡±×ÀÇ °ª¿¡ µû¶ó Á¶°ÇºÎ·Î °è¼ÓµÇ´Â ¸í·É Çü½ÄÀÌ µÈ´Ù.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(7) + Z(1)
ÀÌ Çü½Ä¿¡ ÇØ´çµÇ´Â ¸í·É¾î·Î´Â repeat, loop µîÀÌ ÀÖ´Ù.
5) Á¦5Çü½Ä
À̹ø¿¡´Â ¸í·É¾îÀÇ Á¦1¹ÙÀÌÆ®¿¡ ·¹Áö½ºÅÍ ¿ÀÆÛ·£µå°¡ Æ÷ÇԵǴ Çü½ÄÀÌ´Ù.
µû¶ó¼ ±âº»Çü¿¡¼ 0ºñÆ® ÀÚ¸®¿¡ ÀÖ´ø W ºñÆ®°¡ 3ºñÆ® ÀÚ¸®·Î ¿Å°Ü °¬´Ù.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(4) + W(1) + REG(3)
ÀÌ Çü½ÄÀº mov(e) ¸í·É¿¡¼ »ç¿ëµÇ´Â ¸í·É ±¸¼ºÀÌ´Ù.
Âü°í·Î, ·¹Áö½ºÅÍ ¿µ¿ª 3ºñÆ®ÀÇ ÀÎÄÚµùÀ» ¼Ò°³ÇÏ¸é ´ÙÀ½°ú °°´Ù.
REG(3) 000 001
010 011 100 101 110
111
W=0 AL
CL DL BL AH
CH DH BH
W=1 AX
CX DX BX SP
BP SI DI
## Ȱ¿ë ÆÁ
±»ÀÌ ¿Ü¿ï ÇÊ¿ä´Â ¾ø°ÚÁö¸¸ W=0ÀÎ °æ¿ì ¹ÙÀÌÆ® µ¥ÀÌÅ͸¦ Ãë±ÞÇϱ⠶§¹®¿¡
8ºñÆ® ·¹Áö½ºÅ͸¸ Ç¥½ÃÇÒ ¼ö ¹Û¿¡ ¾øÀ½Àº ´ç¿¬Çϸç, ¹ÙÀÌÆ® ·¹Áö½ºÅÍÀÇ
°æ¿ì ¸ÕÀú ÇÏÀ§ ¹ÙÀÌÆ®¿¡¼ ACDB ¼ø¼·Î, ±× ´ÙÀ½¿¡´Â »óÀ§ ¹ÙÀÌÆ®¿¡¼
°°Àº ¼ø¼·Î, ¿öµå ·¹Áö½ºÅÍÀÇ °æ¿ì¿¡µµ °°Àº ¼ø¼·Î, ¸¶Áö¸·À¸·Î SBSD Æ÷ÀÎÆ®
À妽º ·¹Áö½ºÅÍ ¼ø¼·Î ±â¾ïÇϸé ÀúÀý·Î ¿Ü¿öÁø´Ù.
ÀÌ·ÐÀûÀÎ ¼³¸í¸¸ °è¼ÓµÇ¾î Áö·çÇÑ °¨ÀÌ ÀÖÀ» °ÍÀ̹ǷÎ, ½Ç½ÀÀ» ÇØ º¸ÀÚ.
...> debug <Enter>
- a <Enter>
????:0100 mov ah,
33 <Enter>
????:0102 mov cx,
ff8a <Enter>
????:0105 <Enter>
- u <Enter>
????:0100 B433 MOV
AH,33
????:0102 B98AFF MOV CX,FF8A
...............................
- q <Enter>
...>
¿öµå µ¥ÀÌÅÍ FF8A°¡ ¹ÙÀÌÆ® ´ÜÀ§·Î ³ôÀº ¹ÙÀÌÆ®ºÎÅÍ ÀúÀåµÇ¾ú±â ¶§¹®¿¡
±â°è¾î Äڵ忡¼´Â 8AFF·Î ³ªÅ¸³µ´Ù´Â »ç½ÇÀº ´Ù ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù.
¿ª¾î¼ÀºíÇÑ 2ÁÙÀÇ Á¦1¹ÙÀÌÆ®¸¦ 2Áø¼ö·Î ¹Ù²Ù°í 4, 1, 3ºñÆ®·Î ³ª´©¾î º¸ÀÚ.
????:0100 (1011 0 100) 33
MOV AH,33
????:0102 (1011 1 001) 8AFF
MOV CX,FF8A
OPÄÚµå
W REG
ÀÌ·¸°Ô ºÐ¼®ÇØ º¸´Ï ù ÁÙÀº ¹ÙÀÌÆ® µ¥ÀÌÅ͸¦ Ãë±ÞÇÏ°í µÑ° ÁÙÀº ¿öµå
µ¥ÀÌÅ͸¦ Ãë±ÞÇß´Ù´Â »ç½ÇÀÌ W ºñÆ®¿¡ ³ªÅ¸³ª ÀÖÀ½ÀÌ È®ÀεǾúÀ¸¸ç, ù ÁÙ¿¡¼´Â
·¹Áö½ºÅÍ AH¸¦ Ç¥½ÃÇÏ´Â 100(b)°¡ ÀԷµǾú°í µÑ° ÁÙ¿¡¼´Â ·¹Áö½ºÅÍ CX¸¦
Ç¥½ÃÇÏ´Â 001(b)°¡ ÀԷµǾî ÀÖÀ½À» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
6) Á¦6Çü½Ä
´ÙÀ½ Çü½ÄÀº Á¦5Çü½ÄÀÇ W ºñÆ®°¡ ¾ø¾îÁö°í, ±× ´ë½Å OP Äڵ尡 5ºñÆ®ÀÌ´Ù.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(5) + REG(3)
ÀÌ Çü½ÄÀº push, pop, xchg(exchange), inc(rement), dec(rement) ¸í·É
µî¿¡¼ »ç¿ëµÇ´Â ¸í·É ±¸¼ºÀÌ´Ù.
push, pop ¸í·ÉÀÇ ¿ÀÆÛ·£µå ·¹Áö½ºÅÍ´Â Ç×»ó ¿öµå°¡ µÈ´Ù. xchg, inc, dec ¸í·ÉÀº
¹ÙÀÌÆ® ¶Ç´Â ¿öµå ·¹Áö½ºÅ͸¦ ¿ÀÆÛ·£µå·Î ÃëÇÒ ¼ö ÀÖ´Ù.
7) Á¦7Çü½Ä
À̹ø Çü½ÄÀº ¼¼±×¸ÕÆ® ·¹Áö½ºÅ͸¦ ´Ù·ç´Â ¸í·É Çü½ÄÀÌ´Ù.
Á¦1¹ÙÀÌÆ® = OP ÄÚµå(3) + SEG(2) + (3)
ÀÌ Çü½ÄÀº push, pop, segment override prefix ¸í·É µî¿¡¼ »ç¿ëµÈ´Ù.
## ¹ßÀü Âü°í
segment override prefix ¸í·ÉÀº ¹°¸® ¹øÁö¸¦ »êÃâÇÒ ¶§ ±âº»(default)À¸·Î
ÁöÁ¤µÈ ¼¼±×¸ÕÆ® ÀÌ¿ÜÀÇ ¼¼±×¸ÕÆ® ·¹Áö½ºÅͰ¡ ¿ÀÇÁ¼Â°ú ÇÕÇØÁöµµ·Ï ÇÏ´Â
¸í·ÉÀ¸·Î µ¶¸³µÈ ¸í·ÉÀÌ ¾Æ´Ï¶ó ´Ù¸¥ ¸í·É¾î ¾Õ¿¡ ºÎ°¡µÇ´Â ¸í·É¾îÀ̱⠶§¹®¿¡
prefix ¸í·ÉÀ̶ó°í ÇÏ´Â °ÍÀÌ´Ù. ±× ¸í·ÉÀÇ ¿¹´Â µÚ¿¡ ¼³¸íÇÒ ±¸Ã¼ÀûÀÎ ¸í·É
ÇØ¼³À» Âü°íÇϱ⠹ٶõ´Ù.
4. ¸í·É¾î Á¦2¹ÙÀÌÆ® ÀÌÈÄÀÇ ÀÎÄÚµù
¸í·É¾îÀÇ Á¦2¹ÙÀÌÆ®´Â ÀϹÝÀûÀ¸·Î ¿ÀÆÛ·£µå¸¦ ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÈ´Ù.
¸í·É¾î Á¦1¹ÙÀÌÆ®¿¡´Â ´ÙÀ½°ú °°Àº 3°¡Áö Çü½ÄÀÌ ÀÖ´Ù.
Á¦1Çü½Ä = MOD(2) + REG(3) + R/M(3)
Á¦2Çü½Ä = MOD(2) + 0(1) + SEG(2) + R/M(3)
Á¦3Çü½Ä = MOD(2) + (3) + R/M(3)
1) MOD ¿µ¿ª
¿ÀÆÛ·£µå 2°³°¡ ¸ðµÎ ·¹Áö½ºÅÍÀÎÁö, ¿ÀÆÛ·£µå 1°³´Â ¸Þ¸ð¸®ÀÎÁö¸¦ Ç¥½ÃÇÑ´Ù.
MOD=11ÀÎ °æ¿ì¿¡¸¸ 2°³ÀÇ ¿ÀÆÛ·£µå°¡ ¸ðµÎ ·¹Áö½ºÅÍÀÌ´Ù.
MOD ¸ðµå
displacement
00 ¸Þ¸ð¸®
¸ðµå ¾øÀ½
01 ¸Þ¸ð¸®
¸ðµå 8ºñÆ®
10 ¸Þ¸ð¸®
¸ðµå 16ºñÆ®
11 ·¹Áö½ºÅÍ
¸ðµå ¾øÀ½
2) REG ¿µ¿ª
REG ¿µ¿ªÀº ÀϹÝÀûÀ¸·Î ¿ÀÆÛ·£µå Áß Çϳª·Î »ç¿ëµÇ´Â ·¹Áö½ºÅÍÀÇ Á¾·ù¸¦ Ç¥½ÃÇÏÁö¸¸,
immediate-to-memory ¸í·ÉÀÇ °æ¿ì¿¡´Â ¸í·ÉÀÇ ±â´ÉÀ» ³ªÅ¸³»´Â OP ÄÚµåÀÇ È®ÀåÀ¸·Î
»ç¿ëµÈ´Ù.
·¹Áö½ºÅÍ ¿µ¿ª 3ºñÆ®ÀÇ ÀÎÄÚµùÀº ´ÙÀ½°ú °°´Ù.
REG(3) 000 001
010 011 100 101 110
111
W=0 AL
CL DL BL AH
CH DH BH
W=1 AX
CX DX BX SP
BP SI DI
3) R/M ¿µ¿ª
R/M ¿µ¿ªÀÇ ±â´ÉÀº MOD ¿µ¿ª¿¡ ÀÇÁ¸ÇÑ´Ù.
Áï MOD=11ÀÎ °æ¿ì¿¡´Â R/MÀÌ µÎ ¹øÂ° ¿ÀÆÛ·£µåÀÎ ·¹Áö½ºÅÍÀÇ Á¾·ù¸¦ Ç¥½ÃÇÑ´Ù.
µû¶ó¼ ±×·± °æ¿ì¿¡´Â ´ÙÀ½°ú °°Àº Çü½ÄÀÌ µÉ °ÍÀÌ´Ù.
Á¦1Çü½Ä = MOD(2) + REG1(3) + R/M Áï REG2(3)
À§¿Í °°Àº °æ¿ì(MOD=11)¿¡ R/M °ªÀÌ Ç¥½ÃÇÏ´Â ·¹Áö½ºÅÍÀÇ Á¾·ù´Â
¾Õ Ç׸ñ(REG ¿µ¿ª)¿¡¼ Á¦½ÃÇÑ ·¹Áö½ºÅÍ ¿µ¿ª ÀÎÄÚµùÀ» Âü°íÇϱ⠹ٶõ´Ù.
±× ÀÌ¿ÜÀÇ °æ¿ì, Áï MOD°¡ 00, 01, 10ÀÎ °æ¿ì¿¡´Â ´ÙÀ½°ú °°ÀÌ ½ÇÈ¿
¹øÁö(EA, Effective Address)¸¦ °è»êÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³»´Â µ¥ »ç¿ëµÈ´Ù.
R/M MOD=00
MOD=01 MOD=10
000 [BX+SI]
[BX+SI+disp8] [BX+SI+disp16]
001 [BX+DI]
[BX+DI+disp8] [BX+DI+disp16]
010 [BP+SI]
[BP+SI+disp8] [BP+SI+disp16]
011 [BP+DI]
[BP+DI+disp8] [BP+DI+disp16]
100 [SI]
[SI+disp8]
[SI+disp16]
101 [DI]
[DI+disp8]
[DI+disp16]
110 Á÷Á¢¹øÁöÁöÁ¤
[BP+disp8] [BP+disp16]
111 [BX]
[BX+disp8]
[BX+disp16]
MOD=00ÀÇ °æ¿ì¸¸ ¾Ë¸é MOD=01, MOD=10ÀÇ °æ¿ì´Â ½±°Ô ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
4) ¸í·É¾î Á¦3 ³»Áö Á¦4¹ÙÀÌÆ®
¸í·É¾îÀÇ Á¦3,4¹ÙÀÌÆ®´Â ¸Þ¸ð¸® ¹øÁöÁöÁ¤À» À§ÇÑ displacement ¶Ç´Â immediate
data·Î »ç¿ëµÈ´Ù.
displacement·Î¼´Â 8ºñÆ® ¶Ç´Â 16ºñÆ® ¸ðµÎ »ç¿ëµÉ ¼ö ÀÖÁö¸¸, ¾î¼Àºí·¯´Â
°¡´ÉÇϸé 8ºñÆ®·Î ¹ø¿ªÇÏ°í ºÎµæÀÌÇÑ °æ¿ì¿¡¸¸ 16ºñÆ®·Î ¹ø¿ªÇϵµ·Ï µÇ¾î ÀÖÀ¸¸ç,
À̸¦ Á¦2¹ÙÀÌÆ®ÀÇ MOD ¿µ¿ª¿¡µµ Ç¥½ÃÇÑ´Ù.
immediate data´Â ¾î¼Àºí¸® ¸í·É¿¡ µû¶ó 8ºñÆ® ¶Ç´Â 16ºñÆ®·Î °áÁ¤µÇ¸ç,
À̸¦Á¦1¹ÙÀÌÆ®ÀÇ W ¿µ¿ª¿¡µµ Ç¥½ÃÇÑ´Ù.
displacement ¶Ç´Â immediate data°¡ 16ºñÆ®ÀÏ °æ¿ì¿¡´Â ¸Þ¸ð¸® »ó¿¡¼ Ç×»ó ¿ª¿öµå(æ½word)
¼ø¼·Î ¹è¿ ÀúÀåµÈ´Ù.
## Ȱ¿ë ÆÁ
¿ª¿öµå ¼ø¼¶õ ¿öµåÀÇ »óÀ§ ¹ÙÀÌÆ®°¡ ¸Þ¸ð¸®»óÀÇ ³ôÀº ¹øÁö¿¡ ÀúÀåµÇ´Â ¸ð¾çÀ¸·Î,
¾Õ¿¡¼ º» ????:0102 B98AFF MOV CX,FF8AÀÇ ¿¹¿Í °°´Ù.
5) ¸í·É¾î Á¦5 ³»Áö Á¦6¹ÙÀÌÆ®
¸í·É¾îÀÇ Á¦5,6¹ÙÀÌÆ®´Â 8ºñÆ® ¶Ç´Â 16ºñÆ® immediate data·Î »ç¿ëµÈ´Ù.
ÀÎÄÚµù ¹æ¹ýÀº Á¦3,4¹ÙÀÌÆ®¿¡¼ ¼³¸íÇÑ °Í°ú °°´Ù.
Á¦ 2 Àý ¸í·É¾îÀÇ Á¾·ù
ÀÎÅÚ 8088/8086 ¸í·É¾î ¼¼Æ®¸¦ ±â´Éº°·Î ºÐ·ùÇØ º¸¸é ´ÙÀ½°ú °°´Ù.
µ¥ÀÌÅÍ Àü¼Û ¸í·É
»ê¼ú ¿¬»ê ¸í·É
ºñÆ® Á¶ÀÛ ¸í·É
½ºÆ®¸µ ¸í·É
ÇÁ·Î±×·¥ Àü¼Û ¸í·É
ÇÁ·Î¼¼¼ Á¦¾î ¸í·É
°¢ Á¾·ù¿¡ ¾î¶² ¸í·ÉÀÌ ÀÖ´ÂÁö ¾Ë¾Æ º¸ÀÚ.
1. µ¥ÀÌÅÍ Àü¼Û ¸í·É
¹ü¿ë µ¥ÀÌÅÍ Àü¼Û : MOV, XCHG, PUSH,
POP, XLAT
ÀÔÃâ·Â :
IN, OUT
¾îµå·¹½º Àü¼Û :
LEA, LDS, LES
Ç÷¡±× Àü¼Û :
LAHF, SAHF, PUSHF, POPF
2. »ê¼ú ¿¬»ê ¸í·É
°¡»ê :
ADD, ADC, INC, AAA, DAA
°¨»ê :
SUB, SBB, DEC, NEG, CMP, AAS, DAS
½Â»ê :
MUL, IMUL, AAM
Á¦»ê :
DIV, IDIV, AAD, CBW, CWD
3. ºñÆ® Á¶ÀÛ ¸í·É
³í¸® ¿¬»ê :
NOT, AND, OR, XOR, TEST
ºñÆ® À̵¿ :
SHL/SAL, SHR, SAR
ºñÆ® ȸÀü :
ROL, ROR, RCL, RCR
4. ½ºÆ®¸µ ¸í·É
Repeat Prefix :
REP, REPE/REPZ, REPNE/REPNZ
ºí·Ï µ¥ÀÌÅÍ Ã³¸® : MOVSB/MOVSW,
CMPSB/CMPSW, SCASB/SCASW,
LODSB/LODSW,
STOSB/STOSW
5. ÇÁ·Î±×·¥ Àü¼Û ¸í·É
¹«Á¶°Ç Àü¼Û : JMP, CALL, RET
Á¶°ÇºÎ Àü¼Û : JA/JNBE, JAE/JNB, JB/JNAE, JBE/JNA,
JC, JE/JZ,
JG/JNLE,
JGE/JNL, JL/JNGE, JLE/JNG, JNC, JNE/JNZ,
JNO,
JNP/JPO, JNS, JO, JP/JPE, JS
¹Ýº¹ Á¦¾î : LOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZ,
JCXZ
ÀÎÅÍ·´Æ® : INT, INTO, IRET
6. ÇÁ·Î¼¼¼ Á¦¾î ¸í·É
Ç÷¡±× Á¦¾î :
STC, CLC, CMC, STD, CLD, STI, CLI
¿ÜºÎ µ¿±â Á¦¾î : HLT,
WAIT, ESC, LOCK
No Operation :
NOP
Á¦ 3 Àý ¸í·É¾î »öÀÎ
ÇÊÀÚ°¡ ¾î¼Àºí¸® Âü°í¼¸¦ º¸¸é¼ °¡Àå ¾î·Æ°Ô ´À²¼´ø ºÎºÐÀÌ ¾î¶² ¸í·É¾î¸¦ ã¾Æ
º¸°í ½ÍÀ» ¶§ »öÀÎÀÌ ¾ø´Â Á¡À̾ú´Ù. º»¹® ¼³¸íÀº ´ë°³ ¸í·É¾îÀÇ ¿ëµµ¿¡ µû¶ó
ÃǰèÀûÀ¸·Î ÁøÇàÇÏ¸é¼ Ã¥ µÚ³ª ¾îµð¿¡µµ »öÀÎÀÌ ¾ø´Â Âü°í¼´Â ¹«Á¶°Ç ¼ø¼´ë·Î
°øºÎÇϵçÁö ¾î·µç ¾î´À Á¤µµ À±°ûÀ» Àâ°í ³ ÈÄ¿¡¶ó¾ß ¼ö½Ã·Î ±Ã±ÝÇÑ ºÎºÐÀ»
ã¾Æ º¼ Á¤µµÀÇ ÈûÀÌ »ý±â´Âµ¥, ¸¹Àº »ç¶÷Àº ±× Á¤µµÀÇ ÈûÀÌ »ý±â±â ÀÌÀü¿¡
ÀÌ¹Ì ÁöÃļ Çì¸ÅÁö ¾ÊÀ»±î ¿°·ÁµÈ´Ù.
ÇÊÀÚ´Â ¾Æ¿¹ 8088 ¸í·É¾î¸¦ ABC ¼ø¼·Î ÇØ¼³Çϱâ·Î ÇÑ´Ù.
µ¿½Ã¿¡ »öÀÎÀ¸·Î °¢ ¸í·É¾î°¡ ¾î¶² ºÐ·ù¿¡ ¼ÓÇÏ´ÂÁö¸¦ ¿¬°á½ÃÄÑ µÎ°Ú´Ù.
¸ÕÀú ¸í·É¾î À̸§¸¸À¸·Î »öÀÎÀ» Á¦°øÇϰí, ÀÌ¾î¼ °¢ ¸í·ÉÀÌ ¾î¶² ¸í·É
Á¾·ùÀÇ ¾î¶² ±×·ì¿¡ ¼ÓÇÏ´ÂÁö¸¦ ¸í½ÃÇÑ ´Ù¸¥ »öÀÎÀ» Á¦°øÇÑ´Ù.
<
¸í·É À̸§ »öÀÎ >
1. AAA 2. AAD
3. AAM 4.
AAS
5. ADC 6. ADD
7. AND 8.
CALL
9. CBW 10. CLC
11. CLD 12.
CLI
13. CMC 14. CMP
15. CMPSB 16. CMPSW
17. CWD 18. DAA
19. DAS 20.
DEC
21. DIV 22. ESC
23. HLT 24.
IDIV
25. IMUL 26. IN
27. INC 28.
INT
29. INTO 30. IRET
31. JA 32.
JAE
33. JB 34. JBE
35. JC 36.
JCXZ
37. JE 38. JG
39. JGE 40.
JL
41. JLE 42. JMP
43. JNA 44.
JNAE
45. JNB 46. JNBE
47. JNC 48.
JNE
49. JNG 50. JNGE
51. JNL 52.
JNLE
53. JNO 54. JNP
55. JNS 56.
JNZ
57. JO 58. JP
59. JPE 60.
JPO
61. JS 62. JZ
63. LAHF 64.
LDS
65. LEA 66. LES
67. LOCK 68.
LODSB
69. LODSW 70. LOOP
71. LOOPE 72. LOOPNE
73. LOOPNZ 74. LOOPZ
75. MOV 76. MOVSB
77. MOVSW 78. MUL
79. NEG 80.
NOP
81. NOT 82. OR
83. OUT 84.
POP
85. POPF 86. PUSH
87. PUSHF 88. RCL
89. RCR 90. REP
91. REPE 92.
REPNE
93. REPNZ 94. REPZ
95. RET 96.
ROL
97. ROR 98. SAHF
99. SAL 100.
SAR
101.SBB 102. SCASB
103. SCASW 104. SHL
105.SHR 106. STC
107. STD 108.
STI
109.STOSB 110. STOSW
111. SUB 112. TEST
113.WAIT 114. XCHG
115. XLAT 116. XOR
´ÙÀ½¿¡ ¼Ò°³ÇÒ ¸í·É ºÐ·ù »öÀÎÀº ´ÙÀ½ Àý(¸í·É¾î »ç¿ë¹ý ¿ä¾à)ÀÇ ³»¿ëÀ» Âü°íÇÒ
Çʿ䰡 ÀÖÀ» ¶§ ½±°Ô ã¾Æ º¼ ¼ö ÀÖµµ·Ï µµ¿òÀ» ÁÙ °ÍÀÌ´Ù.
<¸í·É
ºÐ·ù »öÀÎ>
1. AAA 21(»ê¼ú ¿¬»ê
¸í·É-°¡»ê)
2. AAD 24(»ê¼ú ¿¬»ê
¸í·É-Á¦»ê)
3. AAM 23(»ê¼ú ¿¬»ê
¸í·É-½Â»ê)
4. AAS 22(»ê¼ú ¿¬»ê
¸í·É-°¨»ê)
5. ADC 21(»ê¼ú ¿¬»ê
¸í·É-°¡»ê)
6. ADD 21(»ê¼ú ¿¬»ê
¸í·É-°¡»ê)
7. AND 31(ºñÆ® Á¶ÀÛ
¸í·É-³í¸® ¿¬»ê)
8. CALL 51(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-¹«Á¶°Ç Àü¼Û)
9. CBW 24(»ê¼ú ¿¬»ê
¸í·É-Á¦»ê)
10. CLC 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
11. CLD 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
12. CLI 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
13. CMC 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
14. CMP 22(»ê¼ú ¿¬»ê ¸í·É-°¨»ê)
15. CMPSB 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
16. CMPSW 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
17. CWD 24(»ê¼ú ¿¬»ê ¸í·É-Á¦»ê)
18. DAA 21(»ê¼ú ¿¬»ê ¸í·É-°¡»ê)
19. DAS 22(»ê¼ú ¿¬»ê ¸í·É-°¨»ê)
20. DEC 22(»ê¼ú ¿¬»ê ¸í·É-°¨»ê)
21. DIV 24(»ê¼ú ¿¬»ê ¸í·É-Á¦»ê)
22. ESC 62(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-¿ÜºÎ µ¿±â Á¦¾î)
23. HLT 62(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-¿ÜºÎ µ¿±â Á¦¾î)
24. IDIV 24(»ê¼ú ¿¬»ê ¸í·É-Á¦»ê)
25. IMUL 23(»ê¼ú ¿¬»ê ¸í·É-½Â»ê)
26. IN 12(µ¥ÀÌÅÍ Àü¼Û
¸í·É-ÀÔÃâ·Â)
27. INC 21(»ê¼ú ¿¬»ê ¸í·É-°¡»ê)
28. INT 54(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-ÀÎÅÍ·´Æ®)
29. INTO 54(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-ÀÎÅÍ·´Æ®)
30. IRET 54(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-ÀÎÅÍ·´Æ®)
31. JA 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
32. JAE 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
33. JB 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
34. JBE 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
35. JC 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
36. JCXZ 53(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-¹Ýº¹
Á¦¾î)
37. JE 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
38. JG 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
39. JGE 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
40. JL 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
41. JLE 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
42. JMP 51(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-¹«Á¶°Ç Àü¼Û)
43. JNA 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
44. JNAE 52(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-Á¶°ÇºÎ
Àü¼Û)
45. JNB 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
46. JNBE 52(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-Á¶°ÇºÎ
Àü¼Û)
47. JNC 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
48. JNE 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
49. JNG 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
50. JNGE 52(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-Á¶°ÇºÎ
Àü¼Û)
51. JNL 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
52. JNLE 52(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-Á¶°ÇºÎ
Àü¼Û)
53. JNO 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
54. JNP 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
55. JNS 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
56. JNZ 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
57. JO 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
58. JP 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
59. JPE 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
60. JPO 52(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-Á¶°ÇºÎ Àü¼Û)
61. JS 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
62. JZ 52(ÇÁ·Î±×·¥
Àü¼Û ¸í·É-Á¶°ÇºÎ Àü¼Û)
63. LAHF 14(µ¥ÀÌÅÍ Àü¼Û ¸í·É-Ç÷¡±×
Àü¼Û)
64. LDS 13(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¾îµå·¹½º
Àü¼Û)
65. LEA 13(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¾îµå·¹½º
Àü¼Û)
66. LES 13(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¾îµå·¹½º
Àü¼Û)
67. LOCK 62(ÇÁ·Î¼¼¼ Á¦¾î ¸í·É-¿ÜºÎ
µ¿±â Á¦¾î)
68. LODSB 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
69. LODSW 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
70. LOOP 53(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-¹Ýº¹
Á¦¾î)
71. LOOPE 53(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-¹Ýº¹
Á¦¾î)
72. LOOPNE 53(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-¹Ýº¹ Á¦¾î)
73. LOOPNZ 53(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-¹Ýº¹ Á¦¾î)
74. LOOPZ 53(ÇÁ·Î±×·¥ Àü¼Û ¸í·É-¹Ýº¹
Á¦¾î)
75. MOV 11(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¹ü¿ë
µ¥ÀÌÅÍ Àü¼Û)
76. MOVSB 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
77. MOVSW 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
78. MUL 23(»ê¼ú ¿¬»ê ¸í·É-½Â»ê)
79. NEG 22(»ê¼ú ¿¬»ê ¸í·É-°¨»ê)
80. NOP 63(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-No Operation)
81. NOT 31(ºñÆ® Á¶ÀÛ ¸í·É-³í¸®
¿¬»ê)
82. OR 31(ºñÆ® Á¶ÀÛ
¸í·É-³í¸® ¿¬»ê)
83. OUT 12(µ¥ÀÌÅÍ Àü¼Û ¸í·É-ÀÔÃâ·Â)
84. POP 11(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¹ü¿ë
µ¥ÀÌÅÍ Àü¼Û)
85. POPF 14(µ¥ÀÌÅÍ Àü¼Û ¸í·É-Ç÷¡±×
Àü¼Û)
86. PUSH 11(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¹ü¿ë
µ¥ÀÌÅÍ Àü¼Û)
87. PUSHF 14(µ¥ÀÌÅÍ Àü¼Û ¸í·É-Ç÷¡±×
Àü¼Û)
88. RCL 33(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
ȸÀü)
89. RCR 33(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
ȸÀü)
90. REP 41(½ºÆ®¸µ ¸í·É-Repeat
Prefix)
91. REPE 41(½ºÆ®¸µ ¸í·É-Repeat
Prefix)
92. REPNE 41(½ºÆ®¸µ ¸í·É-Repeat Prefix)
93. REPNZ 41(½ºÆ®¸µ ¸í·É-Repeat Prefix)
94. REPZ 41(½ºÆ®¸µ ¸í·É-Repeat
Prefix)
95. RET 51(ÇÁ·Î±×·¥ Àü¼Û
¸í·É-¹«Á¶°Ç Àü¼Û)
96. ROL 33(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
ȸÀü)
97. ROR 33(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
ȸÀü)
98. SAHF 14(µ¥ÀÌÅÍ Àü¼Û ¸í·É-Ç÷¡±×
Àü¼Û)
99. SAL 32(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
À̵¿)
100.SAR 32(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
À̵¿)
101.SBB 22(»ê¼ú ¿¬»ê ¸í·É-°¨»ê)
102.SCASB 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
103.SCASW 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
104.SHL 32(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
À̵¿)
105.SHR 32(ºñÆ® Á¶ÀÛ ¸í·É-ºñÆ®
À̵¿)
106.STC 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
107.STD 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
108.STI 61(ÇÁ·Î¼¼¼ Á¦¾î
¸í·É-Ç÷¡±× Á¦¾î)
109.STOSB 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
110.STOSW 42(½ºÆ®¸µ ¸í·É-ºí·Ï µ¥ÀÌÅÍ
ó¸®)
111.SUB 22(»ê¼ú ¿¬»ê ¸í·É-°¨»ê)
112.TEST 31(ºñÆ® Á¶ÀÛ ¸í·É-³í¸®
¿¬»ê)
113.WAIT 62(ÇÁ·Î¼¼¼ Á¦¾î ¸í·É-¿ÜºÎ
µ¿±â Á¦¾î)
114.XCHG 11(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¹ü¿ë
µ¥ÀÌÅÍ Àü¼Û)
115.XLAT 11(µ¥ÀÌÅÍ Àü¼Û ¸í·É-¹ü¿ë
µ¥ÀÌÅÍ Àü¼Û)
116.XOR 31(ºñÆ® Á¶ÀÛ ¸í·É-³í¸®
¿¬»ê)
Á¦ 4 Àý ¸í·É¾î »ç¿ë¹ý ¿ä¾à
´ÙÀ½ ÀåÀ¸·ÎºÎÅÍ 8088 ¸í·É¾î¸¦ ABC ¼ø¼·Î ÇØ¼³Çϱâ·Î ÇÑ´Ù.
±×·¯³ª ¸í·É¾î »ç¿ë¹ýÀ» ¾î´À Á¤µµ ¾Ë°í ³ª¸é, °¡²û ¾î¶² ¿ëµµ¿¡ »ç¿ëÇÒ
¼ö ÀÖ´Â ¸í·É¾îÀÇ À̸§ÀÌ »ý°¢³ªÁö ¾Ê¾Æ¼ ã¾Æ º¸±â ¾î·Á¿î °æ¿ìµµ ÀÖÀ» °ÍÀÌ´Ù.
±× ¶§ ÀÌ ÀýÀÇ ¸í·É¾î »ç¿ë¹ý ¿ä¾à ¼³¸íÀ» Âü°íÇÏ¸é ½Ã°£À» ¾Æ³¥ ¼ö ÀÖ´Ù.
ÀÌÇÏ °¢ ¸í·É¾îÀÇ ¿ÀÆÛ·£µå ¾à¾îÀÇ ¶æÀº ´ÙÀ½°ú °°´Ù.
acc(accumulator) : ¾îÅ¥¹Ä·¹ÀÌÆ®¸¦
ÅëĪÇÔ, °æ¿ì¿¡ µû¶ó AL, AX
count : Ä«¿îÅÍ(counter),
°æ¿ì¿¡ µû¶ó 1 ¶Ç´Â CL ·¹Áö½ºÅÍ
d(destination) : ¸ñÀû
¿ÀÆÛ·£µå(operand)¸¦ ÅëĪÇÔ
disp8 : 8ºñÆ®
displacement
disp16 : 16ºñÆ® displacement
imm8 :
8ºñÆ® ÁïÄ¡(immediate) µ¥ÀÌÅÍ
imm16 : 16ºñÆ®
ÁïÄ¡(immediate) µ¥ÀÌÅÍ
label : ½ÇÇàÀÌ
³Ñ¾î°¥ Ç¥Àû(target)ÀÌ µÇ´Â Ç¥Áö(label)
mem8 :
8ºñÆ® µ¥ÀÌÅͰ¡ ÀúÀåµÈ ¸Þ¸ð¸® À§Ä¡(location)
mem16 : 16ºñÆ®
µ¥ÀÌÅͰ¡ ÀúÀåµÈ ¸Þ¸ð¸® À§Ä¡(location)
mem32 : 32ºñÆ®
µ¥ÀÌÅͰ¡ ÀúÀåµÈ ¸Þ¸ð¸® À§Ä¡(location)
operation : ¾î¼Àºí¸® ¸í·ÉÀÇ mnemonic
code
port :
ÀÔÃâ·Â Æ÷Æ®(I/O port)
reg8 :
8ºñÆ® ¹ü¿ë µ¥ÀÌÅÍ ·¹Áö½ºÅÍ(AH,AL,BH,BL,CH,CL,DH,DL)
reg16 : 16ºñÆ®
¹ü¿ë ·¹Áö½ºÅÍ(AX,BX,CX,DX,SP,BP,SI,DI)
s(source) : ¿øº»(source) ¿ÀÆÛ·£µå¸¦ ÅëĪÇÔ
seg :
¼¼±×¸ÕÆ® ·¹Áö½ºÅÍ
type :
¼ÒÇÁÆ®¿þ¾î ÀÎÅÍ·´Æ®ÀÇ Å¸ÀÔ(00h ³»Áö FFh)
ÀÔÃâ·Â Æ÷Æ® Ç¥½Ã¿¡´Â 8ºñÆ® ÁïÄ¡ µ¥ÀÌÅÍ ¶Ç´Â DX ·¹Áö½ºÅͰ¡ »ç¿ëµÈ´Ù.
¿ÀÆÛ·¹ÀÌ¼Ç ¸í·ÉÀÇ ´Ï¸ð´Ð ÄÚµå·Î prefix ¸í·É¿¡¼´Â 8088/8086ÀÇ ¸í·ÉÀ»
»ç¿ëÇϰí, ESC ¸í·É¿¡¼´Â 8087/8089ÀÇ ¸í·ÉÀ» »ç¿ëÇÑ´Ù.
·¹À̺í(label)Àº call, jmp, loop µî ¸í·ÉÀÇ Ç¥Àû(target)ÀÌ µÈ´Ù.
dssp8, disp16Àº Çü½ÄÀ¸·Î º¸¸é ·¹À̺íÀÌÁö¸¸ ±â°è¾î ÄÚµå·Î´Â 8ºñÆ®/16ºñÆ® ÁïÄ¡
µ¥ÀÌÅͰ¡ µÇ¾î 2ÀÇ º¸¼ö(2's complement)·Î Ç¥ÇöµÇ¾î -128 ³»Áö +127/-32768 ³»Áö
+32767 ¹üÀ§ÀÇ °ªÀ» °¡Áö°Ô µÈ´Ù.
¾à¾î¸¦ ¾Ë ¼ö ¾øÀ¸¸é ABC ¼ø¼·Î »¡¸® ã¾Æ º¸°í Âü°íÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
1. µ¥ÀÌÅÍ Àü¼Û ¸í·É
8088ÀÇ µ¥ÀÌÅÍ Àü¼Û ¸í·É(Data Transfer Instruction)Àº ·¹Áö½ºÅÍ, ¸Þ¸ð¸®, I/O
Æ÷Æ®(port) »çÀÌ¿¡¼ µ¥ÀÌÅ͸¦ Àü¼ÛÇϱâ À§ÇÑ ¸í·ÉÀ¸·Î 14°³°¡ ÀÖ´Ù.
1) ¹ü¿ë µ¥ÀÌÅÍ Àü¼Û ¸í·É(General Purpose Data Transfer)
MOV d,s : sÀÇ ¹ÙÀÌÆ®³ª ¿öµå¸¦
d·Î Àü¼Û(º¹»ç)
XCHG d,s : s¿Í dÀÇ ¹ÙÀÌÆ®, ¶Ç´Â
s¿Í dÀÇ ¿öµå¸¦ ¸Â¹Ù²Þ(±³È¯)
PUSH s : ¿öµå ÁÖ¼Ò¸¦
½ºÅÿ¡ ÀúÀå
POP d : ½ºÅÿ¡
ÀúÀåµÈ ¿öµå ÁÖ¼Ò¸¦ º¹±¸
XLAT :
(BX+AL)·Î Ç¥½ÃµÇ´Â ¸Þ¸ð¸® ¹øÁöÀÇ ³»¿ëÀ» AL·Î Àü¼Û
## Ȱ¿ë ÆÁ
push, pop ¸í·ÉÀº Ç×»ó ¿öµå(16ºñÆ®) µ¥ÀÌÅ͸¸À» ÀúÀå, º¹±¸ÇÑ´Ù. Ç÷¡±×
·¹Áö½ºÅÍÀÇ ÀúÀå°ú º¹±¸´Â Ç÷¡±× Àü¼Û ¸í·ÉÀ» Âü°íÇ϶ó.
2) ÀÔÃâ·Â ¸í·É(Input/Output)
IN acc,port :
ÁöÁ¤µÈ Æ÷Æ®¿¡¼ ¹ÙÀÌÆ®/¿öµå µ¥ÀÌÅ͸¦ AX¿¡ Àü¼Û
OUT port,acc :
AL/AXÀÇ ¹ÙÀÌÆ®/¿öµå µ¥ÀÌÅ͸¦ ÁöÁ¤µÈ Æ÷Æ®·Î Ãâ·Â
3) ¾îµå·¹½º Àü¼Û ¸í·É(Address Object Transfer)
LEA reg16,s(mem16)
: sÀÇ EA(¿ÀÇÁ¼Â, À¯È¿ ÁÖ¼Ò)¸¦
·¹Áö½ºÅÍ·Î Àü¼Û
LDS reg16,s(mem32)
: sÀÇ 32ºñÆ® µ¥ÀÌÅÍ Áß
ÇÏÀ§ ¿öµå´Â reg16À¸·Î ÁöÁ¤µÈ 16ºñÆ® ·¹Áö½º
ÅÍ·Î Àü¼ÛÇϰí,
»óÀ§ ¿öµå´Â DS ·¹Áö½ºÅÍ·Î Àü¼Û
LES reg16,s(mem32)
: sÀÇ 32ºñÆ® µ¥ÀÌÅÍ Áß
ÇÏÀ§ ¿öµå´Â reg16À¸·Î ÁöÁ¤µÈ 16ºñÆ® ·¹Áö½º
ÅÍ·Î Àü¼ÛÇϰí,
»óÀ§ ¿öµå´Â ES ·¹Áö½ºÅÍ·Î Àü¼Û
4) Ç÷¡±× Àü¼Û ¸í·É(Flag Transfer)
LAHF : Ç÷¡±×ÀÇ ÇÏÀ§ ¹ÙÀÌÆ®¸¦ AH ·¹Áö½ºÅÍ·Î Àü¼Û
SAHF : AH ·¹Áö½ºÅÍ µ¥ÀÌÅ͸¦ Ç÷¡±×ÀÇ ÇÏÀ§ ¹ÙÀÌÆ®¿¡ ÀúÀå
PUSHF : Ç÷¡±× ·¹Áö½ºÅÍ µ¥ÀÌÅ͸¦ ½ºÅÿ¡ ÀúÀå
POPF : ½ºÅà µ¥ÀÌÅ͸¦ Ç÷¡±× ·¹Áö½ºÅÍ·Î º¹±¸
2. »ê¼ú ¿¬»ê ¸í·É
8088ÀÇ »ê¼ú ¿¬»ê ¸í·É(Arithmetic Instruction)¿¡´Â µ¡¼À, »¬¼À, °ö¼À, ³ª´°¼À
ÀÇ »çÄ¢¿¬»êÀ» ¼öÇàÇϱâ À§ÇÑ 20°³ÀÇ ¸í·ÉÀÌ ÀÖ´Ù.
1) °¡»ê ¸í·É(Addition)
ADD d,s : ¹ÙÀÌÆ®/¿öµå ´ÜÀ§·Î
(d+s)¸¦ d¿¡ ÀúÀå
ADC d,s : ¹ÙÀÌÆ®/¿öµå ´ÜÀ§·Î
(d+s+CF)¸¦ d¿¡ ÀúÀå
INC d : ¹ÙÀÌÆ®/¿öµå
µ¥ÀÌÅ͸¦ 1¸¸Å Áõ°¡½ÃÅ´
AAA :
ALÀ» unpacked BCD·Î º¯È¯
DAA :
ALÀ» packed BCD·Î º¯È¯
## Ȱ¿ë ÆÁ
ij¸® Ç÷¡±×´Â 0,1 Áß ÇϳªÀ̹ǷΠadc ¸í·ÉÀÇ °á°ú´Â add ¸í·ÉÀÇ °á°ú¿Í
°°°Å³ª 1¸¸Å Â÷À̰¡ ³¯ °ÍÀÌ´Ù.
2) °¨»ê ¸í·É(Subtraction)
SUB d,s : ¹ÙÀÌÆ®/¿öµå ´ÜÀ§·Î
(d-s)¸¦ d¿¡ ÀúÀå
SBB d,s : ¹ÙÀÌÆ®/¿öµå ´ÜÀ§·Î
(d-s-CF)¸¦ d¿¡ ÀúÀå
DEC d : ¹ÙÀÌÆ®/¿öµå
µ¥ÀÌÅ͸¦ 1¸¸Å °¨¼Ò
NEG d : 2ÀÇ º¸¼ö
°è»ê(0-d)À¸·Î ºÎÈ£ ÀÖ´Â ¼öÀÇ ºÎÈ£¸¦ ¹Ù²Û´Ù
CMP d,s : (d-s)ÀÇ °è»ê °á°ú
»óŸ¸À» Ç÷¡±× ·¹Áö½ºÅÍ¿¡ ÀúÀå
AAS :
ALÀ» Þª¹ÐÁýÇü(unpacked) BCD·Î º¯È¯
DAS :
ALÀ» ÚËó¢û¡(packed) BCD·Î º¯È¯
cmp ¸í·ÉÀº »ê¼úÀû ºñ±³¿¡ ¾²À̸ç, ³í¸®Àû ºñ±³ ¸í·ÉÀº testÀÌ´Ù.
## Ȱ¿ë ÆÁ
ij¸® Ç÷¡±×´Â 0,1 Áß ÇϳªÀ̹ǷΠsbb ¸í·ÉÀÇ °á°ú´Â sub ¸í·ÉÀÇ °á°ú¿Í
°°°Å³ª 1¸¸Å Â÷À̰¡ ³¯ °ÍÀÌ´Ù.
3) ½Â»ê ¸í·É(Multiplication)
MUL s : ¾îÅ¥¹Ä·¹ÀÌÅÍ¿Í
¼Ò½º¸¦ ºÎÈ£ ¾ø´Â ¼ö·Î °£ÁÖÇÏ°í °öÇÑ´Ù.
IMUL s : ¾îÅ¥¹Ä·¹ÀÌÅÍ¿Í
¼Ò½º¸¦ ºÎÈ£ ÀÖ´Â ¼ö·Î °£ÁÖÇÏ°í °öÇÑ´Ù.
AAM :
ALÀ» unpacked BCD·Î º¯È¯
## Ȱ¿ë ÆÁ
mul, imul ¸í·É¿¡¼ ¹ÙÀÌÆ® ´ÜÀ§ÀÇ °ö¼ÀÀº AL*source=AX(AH,AL)°ú °°ÀÌ °ö¼À
°á°ú°¡ AX ·¹Áö½ºÅÍ¿¡ ÀúÀåµÇ°í, ¿öµå ´ÜÀ§ÀÇ °ö¼ÀÀº AX*sourceÀÇ °á°ú °ªÀ»
DX, AX ·¹Áö½ºÅÍ¿¡ ÀúÀåÇÏ°Ô µÈ´Ù.
4) Á¦»ê ¸í·É(Division)
DIV s : ¾îÅ¥¹Ä·¹ÀÌÅÍ¿¡¼
¼Ò½º¸¦ ºÎÈ£ ¾ø´Â ¼ö·Î °£ÁÖÇÏ°í ³ª´«´Ù.
IDIV s : ¾îÅ¥¹Ä·¹ÀÌÅÍ¿¡¼
¼Ò½º¸¦ ºÎÈ£ ÀÖ´Â ¼ö·Î °£ÁÖÇÏ°í ³ª´«´Ù.
AAD :
AXÀÇ unpacked BCD µ¥ÀÌÅ͸¦ 2Áø¼ö·Î º¯È¯ÇÏ¿© AL¿¡ ÀúÀå
CBW :
AL ·¹Áö½ºÅÍÀÇ ¹ÙÀÌÆ® µ¥ÀÌÅ͸¦ AX ¿öµå µ¥ÀÌÅÍ·Î È®Àå
CWD :
AX ¿öµå µ¥ÀÌÅ͸¦ DX:AX ´õºí ¿öµå µ¥ÀÌÅÍ·Î È®Àå
3. ºñÆ® Á¶ÀÛ ¸í·É
8088ÀÇ ºñÆ® Á¶ÀÛ ¸í·É(Bit Manipulation Instruction)Àº ³í¸® ¿¬»ê ¸í·É, ºñÆ®
À̵¿(½ÃÇÁÆ®) ¸í·É, ºñÆ® ȸÀü(·ÎÅ×ÀÌÆ®) ¸í·É µî 12°³°¡ ÀÖ´Ù.
1) ³í¸® ¿¬»ê ¸í·É(Logical)
NOT d : °¢ ºñÆ®ÀÇ
1Àº 0À¸·Î, 0Àº 1·Î ¹Ù²Ù¾î 1ÀÇ º¸¼ö¸¦ ¸¸µç´Ù.
AND d,s : (d and s) Áï ³í¸®°ö(and)À»
±¸ÇÏ¿© d¿¡ ÀúÀå
OR d,s : (d or s) Áï
³í¸®ÇÕ(or)À» ±¸ÇÏ¿© d¿¡ ÀúÀå
XOR d,s : (d xor s) Áï ¹èŸÀû
³í¸®ÇÕ(xor)À» ±¸ÇÏ¿© d¿¡ ÀúÀå
TEST d,s : ³í¸®°ö(d and s)ÀÇ °á°ú
»óŸ¸À» Ç÷¡±× ·¹Áö½ºÅÍ¿¡ ÀúÀå
2) ºñÆ® À̵¿ ¸í·É(Shift)
SHL d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿ÞÂÊÀ¸·Î À̵¿
SAL d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿ÞÂÊÀ¸·Î À̵¿
SHR d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿À¸¥ÂÊÀ¸·Î À̵¿
SAR d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿À¸¥ÂÊÀ¸·Î À̵¿
## Ȱ¿ë ÆÁ
¿ÞÂÊ ½ÃÇÁÆ® ¸í·ÉÀº µÑ ´Ù ºÎÈ£¸¦ °í·ÁÇÏÁö ¾ÊÀ¸¹Ç·Î shl ¸í·É°ú
sal ¸í·ÉÀº ÀüÇô µ¿ÀÏÇÏ´Ù. ±×·¯³ª, ¿À¸¥ÂÊ ½ÃÇÁÆ® ¸í·É Áß¿¡¼ shr ¸í·ÉÀººÎÈ£¸¦
°í·ÁÇÏÁö ¾Ê´Â ¹Ý¸é sar ¸í·ÉÀº ºÎÈ£¸¦ °í·ÁÇÏ´Â Â÷À̰¡ ÀÖ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº
°¢ ¸í·É ÇØ¼³À» Âü°íÇϱ⠹ٶõ´Ù.
3) ºñÆ® ȸÀü ¸í·É(Rotate)
ROL d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿ÞÂÊÀ¸·Î ȸÀü
ROR d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿À¸¥ÂÊÀ¸·Î ȸÀü
RCL d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿ÞÂÊÀ¸·Î ȸÀü
RCR d,count : ¹ÙÀÌÆ®/¿öµåÀÇ °¢ ºñÆ®¸¦ count ºñÆ®¸¸Å
¿À¸¥ÂÊÀ¸·Î ȸÀü
## Ȱ¿ë ÆÁ
ºñÆ® À̵¿ÀÇ °á°ú ¹Ð·Á³ ºñÆ®´Â ¿ø·¡ µ¥ÀÌÅÍ·Î µÇµ¹¾Æ¿ÀÁö ¸øÇÏ´Â
¹Ý¸é ºñÆ® ȸÀü¿¡¼´Â ±×°ÍÀÌ ¿ø·¡ µ¥ÀÌÅÍ·Î µÇµ¹¾Æ¿À´Â Á¡ÀÌ ´Ù¸£´Ù.
## Ȱ¿ë ÆÁ
rcl, rcr ¸í·ÉÀº ij¸® Ç÷¡±×µµ ¼øÈ¯ °í¸®¿¡ ÇÑ ÀÚ¸®¸¦ Â÷ÁöÇÑ´Ù´Â
Á¡ÀÌ rol, ror ¸í·É°ú ´Ù¸£´Ù. Áï rol, ror ¸í·ÉÀ» »ç¿ëÇϸé ȸÀüÀ¸·Î ¹Ð·Á³
ºñÆ®°¡ ¹Ù·Î ¹Ý´ëÆí ºñÆ®·Î ÀúÀåµÇÁö¸¸, rcl, rcr ¸í·ÉÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡´Â
±× ºñÆ®°¡ ij¸® Ç÷¡±×¿¡ ÀúÀåµÇ¾ú´Ù°¡ ´ÙÀ½ ºñÆ®ÀÇ È¸Àü¿¡¼ ¹Ý´ëÆí ºñÆ®¸¦
ä¿ì°Ô µÈ´Ù´Â »ç½ÇÀ» ÀÌÇØÇÏ¸é µÉ °ÍÀÌ´Ù.
4. ½ºÆ®¸µ ¸í·É
½ºÆ®¸µ ¸í·É(String Instruction)Àº ¹Ýº¹Ã³¸® Á¢µÎ¾î(repeat prefix) ¹× µ¥ÀÌÅÍÀÇ
ºí·Ï Àü¼Û(move), ºñ±³(compare), °Ë»ö(scan)¿¡ °üÇÑ ¸í·ÉÀ¸·Î 7°³°¡ ÀÖ´Ù.
1) Repeat Prefix ¸í·É
REP opcode : OP ÄÚµå(MOVS, STOS)¸¦ CX ȸ¼ö
¹Ýº¹ ½ÇÇà
REPE opcode : OP ÄÚµå(CMPS, SCAS)¸¦ ZF=1ÀÎ µ¿¾È CX
ȸ¼ö ¹Ýº¹ ½ÇÇà
REPZ opcode : OP ÄÚµå(CMPS, SCAS)¸¦ ZF=1ÀÎ µ¿¾È CX
ȸ¼ö ¹Ýº¹ ½ÇÇà
REPNE opcode : OP ÄÚµå(CMPS, SCAS)¸¦ ZF=0ÀÎ µ¿¾È CX ȸ¼ö
¹Ýº¹ ½ÇÇà
REPNZ opcode : OP ÄÚµå(CMPS, SCAS)¸¦ ZF=0ÀÎ µ¿¾È CX ȸ¼ö
¹Ýº¹ ½ÇÇà
rep´Â ¹«Á¶°Ç ¸í·ÉÀÌÁö¸¸, ³ª¸ÓÁö´Â ij¸® Ç÷¡±×¸¦ ÂüÁ¶ÇÏ´Â Á¶°ÇºÎ ¸í·ÉÀÌ´Ù.
Repeat Prefix ¸í·ÉÀº µ¶¸³ÇÏ¿© »ç¿ëµÉ ¼ö´Â ¾øÀ¸¸ç, µÚ¿¡ µû¶ó ³ª¿À´Â
¸í·ÉÀ» ¹«Á¶°Ç ¶Ç´Â Á¶°ÇºÎ·Î CX ·¹Áö½ºÅÍ¿¡ ÀúÀåµÈ ȸ¼ö¸¸Å ¹Ýº¹ ½ÇÇàÇÏ°Ô ¸¸µå´Â
°ÍÀ̹ǷΠÀÏÁ¾ÀÇ ¸í·É Á¢µÎ¾î ¿ªÇÒÀ» ÇÏ´Â °ÍÀÓÀ» ÀÌÇØÇÒ Çʿ䰡 ÀÖ´Ù.
## Ȱ¿ë ÆÁ
¾Æ¹« ¸í·É ¾Õ¿¡³ª rep(e, z, ne, nz)¸¦ ºÙ¿©¼´Â ¾È µÈ´Ù.
2) ºí·Ï µ¥ÀÌÅÍ Ã³¸® ¸í·É
µ¥ÀÌÅ͸¦ ¹ÙÀÌÆ® ºí·Ï ¶Ç´Â ¿öµå ºí·Ï ´ÜÀ§·Î Àü¼Û, ºñ±³ÇÏ´Â ºí·Ï µ¥ÀÌÅÍ Ã³¸®
¸í·ÉÀÇ À̸§¿¡¼ ³¡ÀÇ s´Â ½ºÆ®¸µ(String)À» Ç¥½ÃÇϸç, b´Â ¹ÙÀÌÆ®, w´Â ¿öµå¸¦ ³ªÅ¸³½´Ù´Â
»ç½ÇÀ» ÀÌÇØÇÏ°í º¸¸é °£´ÜÇØÁú °ÍÀÌ´Ù.
MOVSB : DS:SI¿¡ ÀúÀåµÈ ¹ÙÀÌÆ® µ¥ÀÌÅ͸¦ ES:DI·Î Àü¼Û
MOVSW : DS:SI¿¡ ÀúÀåµÈ ¿öµå µ¥ÀÌÅ͸¦ ES:DI·Î Àü¼Û
CMPSB : (DS:SI - ES:DI)·Î ºñ±³ÇÑ °á°ú »óŸ¦ Ç÷¡±× ·¹Áö½ºÅÍ¿¡
ÀúÀå
CMPSW : (DS:SI - ES:DI)·Î ºñ±³ÇÑ °á°ú »óŸ¦ Ç÷¡±× ·¹Áö½ºÅÍ¿¡
ÀúÀå
SCASB : (accumulator - ES:DI) ºñ±³ °á°ú »óŸ¦ Ç÷¡±× ·¹Áö½ºÅÍ¿¡
ÀúÀå
SCASW : (accumulator - ES:DI) ºñ±³ °á°ú »óŸ¦ Ç÷¡±× ·¹Áö½ºÅÍ¿¡
ÀúÀå
LODSB : DS:SI¿¡ ÀúÀåµÈ ¹ÙÀÌÆ® µ¥ÀÌÅ͸¦ ¾îÅ¥¹Ä·¹ÀÌÆ®·Î Àü¼Û
LODSW : DS:SI¿¡ ÀúÀåµÈ ¿öµå µ¥ÀÌÅ͸¦ ¾îÅ¥¹Ä·¹ÀÌÆ®·Î Àü¼Û
STOSB : ¾îÅ¥¹Ä·¹ÀÌÆ®ÀÇ ¹ÙÀÌÆ® µ¥ÀÌÅ͸¦ ES:DI·Î Àü¼Û
STOSW : ¾îÅ¥¹Ä·¹ÀÌÆ®ÀÇ ¿öµå µ¥ÀÌÅ͸¦ ES:DI·Î Àü¼Û
## ÁÖÀÇ
cmpsb/cmpsw ¸í·ÉÀº ¼Ò½º ¿ÀÆÛ·£µå¿¡¼ ¸ñÀû ¿ÀÆÛ·£µå¸¦ »©´Â ¹æ½ÄÀ¸·Î µÎ µ¥ÀÌÅ͸¦
ºñ±³Çϱ⠶§¹®¿¡, ±× ºñ±³ ¿¬»ê ¹æÇâÀÌ cmp ¸í·É¿¡¼ (¸ñÀû-¼Ò½º)·Î ºñ±³ÇÏ´Â
°Í°ú Á¤¹Ý´ëÀÓÀ» ÁÖÀÇÇÏÀÚ.
## Ȱ¿ë ÆÁ
°¢ ¸í·É¿¡¼ ¹ÙÀÌÆ®/¿öµå¸¦ Ç¥½ÃÇÏ´Â b, w¸¦ ºÙÀÌÁö ¾Ê°í movs,
cmps, scas, lods, stos¿Í °°ÀÌ ¸í·ÉÇϸé ó¸®ÇÒ µ¥ÀÌÅͰ¡ ¹ÙÀÌÆ® µ¥ÀÌÅÍÀÎÁö
¿öµå µ¥ÀÌÅÍÀÎÁö¸¦ ¾î¼Àºí·¯°¡ ¾Ë¾Æ¼ ÆÇ´ÜÇÏ°í ¹ÙÀÌÆ® ¸í·É, ¿öµå ¸í·ÉÀ¸·Î
¹ø¿ªÇÏ¿© ÁØ´Ù.
5. ÇÁ·Î±×·¥ Àü¼Û ¸í·É
ÇÁ·Î±×·¥ Àü¼Û ¸í·É(Program Transfer Instruction)Àº IP ¹× CSÀÇ ³»¿ëÀ»
º¯È½ÃÄÑ ÇÁ·Î±×·¥ÀÇ È帧À» º¯°æÇÏ´Â °ÍÀ¸·Î 26°³ÀÇ ¸í·ÉÀÌ ÀÖ´Ù.
1) ¹«Á¶°Ç Àü¼Û ¸í·É(Unconditional Transfer)
JMP label : ÁöÁ¤µÈ ·¹À̺í À§Ä¡·Î À̵¿
CALL label : ºÎÇÁ·Î±×·¥(procedure, subroutine)À»
È£Ãâ
RET imm16 : ºÎÇÁ·Î±×·¥(procedure, subroutine)¿¡¼
º¹±Í
## Ȱ¿ë ÆÁ
ret ¸í·É¿¡ imm16 ¿ÀÆÛ·£µå¸¦ ºÙÀÌ¸é ¼ºê·çƾ¿¡¼ º¹±ÍÇÑ
ÈÄ SP¸¦ imm16¸¸Å Áõ°¡½ÃŲ´Ù.
2) Á¶°ÇºÎ Àü¼Û ¸í·É(Conditional Transfer)
Á¶°ÇºÎ Àü¼Û ¸í·ÉÀº ¸ðµÎ µ¿ÀÏÇÏ°Ô disp8(8ºñÆ® displacement)¸¦ ÇϳªÀÇ ¿ÀÆÛ·£
µå·Î ÃëÇÏ¿© IP+disp8À» »õ·Î¿î IP·Î ¹Ù²Ù¸ç, µû¶ó¼ »ó´ë ÁÖ¼Ò -128 ³»Áö +127
¹üÀ§ ³»¿¡ Á¸ÀçÇÏ´Â ·¹À̺í·Î ºÐ±âÇÏ´Â short jump ¸í·ÉÀÌ´Ù.
## Ȱ¿ë ÆÁ
¾î¼Àºí¸®¾î·Î ¼Ò½º¸¦ ¸¸µé ¶§´Â ·¹À̺í À̸§À» ÀÔ·ÂÇϸé
µÉ °ÍÀÌ´Ù.
Á¶°ÇºÎ Àü¼Û ¸í·ÉÀº °³¼ö°¡ ¸¹¾Æ óÀ½ ´ëÇÒ ¶§ È¥¶õ½º·´°Ô ´À²¸Áú ¿ì·Á°¡
ÀÖ±â´Â ÇÏÁö¸¸, °°Àº Àǹ̷Π¾²ÀÌ´Â µ¿ÀÏÇÑ ¸í·É¾î¸¦ ÇÕÄ¡±â¸¸ ÇØµµ °ÅÀÇ Àý¹Ý Á¤µµ·Î
ÁÙ¾îÁö¸ç, ±× ÈÄ¿¡ Àß »ìÆì º¸¸é °£´ÜÇÏ°Ô 2°¡Áö ºÎ·ù·Î ³ª´©¾îÁø´Ù.
ù°, µÎ µ¥ÀÌÅÍÀÇ ºñ±³ °á°ú¸¦ Á¶°ÇÀ¸·Î Àü¼Û ¿©ºÎ
°áÁ¤
µÑ°, OF, SF, PFÀÇ °ªÀÌ 1ÀÎÁö 0ÀÎÁö¸¦ Á¶°ÇÀ¸·Î Àü¼Û
¿©ºÎ °áÁ¤
µÎ µ¥ÀÌÅÍÀÇ ºñ±³ °á°ú´Â Å©´Ù ¶Ç´Â ¸¹´Ù, ÀÛ´Ù ¶Ç´Â Àû´Ù, °°´Ù µî 3°¡ÁöÀÇ ±âº»
Á¶°ÇÀ» Çü¼ºÇÑ´Ù. ±× ¿Ü¿¡ ÀÛÁö ¾Ê´Ù ¶Ç´Â ÀûÁö ¾Ê´Ù(ÀÌ»ó), Å©Áö ¾Ê´Ù ¶Ç´Â ¸¹Áö
¾Ê´Ù(ÀÌÇÏ) µî 2°¡ÁöÀÇ º¹ÇÕ Á¶°ÇÀÌ Ãß°¡µÈ Á¤µµÀÌ´Ù.
Å©´Ù(¸¹´Ù) |
+-------------
ÀÛÁö(ÀûÁö) ¾Ê´Ù
°°´Ù |
|
+-----
Å©Áö(¸¹Áö) ¾Ê´Ù
ÀÛ´Ù(Àû´Ù) |
±×¸®°í ¸ðµç ¸í·ÉÀÇ Ã¹ ±ÛÀÚ´Â jumpÀÇ j¸¦ µû¼ ºÙÀÎ °ÍÀ̸ç, ÀÚÁÖ º¸ÀÌ´Â
nÀº no ¶Ç´Â not¸¦ Ç¥½ÃÇϰí, ±× ³ª¸ÓÁö ±ÛÀÚµéÀº a(bove), b(elow), e(qual)
µî°ú g(reater), l(ess) µîÀÇ ºñ±³ °á°ú Ç¥½Ã ¹× c(arry), z(ero), o(verflow) µî
Ç÷¡±× »óŸ¦ Ç¥½ÃÇÏ´Â ´Ü¾îÀÇ Ã¹ ±ÛÀÚµé·Î Á¶ÇյǾî ÀÖ´Ù.
ÀÌ Á¤µµ¸¸ ÀÌÇØÇÏ°í º¸¸é º°·Î ¾î·ÆÁö ¾Ê°Ô ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
Á» ´õ º¸±â ½±µµ·Ï ¸î ±×·ìÀ¸·Î ³ª´©¾î ¿ä¾àÇÑ´Ù.
<1> Å©°Å³ª ÀÛÀº Á¶°Ç
<2> ¸¹°Å³ª ÀûÀº Á¶°Ç
<3> °°°Å³ª °°Áö ¾ÊÀº Á¶°Ç
<4> Á¦·Î Ç÷¡±× Á¶°Ç
<5> »çÀÎ Ç÷¡±× Á¶°Ç
<6> ÆÐ¸®Æ¼ Ç÷¡±× Á¶°Ç
ÀÌÁ¦ °¢ ±×·ìÀ» ³ª´©¾î ÇØ´çµÇ´Â ¸í·É¾î¸¦ »ìÆì º¸ÀÚ.
<1> Å©°Å³ª ÀÛÀº Á¶°Ç
JA label : above(´õ Å) Á¶°ÇÀÌ
¸¸Á·(CF=0, ZF=0)µÇ¸é ºÐ±â
JNBE label : À§¿Í °°À½(not below & not
equal)
JAE label : ÀÌ»ó(above ¶Ç´Â equal) Á¶°ÇÀÌ
¸¸Á·(CF=0)µÇ¸é ºÐ±â
JNB label : À§¿Í °°À½
JNC label : À§¿Í °°À½
JB label : below(´õ ÀÛÀ½) Á¶°ÇÀÌ
¸¸Á·(CF=1)µÇ¸é ºÐ±â
JNAE label : À§¿Í °°À½
JC label : À§¿Í °°À½
JBE label : ÀÌÇÏ(below ¶Ç´Â equal) Á¶°Ç(CF=1
¶Ç´Â ZF=1)ÀÌ¸é ºÐ±â
JNA label : À§¿Í °°À½
## ¹ßÀü Âü°í
jc, jnc´Â ¿ø·¡ 8088/8086ÀÇ ¸í·É¾îÇ¥¿¡´Â Á¤ÀǵǾî
ÀÖÁö ¾Ê´Ù. ±×·¯³ª MASM¿¡¼´Â ±× ¸í·ÉµéÀ» Áö¿øÇÑ´Ù.
<2> ¸¹°Å³ª ÀûÀº Á¶°Ç
JG label : greater(´õ ¸¹À½) Á¶°ÇÀÌ
¸¸Á·µÇ¸é ºÐ±â
JNLE label : À§¿Í °°À½(<SF xor OF>=0,
ZF=0 Á¶°Ç)
JGE label : ÀÌ»ó(greater ¶Ç´Â equal)
Á¶°ÇÀÌ ¸¸Á·µÇ¸é ºÐ±â
JNL label : À§¿Í °°À½(<SF xor OF>=0
Á¶°Ç)
JL label : less(´õ ÀûÀ½) Á¶°ÇÀÌ
¸¸Á·µÇ¸é ºÐ±â
JNGE label : À§¿Í °°À½(<SF xor OF>=1
Á¶°Ç)
JLE label : ÀÌÇÏ(less ¶Ç´Â equal) Á¶°ÇÀÌ
¸¸Á·µÇ¸é ºÐ±â
JNG label : À§¿Í °°À½(<SF xor OF>=1
¶Ç´Â ZF=1 Á¶°Ç)
JE label : °°À½(equal) Á¶°ÇÀÌ ¸¸Á·(ZF=1)µÇ¸é
ºÐ±â
<3> °°°Å³ª °°Áö ¾ÊÀº Á¶°Ç
JZ label : À§¿Í °°À½
JNE label : °°Áö ¾ÊÀ½(not equal) Á¶°ÇÀÌ
¸¸Á·(ZF=0)µÇ¸é ºÐ±â
JNZ label : À§¿Í °°À½
<4> Á¦·Î Ç÷¡±× Á¶°Ç
JO label : OF=1ÀÌ¸é ºÐ±â
JNO label : OF=0ÀÌ¸é ºÐ±â
<5> »çÀÎ Ç÷¡±× Á¶°Ç
JS label : SF=1ÀÌ¸é ºÐ±â
JNS label : SF=0ÀÌ¸é ºÐ±â
<6> ÆÐ¸®Æ¼ Ç÷¡±× Á¶°Ç
JP label : PF=1ÀÌ¸é ºÐ±â
JPE label : À§¿Í °°À½
JNP label : PF=0ÀÌ¸é ºÐ±â
JPO label : À§¿Í °°À½
3) ¹Ýº¹ Á¦¾î ¸í·É(Iteration Control)
¹Ýº¹ Á¦¾î ¸í·Éµµ ¸ðµÎ µ¿ÀÏÇÏ°Ô disp8(8ºñÆ® displacement)¸¦ ÇϳªÀÇ ¿ÀÆÛ·£µå·Î
ÃëÇÏ¿© IP+disp8À» »õ·Î¿î IP·Î ¹Ù²Ù¸ç, µû¶ó¼ »ó´ë ÁÖ¼Ò -128 ³»Áö
+127 ¹üÀ§ ³»¿¡ Á¸ÀçÇÏ´Â ·¹À̺í·Î ºÐ±âÇÏ´Â short jump ¸í·ÉÀÌ´Ù.
LOOP label : CX-1À» CX¿¡ ÀúÀåÇϰí, ¹Ù²ï CX°¡
0ÀÌ ¾Æ´Ï¸é ·¹À̺í·Î ºÐ±â
ÇÏÁö¸¸
¹Ù²ï CX=0ÀÌ¸é ¹Ýº¹ ½ÇÇàÀ» ³¡³½´Ù.
LOOPE label : ¹Ù²ï CX°¡ 0ÀÌ ¾Æ´Ñ µ¿½Ã¿¡ ZF=1À̸é
·¹À̺í·Î ºÐ±âÇÏÁö¸¸
¹Ù²ï
CX=0À̰ųª ZF=0ÀÌ¸é ¹Ýº¹ ½ÇÇàÀ» ³¡³½´Ù.
LOOPZ label : À§¿Í °°À½
LOOPNE label : ¹Ù²ï CX°¡ 0ÀÌ ¾Æ´Ñ µ¿½Ã¿¡ ZF=0À̸é
·¹À̺í·Î ºÐ±âÇÏÁö¸¸
¹Ù²ï
CX=0À̰ųª ZF=1ÀÌ¸é ¹Ýº¹ ½ÇÇàÀ» ³¡³½´Ù.
LOOPNZ label : À§¿Í °°À½
JCXZ label : CX=0ÀÌ¸é ·¹À̺í·Î ºÐ±â
## Ȱ¿ë ÆÁ
¹Ýº¹ Á¦¾î ¸í·É¿¡¼ jcxz¸¸ CX=z(ero)¸¦ Á¶°ÇÀ¸·Î
ºÐ±âÇÒ »Ó ³ª¸ÓÁö´Â ¸ðµÎ CX°¡ 0ÀÌ ¾Æ´Ñ °ÍÀ» Çʼö Á¶°ÇÀ¸·Î ºÐ±âÇÏ´Â ¸í·ÉµéÀÌ´Ù.
4) ÀÎÅÍ·´Æ® ¸í·É(Interrupt)
ÀÎÅÍ·´Æ®ÀÇ ³»¿ëÀº ±× ÀÚü¸¸À¸·Îµµ ¹æ´ëÇϸç, ¿ì¸®°¡ ½ÇÁ¦ ÇÁ·Î±×·¡¹ÖÀ»
ÇÏ·Á¸é ¸¹ÀÌ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Áß¿äÇÑ °ÍÀ̱⠶§¹®¿¡ ÀÎÅÍ·´Æ®¿¡ °üÇØ¼´Â ÀÌ Àå¿¡
À̾îÁöÁö ¾Ê´Â º°µµ ¿ø°í·Î Á¤¸®ÇÒ °ÍÀÌ´Ù.
INT type : ¼ÒÇÁÆ®¿þ¾î ÀÎÅÍ·´Æ®
INTO :
OF=1ÀÏ ¶§ int 4¿Í °°Àº µ¿ÀÛÀ» ¼öÇà(Á¶°ÇºÎ ÀÎÅÍ·´Æ®)
IRET :
ÀÎÅÍ·´Æ® ¼ºñ½º ·çƾÀ» ³¡³»°í ½ºÅà ÁÖ¼Ò·Î º¹±Í
Âü°í·Î ÀÎÅÍ·´Æ® ŸÀÔ ¹øÈ£ÀÇ ¹è´çÀ» »ìÆì º¸¸é ´ÙÀ½°ú °°´Ù.
0 ³»Áö 4(00h ³»Áö 04h) :
¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼ ³»ºÎ¿ëÀ¸·Î ÁöÁ¤
5 ³»Áö 31(05h ³»Áö 1Fh) :
ÀÎÅÚÀÇ ÇâÈÄ ¼ºñ½º¿ëÀ¸·Î ¿¹¾à
32 ³»Áö 255(20h ³»Áö FFh) : »ç¿ëÀÚ¿¡°Ô
°³¹æµÇ¾î ÀÖÀ½
¿¹¾àµÈ ¹øÈ£ Áß¿¡¼ ¿©·¯ °³´Â ¹ÙÀÌ¿À½º ÀÎÅÍ·´Æ®¿¡ »ç¿ëµÇ°í ÀÖ´Ù.
6. ÇÁ·Î¼¼¼ Á¦¾î ¸í·É
ÇÁ·Î¼¼¼ Á¦¾î ¸í·É(Processor Control Instruction)Àº CPU Ç÷¡±×ÀÇ
Á¦¾î ¹× ¸ÖƼ ÇÁ·Î¼¼½Ì ½Ã½ºÅÛ¿¡¼ ¿ÜºÎ¿ÍÀÇ µ¿±â¸¦ ÃëÇϱâ À§ÇÑ ¸í·ÉÀ¸·Î 12°³°¡
ÀÖ´Ù.
1) Ç÷¡±× Á¦¾î ¸í·É(Flag Operation)
STC : CF¿¡ 1À» Àü¼Û(SeT Carry flag)
CLC : CF¿¡ 0À» Àü¼Û(CLear Carry flag)
CMC : CF°¡ 0À̸é 1·Î 1À̸é 0À¸·Î º¯°æ½ÃÅ´(CoMplement
Carry flag)
STD : DF(¹æÇâ Ç÷¡±×)¿¡ 1À» Àü¼Û(SeT Direction flag)
CLD : DF¿¡ 0À» Àü¼Û(CLear Direction flag)
STI : IF¿¡ 1À» Àü¼Û(SeT Interrupt enable flag)
CLI : IF¿¡ 0À» Àü¼Û(CLear Interrupt enable flag)
## Ȱ¿ë ÆÁ
¹æÇâ Ç÷¡±×°¡ ¼¼ÆÃ(=1)µÈ »óÅ¿¡¼´Â ½ºÆ®¸µ ¸í·ÉÀÌ
½ÇÇàµÉ ¶§¸¶´Ù SI
¿Í DI°¡ °¨¼Ò(¹ÙÀÌÆ® ´ÜÀ§ 1, ¿öµå ´ÜÀ§ 2)ÇÏ°Ô µÈ´Ù.
2) ¿ÜºÎ µ¿±â Á¦¾î ¸í·É(External Synchronization)
HLT : CPU Á¤Áö(Halt until interrupt or reset)
WAIT : TEST ÇÉÀÌ lowÀΰ¡¸¦ Á¶»ç(Wait for TEST pin active)
ESC operation :
¿ÜºÎ coprocessorÀÇ ¸í·É¾î¸¦ ½ÇÇà
LOCK operation : ¿ÜºÎ
coprocessorÀÇ bus »ç¿ëÀ» ±ÝÁö
3) No Operation ¸í·É
NOP : ¾Æ¹« ±â´Éµµ ¼öÇàÇÏÁö ¾ÊÀ½(No OPeration)
No Operation ¸í·ÉÀº ÇÁ·Î±×·¥ÀÇ ½ÇÇà °úÁ¤¿¡ ªÀº Áö¿¬ ½Ã°£À» »ðÀÔÇϱâ
À§Çؼ »ç¿ëµÉ ¼öµµ ÀÖ´Ù.
|