adder() 함수가 보이고 main 함수에서 adder() 함수를 호출하고 있습니다. 이때 스택 프레임이 어떻게 생기고 또 호출을 마친 다음에는 어떻게 사라질까요?
그림 9-4는 함수가 호출되어 스택 프레임이 할당될 때 스택 프레임 내에서 지역 변수가 쌓이는 순서를 나타냅니다.
인자부터 쌓이는데 오른쪽에서 왼쪽 순서로 쌓이고, 함수 내부에서는 위쪽에서 아래쪽으로 차례대로 쌓입니다.
그림 9-4 스택 프레임에 지역 변수가 쌓이는 순서
그림 9-5를 보면 esp가 보입니다. esp(extended stack pointer)는 스택 세그먼트의 맨 위를 가리키는 스택 포인터 레지스터입니다. 앞에 위치한 extended는 16비트에서 32비트로 넘어오면서 붙은 것입니다. 크게 중요한 것은 아니니 그냥 넘어가겠습니다.
그림 9-5 스택 프레임 할당 ①