suminworld

concept 14

[임시] 강의자료 정리: 함수 호출 과정 - Virtual Memory

연세대학교 운영체제론 OSTEP 강의 자료 정리전체 구조 ┌─────────────┬──────────────────────────────┐│ 단계 │ 역할 │├─────────────┼──────────────────────────────┤│ 1. Prologue │ 스택 프레임 생성 ││ 2. Body │ 함수 코드 실행 ││ 3. Epilogue │ 스택 프레임 복원 및 반환 │└─────────────┴──────────────────────────────┘0. call 명령 직후 (callee 진입 시점)스택은 높은 주소에서 낮은 주소로 성장 높은 주소 (예: 0x500)┌──..

concept 2025.10.05

x86-64 어셈블리 명령어

데이터 이동 명령어movq - Move Quadword (64비트) 형식: movq source, destination기능: 64비트 데이터를 source에서 destination으로 복사예시:movq %rsp, %rbp # %rsp의 값을 %rbp로 복사movq %rsi, -16(%rbp) # %rsi를 메모리 [%rbp-16]에 저장movl - Move Long (32비트) 형식: movl source, destination기능: 32비트 데이터를 source에서 destination으로 복사특징: 목적지가 64비트 레지스터면 상위 32비트 자동 0예시:movl $0x0, %eax # 상수 0을 %eax에 저장movl %edi, -4(%rbp) # %edi를 메..

concept 2025.10.05

[Virtual Memory] x86-64 함수 호출 & Virtual Memory 기반 스택 프레임 정리 (SysV ABI)

Virtual Memory 강의자료 기반이 글은 System V AMD64 ABI(Linux, macOS) 기준입니다. Windows x64는 하단 비교표 참고🎯 TL;DR - 핵심 요약┌─────────────┬──────────────────────────────────────┐│ Prologue │ push %rbp; mov %rsp, %rbp │├─────────────┼──────────────────────────────────────┤│ Body │ mov/add (레지스터 연산) ││ │ 지역변수: %rbp - N │├─────────────┼──────────────────..

concept 2025.10.05

x86-64 스택 프롤로그(Stack Prologue)와 스택 프레임(Stack Frame)

스택 프롤로그(Stack Prologue)란?함수가 시작될 때 자기만의 작업 공간을 만드는 과정함수마다 자기만의 지역 변수 공간이 필요합니다. 이 공간을 스택에 만드는 게 바로 프롤로그입니다. main() 함수 실행 중 ↓func() 함수 호출 ↓func()는 자기 공간이 필요함 ↓스택 프롤로그 실행!전형적인 3단계 과정 assemblypush %rbp # (1) 호출자의 RBP를 스택에 저장mov %rsp, %rbp # (2) 현재 RSP를 새 RBP로: 기준점 설정sub $N, %rsp # (3) 지역변수용 공간 N바이트 확보실제 예시로 이해하기C 코드 c// demo.cint f(void) { int x = 5; retur..

concept 2025.10.02