Database & SQL
[Memory] 함수의 프롤로그(Prolog)와 에필로그(Epilog)
YEJI ⍢
2022. 7. 22. 17:20
728x90
스택 프레임에는 함수의 영역을 표현하는 부분이 있습니다.
함수가 시작할 때는 프롤로그(Prolog), 끝날 때에는 에필로그(Epilog)가 실행됩니다.
함수의 프롤로그와 에필로그에 대해서 자세히 알아보겠습니다.
함수의 프롤로그는
push ebp
mov ebp, esp
의 구조를 가지고 있습니다.
함수 프롤로그는 함수가 호출되면 그 함수의 영역을 설정하기 위한 것입니다.
함수가 시작되면 스택프레임이 형성되고 그 시작을 함수 프롤로그라고 합니다.

함수의 에필로그는
leave
(mov esp, ebp
pop ebp)
ret
(pop eip
jmp eip)
의 구조를 가지고 있습니다.
함수 에필로그는 함수가 종료되어 자신을 호출했던 함수로 돌아갈 때 스택을 정리하기 위한 것입니다.

◡̈