IT공부/IT서적

[뇌를 자극하는 윈도우즈 시스템 프로그래밍] 10장. 컴퓨터 구조 - 3

shine94 2025. 1. 30. 02:17

* 해당 글은 윤성우의 뇌를 자극하는 윈도우즈 시스템 프로그래밍 도서를 읽고 정리한 글입니다

   https://product.kyobobook.co.kr/detail/S000001223395

 

뇌를 자극하는 윈도우즈 시스템 프로그래밍 | 윤성우 - 교보문고

뇌를 자극하는 윈도우즈 시스템 프로그래밍 |

product.kyobobook.co.kr

 

 

 

 

* 스택 프레임

   함수 호출 과정에서 할당되는 메모리 블록

 

* 메모리 블록

   지역변수 선언으로 인해 할당되는 메모리 블록

 

* 스택에 데이터를 쌓거나 반환하기 위해서는 스택 위치를 기억해야 한다

 

* sp 레지스터(Stack Pointer 레지스터), ESP

   현재 스택의 최상단

 

* fp 레지스터(Frame Pointer 레지스터), EBP

   스택 프레임의 기준 주소

 

* EBP ~ ESP

   현재 함수의 스택 프레임 영역

 

* 프로세스의 메모리 구조

   [Code 영역]   -  명령어(Instruction Code)

   [Data  영역]   -  전역변수, static 변수

   [Heap 영역]   -  프로그래머 할당

   [Stack 영역]   -  지역변수, 전달인자 정보

 

* Code 영역에서 명령어를 IR 레지스터로 데이터를 가져오는 것을 Fetch라고 한다

 

* 함수 호출규약(Calling Convention)

   함수 호출시 인자를 전달하는 방식스택 프레임을 반환하는 방식을 약속해 놓은 것

Segment
Word Size
Calling Convention Parameters
in registers
Parameter
order on stack
Stack cleanup by
32 bit __cdecl   Caller(호출자)
__stdcall   Function(피호출자)
64 bit
Windows(MS, Intel) rcx/xmm0
Caller(호출자)
rdx/xmm1
r8/xmm2
r9/xmm3

 

* 콜백 함수(Callback Function)

   Windows 시스템에 의해 자동으로 호출되는 함수를 의미

   특정 상황에서 호출되어야 할 함수를 등록시키는 것이 가능한데, 이때 등록이 되는 함수를 가리켜 콜백 함수라 한다