작성한 질문수
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
스택 메모리
작성
·
277
0
add rsp, 16을 해준 이유는 push 1, push 2를 통해rsp 값이 -16 됐기 때문으로 이해했습니다.초기 스택의 시작지점과 프로그램 종료 전의 rsp가 동일하지 않아서 crash가 생기는건가요?그렇다면 rsp처럼 현재 스택의 top이 아닌 초기 스택의 bottom을 저장하고 있는 포인터도 있는건지 궁금합니다!
add rsp, 16
push 1, push 2
답변 2
1
rsp가 꼭 어디 위치에 있어야 되고 그런 것은 아니고, 별도의 bottom 위치가 있는 것도 아닙니다.다만 ret 같은 특수 명령들(특히 코드 위치 이동 관련)을 만나면 rsp가 가리키는 스택 위치의 값을 꺼내서 그쪽으로 가게 되는데요.만약 주소가 엉뚱하다면 크래시가 나겠죠.
빠른 답변 감사합니다!!