asm_10.
(ÇÁ·Î½ÃÀú¿Í ½ºÅÃ)
ÇÁ·Î±×·¡¹Ö ¾ð¾îµµ ÇϳªÀÇ ¾ð¾îÀÔ´Ï´Ù.
¾ð¾î¶õ ÇϳªÀÇ ¾à¼ÓÀÔ´Ï´Ù.
¿ì¸®°¡ ¾à¼ÓÀ» ¸ð¸¦ ¶§ ¿ì¸®´Â ÀüÇô ¹«´ÉÇÑ »ç¶÷ÀÔ´Ï´Ù.
±×·¯³ª ÀÏ´Ü ¾à¼ÓÀ» ¾Ë°í ³ª¸é ¿ì¸®´Â À¯´ÉÇÑ »ç¶÷ÀÌ µË´Ï´Ù.
¿ì¸®´Â ¿Ü±¹ »ç¶÷µé°ú ´ëÈÇϱâ À§ÇÏ¿©, ±× ¿Ü±¹ »ç¶÷µé »çÀÌÀÇ ¾à¼ÓÀÎ ÇØ´ç ¿Ü±¹¾î¸¦
¿½ÉÈ÷ ¹è¿ó´Ï´Ù.
ÇÁ·Î±×·¡¹Ö ¾ð¾î¸¦ ¹è¿ì´Â °ÍÀº È®½ÇÈ÷ ±×º¸´Ù ½±½À´Ï´Ù.
Á¦ 10 Àå ÇÁ·Î½ÃÀú¿Í ½ºÅÃ
ÀÌÁ¦ ¿ì¸®´Â µð¹ö±×¿¡ ´ëÇØ¼ ±âº»ÀûÀÎ Áö½ÄÀ» ²Ï ¸¹ÀÌ ¾Ë°Ô µÇ¾ú´Ù.
±×·¯³ª, ÇÁ·Î±×·¥´Ù¿î ÇÁ·Î±×·¥À» ¸¸µé±â À§Çؼ´Â ÇÁ·Î½ÃÀú¿Í ½ºÅÿ¡ °üÇÑ ÀÌÇØ¸¦
»© ³õÀ» ¼ö ¾øÀ» °ÍÀÌ´Ù.
Á¦ 1 Àý ÇÁ·Î½ÃÀú
ÇÁ·Î½ÃÀú(procedure)´Â ¸í·É¾îÀÇ ÁýÇÕ(Áý´Ü)ÀÌ´Ù.
º£ÀÌÁ÷¿¡¼´Â ¸í·É¾î ÁýÇÕÀ» ¼ºê·çƾ(subroutine)À̶ó°í ÇÑ´Ù.
ÇÁ·Î½ÃÀú Áï ¸í·É¾î ÁýÇÕÀ» ¸¸µé¾î µÎ´Â ÀÌÀ¯´Â ¹«¾ùÀΰ¡?
¸ÕÀú ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÏ¿© ½ÇÇàÇÏ´Â ±¸Á¶¸¦ ±×¸²À¸·Î ±×·Á º¸ÀÚ.
+-------------------------+ +-------------------------+
| ÁÖ ÇÁ·Î½ÃÀú |
+---------->
| <¹øÁö 1> ÇÁ·Î½ÃÀú |
+-------------------------+ ||-------------------------+
| - call <¹øÁö 1> <Enter> | -----------------+ | -
......... <Enter> |
+-------------------------+ |-------------------------+
| - ............. <Enter> | <---------------------------- | -
ret <Enter> |
+-------------------------+ +-------------------------+
| - call <¹øÁö 2> <Enter> | ---------+
+-------------------------+ |
+-------------------------+
| - ............. <Enter> | <---++------------------>
| <¹øÁö 2> ÇÁ·Î½ÃÀú |
+-------------------------+ | |-------------------------+
| | -
......... <Enter> |
| |-------------------------+
+------------------------
| - ret <Enter> |
+-------------------------+
À§ÀÇ ±×¸²À» º¸¸é call ¸í·ÉÀÌ ÁöÁ¤µÈ ¹øÁöÀÇ ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÏ°í ±× ÇÁ·Î½ÃÀúÀÇ
½ÇÇàÀÌ ³¡³ ÈÄ¿¡´Â ret ¸í·ÉÀ¸·Î call ´ÙÀ½ ¸í·ÉÁÙ·Î º¹±ÍÇÔÀ» ¾Ë ¼ö ÀÖ´Ù.
±×·± ¹æ½ÄÀ¸·Î ¸î °³ÀÇ ÇÁ·Î½ÃÀú¶óµµ È£Ãâ ½ÇÇàÇÒ ¼ö ÀÖ´Â °ÍÀÌ´Ù.
¿ì¸®´Â 16Áø¼ö 1 ÀÚ¸®¸¦ ÀÔÃâ·ÂÇÏ´Â ÇÁ·Î±×·¥¿¡ ¿¬¼ÓÀûÀ¸·Î ³ª¿Ô´ø ¸î °³ÀÇ ¸í·É¾îµéÀÌ
16Áø¼ö 2 ÀÚ¸®ÀÇ ÀÔÃâ·Â ÇÁ·Î±×·¥¿¡µµ ºñ½ÁÇÏ°Ô »ç¿ëµÇ´Â °ÍÀ» º¸¾Ò´Ù.
±×¿Í °°ÀÌ ÇÁ·Î±×·¥ ³»¿¡¼ °°Àº ¸ð¾çÀ¸·Î ¿¬¼ÓµÇ´Â ¸í·É¾î ÁýÇÕÀ» µû·Î ¸¸µé¾î
µÎ¸é ÇÊ¿äÇÑ ÀÚ¸®¿¡¼ È£Ãâ ½ÇÇàÇÏ´Â °ÍÀ¸·Î °£´ÜÈ÷ ó¸®ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
ÇÁ·Î½ÃÀúÀÇ Çʿ伺Àº ¹Ù·Î °Å±â¿¡ ÀÖ´Â °ÍÀÌ´Ù.
³ªÁß¿¡ ¾î¼Àºí¸®·Î ÇÁ·Î±×·¥À» ÀÛ¼ºÇÏ´Ù º¸¸é ¾Ë°ÚÁö¸¸, »ç½Ç ¾î¼Àºí¸® ÇÁ·Î±×·¥Àº
ÇÁ·Î½ÃÀú·Î ½ÃÀÛÇÏ¿© ÇÁ·Î½ÃÀú·Î ³¡³´Ù.
C ¾ð¾îÀÇ ÇÁ·Î±×·¥ÀÌ ÇÔ¼ö·Î ½ÃÀÛÇÏ¿© ÇÔ¼ö·Î ³¡³ª´Â °Í°ú ¸¶Âù°¡ÁöÀÌ´Ù.
´Ù¸¸ ¾î¶² ÇÁ·Î±×·¥À̵çÁö ÁÖ ÇÔ¼ö°¡ ÀÖ¾î, ±× ÇÁ·Î±×·¥ÀÇ ½ÃÀÛ°ú ³¡Àº ÁÖ ÇÔ¼ö¿¡
µé¾î ÀÖ°Ô ¸¶·ÃÀÌ´Ù.
±×¿Í °°ÀÌ µ¶¸³µÈ ¿©·¯ °³ÀÇ ÇÔ¼ö¸¦ ¸¸µé¾î µÎ°í ÁÖ ÇÔ¼ö¿¡¼ ´Ù¸¥ ÇÔ¼ö¸¦ È£ÃâÇÏ¿©
½ÇÇàÇϵµ·Ï ¸¸µé¸é ±¸Á¶ÀûÀ̸鼵µ ¼öÁ¤ÀÌ ¿ëÀÌÇÑ ÇÁ·Î±×·¥ÀÌ µÈ´Ù.
¾î¼Àºí¸®¿¡¼µµ ¸¶Âù°¡Áö·Î µ¶¸³µÈ ¿©·¯ °³ÀÇ ÇÁ·Î½ÃÀú·Î ÇÁ·Î±×·¥À» Â¥µÇ ´Ù¸¸
ÁÖ ÇÁ·Î½ÃÀú°¡ ÀÖ¾î ÇÁ·Î±×·¥Àº ÁÖ ÇÁ·Î½ÃÀú¿¡¼ ½ÃÀÛµÇ°í ³¡³ª´Â °ÍÀÌ´Ù.
ÇÁ·Î½ÃÀú¿¡ ´ëÇÑ ½Ç½ÀÀº Á¶±Ý µÚ·Î ¹Ì·ç±â·Î ÇÑ´Ù.
Á¦ 2 Àý ½ºÅðú º¹±Í ÁÖ¼Ò
¿ì¸®´Â ¹æ±Ý ¸»Çϱ⸦ call ¸í·ÉÀ¸·Î È£ÃâµÈ ÇÁ·Î½ÃÀúÀÇ ½ÇÇàÀÌ ³¡³ ÈÄ ±× ÇÁ·Î½ÃÀúÀÇ
¸¶Áö¸· ¸í·É ret·Î ÇÁ·Î±×·¥ÀÇ Á¦¾î´Â call ¸í·É ¹Ù·Î ´ÙÀ½ ÁÙ¿¡ ÀÖ´Â ¸í·É¾î·Î º¹±ÍµÈ´Ù°í
½±°Ô ¸»ÇÏ¿´´Ù.
±×·¯³ª, °õ°õÈ÷ »ý°¢ÇØ º¸¸é 8088Àº ¾î¶»°Ô ÇÏ¿© ÇÁ·Î½ÃÀú°¡ ³¡³ µÚ¿¡ µ¹¾Æ°¡¾ß
ÇÒ º¹±Í ÁÖ¼Ò¸¦ ¾Ë¾Æ ³»´Â °ÍÀϱî?
1. ½ºÅðú LIFO
¿©±â¿¡¼ ¿ì¸®´Â ÇÁ·Î½ÃÀú¸¦ È£Ãâ ½ÇÇàÇÑ ÈÄ¿¡ 8088ÀÌ Ã£¾Æ µ¹¾Æ°¥ º¹±Í ÁÖ¼Ò¸¦
¾îµò°¡¿¡ ±â¾ï½ÃÄÑ µÑ Çʿ䰡 ÀÖ´Ù´Â »ý°¢À» ÇÏ°Ô µÈ´Ù.
±× ±â¾ï Àå¼Ò·Î Á¦°øµÇ´Â °ÍÀÌ ¹Ù·Î ½ºÅÃÀÌ´Ù.
call <¹øÁö> ¸í·ÉÀº 3 ¹ÙÀÌÆ®¸¦ Â÷ÁöÇÑ´Ù.
µû¶ó¼ call ¸í·ÉÀÌ ½ÃÀÛµÈ ¹øÁö¿¡ 3À» ´õÇÏ¸é º¹±ÍÇÒ ¹øÁö¸¦ °è»êÇÒ ¼ö ÀÖ´Ù.
¾Æ¹«Æ° ±× °è»êÀº 8088ÀÌ ¾Ë¾Æ¼ ÇÒ °ÍÀÌ´Ù.
±×·¯¸é °è»êµÈ º¹±Í ÁÖ¼Ò¸¦ ½ºÅÃÀ̶ó´Â Àå¼Ò(¸Þ¸ð¸® ¿µ¿ª)¿¡ ¾î¶»°Ô ÀúÀåÇÒ±î?
±× ÀúÀåÇÏ´Â ¸ð¾çÀ» ÈçÈ÷ Á¢½Ã ½×±â¿¡ ºñÀ¯ÇÑ´Ù.
¿©·¯ °³ÀÇ Á¢½Ã¸¦ °ãÃļ ½×¾Æ µÎ¸é, ²¨³¾ ¶§´Â °¡Àå ³ªÁß¿¡ ¾ñ¾ú´ø Á¢½Ã¸¦ °¡Àå
¸ÕÀú ²¨³» ¾²±â°¡ ½±´Ù.
ÀºÇàÀ̳ª â°íÀÇ ±ÝÀü °ü¸®, ¹°·ù °ü¸®·Î ¸»ÇÏÀÚ¸é ÈÄÀÔ¼±Ãâ¹ýÀÌ Àû¿ëµÈ´Ù.
¿µ¾î·Î´Â lifo(last in first out) ±¸Á¶¶ó°í ÇÑ´Ù.
2. LIFO°¡ Àû¿ëµÇ´Â °æ¿ì
ÈÄÀÔ¼±Ãâ ±¸Á¶°¡ ½ÇÁ¦·Î »ç¿ëµÇ´Â °æ¿ì´Â ¾î¶² ¶§Àϱî?
ÈçÈ÷ ÇÁ·Î±×·¡¹ÖÀ» ¹è¿ü´Ù°í ÇÏ¸é¼ ¿ë¾î´Â ¸¹ÀÌ ¾Ë°í ÀÖ´Â µíÇѵ¥, ¸·»ó ¾îµð¿¡
¼Ò¿ëµÇ´Â °ÍÀÎÁö¸¦ ¹°¾î º¸¸é ¸ð¸£´Â °æ¿ì¿¡ ±× Áö½ÄÀÌ ¹«½¼ Àǹ̰¡ ÀÖÀ»±î?
°¡·É À§¿¡¼ º¸ÀÎ ±×¸²°ú °°ÀÌ ÁÖ ÇÁ·Î½ÃÀú¿¡¼ ÇϳªÀÇ ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÏ¿© ½ÇÇàÇϰí,
È£ÃâµÈ ÇÁ·Î½ÃÀú´Â ´Ù¸¥ ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÔÀÌ ¾øÀÌ ½ÇÇàÀ» ¸¶Ä¡°í ÁÖ ÇÁ·Î½ÃÀú·Î
º¹±ÍÇÑ´Ù¸é LIFO°¡ Àû¿ëµÉ Çʿ伺ÀÌ ¾ø´Ù.
±× °æ¿ì´Â Á¢½Ã ½×±â¿¡ ºñÀ¯ÇÑ´Ù¸é ÇϳªÀÇ Á¢½Ã¸¸ ¾þ¾î µÎ¾ú´Ù°¡ ´Ù½Ã ´Ù¸¥ Á¢½Ã¸¦
°ãÃÄ ¾þÁö ¾ÊÀº »óÅ¿¡¼ Á¢½Ã¸¦ ²¨³» ¾²´Â °Í°ú °°±â ¶§¹®ÀÌ´Ù.
LIFO°¡ À§·ÂÀ» ¹ßÈÖÇÏ´Â °æ¿ì¶ó¸é, ÁÖ ÇÁ·Î½ÃÀú¿¡¼ ÇÁ·Î½ÃÀú 1À» È£ÃâÇÏ¿© ½ÇÇàÇÏ¿´´Âµ¥
ÇÁ·Î½ÃÀú 1ÀÇ ½ÇÇà °úÁ¤¿¡¼ ´Ù½Ã ÇÁ·Î½ÃÀú 2¸¦ È£ÃâÇÏ°í ±×°ÍÀÌ ½ÇÇàµÇ´Ù°¡ ´Ù½Ã
ÇÁ·Î½ÃÀú 3À» È£ÃâÇÏ´Â ½ÄÀ¸·Î ¿©·¯ °èÃþÀÇ È£ÃâÀÌ ÀÌ·ç¾îÁú ¶§ÀÌ´Ù.
°¡·É 100h¿¡¼ ½ÃÀÛµÈ ÁÖ ÇÁ·Î½ÃÀú°¡ 110h¿¡¼ call ¸í·ÉÀ¸·Î 200h¿¡¼ ½ÃÀ۵ǴÂ
ÇÁ·Î½ÃÀú 1À» È£ÃâÇÏ¿´´Ù¸é ÃÖÃÊÀÇ º¹±Í ÁÖ¼Ò 113h°¡ ½ºÅÿ¡ ÀúÀåµÉ °ÍÀÌ´Ù.
±×¸®ÇÏ¿© È£ÃâµÈ ÇÁ·Î½ÃÀú 1ÀÌ 220h¿¡¼ call ¸í·ÉÀ¸·Î 300h¿¡¼ ½ÃÀ۵Ǵ ÇÁ·Î½ÃÀú
2¸¦ È£ÃâÇÏ¿´´Ù¸é µÎ ¹øÂ° º¹±Í ÁÖ¼Ò 223h°¡ ½ºÅÿ¡ ÀúÀåµÉ °ÍÀÌ´Ù.
¶ÇÇÑ È£ÃâµÈ ÇÁ·Î½ÃÀú 2°¡ 330h¿¡¼ call ¸í·ÉÀ¸·Î 400h¿¡¼ ½ÃÀ۵Ǵ ÇÁ·Î½ÃÀú
3À» È£ÃâÇÏ¿´´Ù¸é ¼¼ ¹øÂ° º¹±Í ÁÖ¼Ò 333h°¡ ½ºÅÿ¡ ÀúÀåµÉ °ÍÀÌ´Ù.
³ª¾Æ°¡ È£ÃâµÈ ÇÁ·Î½ÃÀú 3ÀÌ 440h¿¡¼ call ¸í·ÉÀ¸·Î 500h¿¡¼ ½ÃÀ۵Ǵ ÇÁ·Î½ÃÀú
4¸¦ È£ÃâÇÏ¿´´Ù¸é ³× ¹øÂ° º¹±Í ÁÖ¼Ò 443h°¡ ½ºÅÿ¡ ÀúÀåµÉ °ÍÀÌ´Ù.
ÀÌ¿Í °°ÀÌ ½ºÅÿ¡ ½Î¿© ÀÖ´Â º¹±Í ÁÖ¼Ò¸¦ ±×¸²À¸·Î ±×·Á º¸ÀÚ.
º¹±Í ÁÖ¼Ò¸¦ ½ºÅÿ¡ ÀúÀåÇÑ ¼ø¼ ->
-> ->
0113
0223 0333 0443
½ºÅÿ¡¼ º¹±¸ ÁÖ¼Ò¸¦ ²¨³»´Â ¼ø¼ <-
<- <-
±×¸²°ú °°ÀÌ ÇÁ·Î½ÃÀú 4°¡ ´õÀÌ»ó ´Ù¸¥ ÇÁ·Î½ÃÀú¸¦ È£ÃâÇÔÀÌ ¾øÀÌ ³¡³ª¸é, ¸¶Áö¸·¿¡
ÀúÀåµÈ º¹±Í ÁÖ¼Ò 0443h¸¦ ²¨³»¾î ÇÁ·Î½ÃÀú 3À¸·Î º¹±ÍÇÒ °ÍÀÌ´Ù.
¸¶Âù°¡Áö·Î ÇÁ·Î½ÃÀú 3ÀÌ ³¡³ª¸é 0333h¸¦ ã¾Æ ÇÁ·Î½ÃÀú 2·Î º¹±ÍÇÑ´Ù.
¸¶Âù°¡Áö·Î ÇÁ·Î½ÃÀú 2°¡ ³¡³ª¸é 0223h¸¦ ã¾Æ ÇÁ·Î½ÃÀú 1·Î º¹±ÍÇÑ´Ù.
¸¶Áö¸·À¸·Î ÇÁ·Î½ÃÀú 1µµ ³¡³ª¸é 0113h¸¦ ã¾Æ ÁÖ ÇÁ·Î½ÃÀú·Î º¹±ÍÇÒ °ÍÀÌ´Ù.
3. ½ºÅðú ·¹Áö½ºÅÍ
±×·¸´Ù¸é, 8088 ³»ºÎ¿¡ ½ºÅÃÀ» °ü¸®ÇÏ´Â ¹«¾ùÀΰ¡°¡ ÀÖ¾î¾ß µÉ °ÍÀÌ´Ù.
8088ÀÇ 13 °³ ·¹Áö½ºÅÍ Áß¿¡¼ ½ºÅÃÀ» °ü¸®ÇÏ´Â °ÍÀº SS(stack segment) ·¹Áö½ºÅÍ¿Í
SP(stack pointer) ·¹Áö½ºÅÍÀÌ´Ù.
|