YYYEJI

[Memory] 함수의 프롤로그(Prolog)와 에필로그(Epilog) 본문

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)

 

의 구조를 가지고 있습니다.

 

함수 에필로그는 함수가 종료되어 자신을 호출했던 함수로 돌아갈 때 스택을 정리하기 위한 것입니다.

 

 

◡̈

 

'Database & SQL' 카테고리의 다른 글

[DB] FILE와 DATABASE의 차이점  (0) 2022.10.26
[DB] phpmyAdmin이란?  (0) 2022.07.26
[DB] MySQL 기본 명령어 정리 / 실습  (0) 2022.07.25
[DB] 맥북에서 MySQL 다운로드  (0) 2022.07.25
[UAF] 메모리 영역  (0) 2022.07.22