인프런 커뮤니티 질문&답변
14:25 스택메모리 사용영역설정 질문 있습니다
작성
·
196
0
위 체크한 부분에서 스택에 범위를 설정한다 하셨는데
이전 함수ebp를 푸쉬한다음 ebp에 esp를 넣어놓고, 매개변수와 리턴할주소값을 일단 넣은 다음 공간을 확보하는건가요?
순서가
1.이전함수bp값을 저장
2.ebp값을esp로 설정
3.esp에 사용할범위설정
맞나요?
정확히 어떤식으로 영역설정이 되는건가요?
퀴즈
함수를 사용하는 가장 큰 이점은 무엇일까요?
변수 스코프를 없앨 수 있다
프로그램 실행 속도가 빨라진다
코드의 재사용성을 높이고 관리가 쉬워진다
무조건 입출력이 있어야 한다
답변 1
1
Rookiss
지식공유자
이전 함수ebp를 푸쉬한다음 ebp에 esp를 넣어놓고, 매개변수와 리턴할주소값을 일단 넣은 다음 공간을 확보하는건가요?
네 맞습니다!
1.이전함수bp값을 저장
-> 함수가 끝나면 이전 함수 영역으로 돌아가야 하니 복원 용도로 이전 bp값을 스택에 저장합니다.
2.ebp값을esp로 설정
-> 현재 esp 값이 딱 현재 함수의 스택 프레임 시작 영역이니 이를 ebp로 '찝어줍니다'
3.esp에 사용할범위설정
-> sub esp, XX 를 이용해 esp를 크게 내려줘서 결과적으로 ebp~esp 로 가리키는 중간 영역을 사용하게 됩니다.





아하 답변 감사합니다.