콜스택1 함수 호출 시 스택프레임이 관리되는 원리 (어셈블리 레벨) 1. 스택프레임이란 프로그램이 실행되다가 함수를 호출하면 제어흐름은 호출된 함수 내부로 넘어간다. 이때 해당 함수가 작업하고 있는 데이터를 저장할 새로운 공간인 메모리 블록이 생성되는데, 이 블록에는 함수가 전달받은 인자나 내부 지역 변수 등이 저장된다. 이러한 함수의 데이터 블록은 위 그림과 같이 스택 자료구조로 적재된다. 프로그램의 본질이 main 함수로부터 실행이 시작되어 하위 함수를 호출해나가는 top-down 방식이기 때문에 자신을 호출한 함수로 다시 제어흐름을 넘기기 위해서는 호출 히스토리가 필요하며, 이를 위해 스택이 사용되는 것이다. 2. SP(스택 포인터)와 BP(베이스 포인터) 스택이 실제로 어떻게 관리되는지 어셈블리어를 확인해보자. 2-1. 실행 환경 사실 어셈블리는 시스템마다 종류가.. 2023. 12. 26. 이전 1 다음