인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

kibumkim's profile image
kibumkim

asked

[MMORPG Game Development Series with C++ and Unreal] Part 1: Introduction to C++ Programming

stack frame

14:25 스택메모리 사용영역설정 질문 있습니다

Written on

·

167

0

위 체크한 부분에서 스택에 범위를 설정한다 하셨는데

이전 함수ebp를 푸쉬한다음 ebp에 esp를 넣어놓고, 매개변수와 리턴할주소값을 일단 넣은 다음 공간을 확보하는건가요?

순서가 

1.이전함수bp값을 저장

2.ebp값을esp로 설정

3.esp에 사용할범위설정

맞나요?

정확히 어떤식으로 영역설정이 되는건가요?

C++

Answer 1

1

rookiss님의 프로필 이미지
rookiss
Instructor

이전 함수ebp를 푸쉬한다음 ebp에 esp를 넣어놓고, 매개변수와 리턴할주소값을 일단 넣은 다음 공간을 확보하는건가요?

네 맞습니다!

1.이전함수bp값을 저장

-> 함수가 끝나면 이전 함수 영역으로 돌아가야 하니 복원 용도로 이전 bp값을 스택에 저장합니다.

2.ebp값을esp로 설정

-> 현재 esp 값이 딱 현재 함수의 스택 프레임 시작 영역이니 이를 ebp로 '찝어줍니다'

3.esp에 사용할범위설정

-> sub esp, XX 를 이용해 esp를 크게 내려줘서 결과적으로 ebp~esp 로 가리키는 중간 영역을 사용하게 됩니다.


kibumkim님의 프로필 이미지
kibumkim
Questioner

아하 답변 감사합니다.

kibumkim's profile image
kibumkim

asked

Ask a question