PICÀÇ ½ºÅà ¸Þ¸ð¸® ±¸Á¶

[½ºÅà ¸Þ¸ð¸®¶õ?]

stack memory¶õ µ¶¸³ÀûÀ¸·Î °®Ãß¾îÁ® ÀÖ´Â ÀÛÀº ¸Þ¸ð¸®·Î,
¹«¾ù¿¡ »ç¿ëµÇ´Â°¡ Çϸé, ¼­ºê·çƾÀ» CALL ¸í·ÉÀ¸·Î È£ÃâÇßÀ» ¶§¿Í,
ÀÎÅÍ·´Æ®°¡ µé¾î°¬À» ¶§ÀÇ º¹±Í¹øÁöÀÇ ÀúÀå¿ëÀ¸·Î »ç¿ëµÈ´Ù.


[½ºÅà ¸Þ¸ð¸®ÀÇ ±¸Á¶¿Í µ¿ÀÛ]

½ºÅà ¸Þ¸ð¸®´Â 13ºñÆ®ÆøÀÇ PC ·¹Áö½ºÅÍ ÀúÀå¿ë ¸Þ¸ð¸®°¡ 8°³¸¸À¸·Î µÇ¾î ÀÖ´Ù.
±× ±¸Á¶´Â ¾Æ·§ ±×¸²°ú °°ÀÌ µÇ¾î ÀÖÀ¸¸ç, Áö±Ý ÀúÀåµÇ¾î ÀÖ´Â Àå¼Ò¸¦ stack pointer¶ó ºÎ¸£´Â Æ÷ÀÎÅÍ ·¹Áö½ºÅͰ¡ Áö½ÃÇϰí ÀÖ´Ù. ÀÌ ½ºÅà Æ÷ÀÎÅÍ´Â ³»ºÎ¿¡¼­¸¸ »ç¿ëµÇ°í, ¸í·ÉÀ¸·Î read/writeÇÒ ¼ö ¾ø´Ù.




µ¿ÀÛÀº ¿ì¼±, CALL ¸í·ÉÀÌ ½ÇÇàµÇ¾úÀ» ¶§¿Í, ÀÎÅÍ·´Æ®°¡ Á¢¼öµÇ¾î °­Á¦ÀûÀ¸·Î 4¹øÁö·Î Á¡ÇÁÇÒ ¶§, PUSH µ¿ÀÛÀ̶ó ÇÏ¿© º¹±Í Àå¼Ò(CALL ¸í·É ´ÙÀ½, ÀÎÅÍ·´Æ®°¡ µé¾î°£ ÈÄ)ÀÇ ¾îµå·¹½º¸¦ stack pointer°¡ Áö½ÃÇϰí ÀÖ´Â stack memoryÀÇ Àå¼Ò¿¡ ½á³Ö´Â´Ù. ±×¸®°í ½ºÅà Æ÷ÀÎÅÍ´Â +1µÈ´Ù.

±×ÈÄ, POP µ¿ÀÛÀ̶ó ÇÏ¿©, ¼­ºê·çƾÀ̳ª ÀÎÅÍ·´Æ® ó¸® ÃÖÈÄ¿¡¼­ RETURNÇÒ ¶§, ½ºÅà Æ÷ÀÎÅ͸¦ -1ÇÔÀ¸·Î½á Á÷ÀüÀÇ ½ºÅÃÀ¸·ÎºÎÅÍ º¹±Í ¾îµå·¹½º¸¦ ²¨³»¾î PC ·¹Áö½ºÅÍ¿¡ ½á¿Ã¸°´Ù. ÀÌ·¸°Ô ÇØ¼­ ¿ø·¡ÀÇ Àå¼Ò·Î µ¹¾Æ°¥ ¼ö ÀÖ´Ù.

[ÁÖÀÇ]
¿©±â¼­, ½ºÅÃÀÇ ±íÀÌ´Â 8·¹º§(8, ÀÌ ¸Þ¸ð¸®¹Û¿¡ ¾ø´Ù)À̱⠶§¹®¿¡ ¼­ºê·çƾ Áß¿¡¼­ ¶Ç ¼­ºê·çƾÀ» ºÎ¸£´Ù(nestingÀ̶ó ºÎ¸¥´Ù)°í ÇÏ´Â °ÍÀ» ¹Ýº¹ÇÏ¸é ½ºÅà ¸Þ¸ð¸®°¡ ºÎÁ·ÇÏ°Ô µÈ´Ù.
±× ¶§´Â ½ºÅà Æ÷ÀÎÅÍ´Â cyclicÀ¸·Î µ¹±â ¶§¹®¿¡ ¿À·¡µÈ º¹±Í¹øÁö´Â ½á¿Ã·ÁÁö°í, ´õ ÀÌ»ó ¿ø·¡·Î µ¹¾Æ°¥ ¼ö ¾ø°Ô µÇ¾î ¹ö¸°´Ù.
µû¶ó¼­,
¡¶¼­ºê·çƾÀÇ nestingÀº ³Ê¹« ¸¹ÀÌ »ç¿ëÇØ¼­´Â ¾ÈµÈ´Ù¡·
°í ÇÏ´Â °ÍÀÌ´Ù. °Ü¿ì 3ȸ Á¤µµÀÇ ³×½ºÆÃÀ¸·Î ¾ïÁ¦ÇØ µÎ´Â °ÍÀÌ ¾ÈÀüÇÏ´Ù.


    ´ÙÀ½ ÆäÀÌÁö·Î        ¸ñÂ÷ ÆäÀÌÁö·Î