CPU와 아키텍처
프로그램에서 서브루틴(함수)을 호출할 때 복귀 주소 등을 일시적으로 저장하기 위해 일반적으로 사용되는 영역은?
- A스택
- B캐시의 태그
- CROM의 고정 영역
정답과 해설 보기
정답: A. 스택
서브루틴을 호출하면 복귀 주소, 저장해야 할 레지스터 값, 지역 변수 등이 스택에 쌓입니다. 스택은 나중에 넣은 것을 먼저 꺼내는(LIFO) 구조로, 호출이 중첩되거나 재귀가 되어도 올바른 순서로 돌아올 수 있습니다. 맨 위 위치는 스택 포인터가 가리킵니다. 재귀가 너무 깊어 영역을 다 쓰면 스택 오버플로가 되며, 배열 범위를 넘어 복귀 주소를 덮어쓰는 공격도 있습니다.
- A. 정답입니다. 복귀 주소 등은 스택에 저장됩니다.
- B. 캐시의 태그는 캐시 데이터가 어느 주소의 것인지를 나타내는 정보입니다.
- C. ROM은 고쳐 쓸 수 없으므로 실행 시 임시 저장에는 쓸 수 없습니다.