본문 바로가기

Hop the wag during working

Prolog, Epilog-Code

프로시저가 호출되었을 때, 프로시저가 가장 먼저 해야 할 일은 바로 전의 FP를 저장하는
것이다(프로시저가 종료될때, 원래값을 되돌려 주기 위해). 그런다음 그것은 새로운 FP를

만들기 위해, SP를 FP로 복사한다. 그리고 지역변수들을 위한 공간을 예약하기 위해 SP를

전진시킨다. 이 코드는 프로시저의 도입부(prolog)라고 불린다. 프로시저가 종료될때, 스택은

다시 깔끔하게 청소되어야 하는데, 이것을 프로시저의 결말(epilog)이라고 부른다. Intel의

ENTER와 LEAVE 명령들과 Motorola의 LINK와 UNLINK 명령들은 프로시저의 프롤로그와

에필로그의 대부분을 효과적으로 하기 위해 제공된다.

발췌 : Smashing The Stack For Fun And Profit by AlpheOne