피드로 돌아가기
Some basic understanding of function calls
Dev.toDev.to
Infrastructure

Stack Frame 기반의 Execution Context 제어 및 Function Call 메커니즘 분석

Some basic understanding of function calls

E_Chronosands::2026년 5월 12일3intermediate

Context

CPU 수준에서 Function, Class와 같은 고수준 추상화 개념이 부재한 하드웨어 제약 상황 분석. 이를 해결하기 위해 메모리 주소, Register, Jump 명령어를 조합한 실행 흐름 제어 구조 필요.

Technical Solution

  • Stack 데이터 구조를 활용한 현재 Execution Context 저장 및 복원 프로세스 설계
  • push rbpmov rbp, rsp 명령어를 통한 개별 함수 전용 Stack Frame 생성으로 독립적 메모리 공간 확보
  • call 명령어를 통한 Return Address 저장 및 제어권 이동으로 함수 간 분기 구현
  • eax Register를 활용한 함수 실행 결과값의 효율적 전달 체계 구축
  • pop rbpret 명령어를 통한 이전 Stack Frame 복원 및 원래 실행 지점으로의 정확한 복귀 구현
  • 성능 최적화를 위해 Stack Frame 제거 시 실제 데이터를 삭제하지 않고 Register 상태만 변경하는 지연 처리 방식 적용

- 어셈블리 수준의 Stack Frame 동작 원리를 이해하여 메모리 오염 및 Stack Overflow 위험 요소 사전 검토 - Compiler의 최적화 단계에서 불필요한 Step이 생략될 수 있음을 인지하고 저수준 디버깅 시 Register 상태 변화 추적 - 함수 호출 시 발생하는 Context Switching 비용을 고려한 Hot-path 코드 설계

원문 읽기