티스토리 뷰

반응형

※ 본 포스팅은 개인공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있음을 밝힙니다.


예전에 이것과 관련된 내용을 IT 포럼에서 발표하기 위해 만들어 놓은 prezi가 있다.

함께 참고하면 좋을 듯.

http://prezi.com/obkhqdxaz3zx/programming-compile-loading-for-korean/


전 포스팅에서 메모리의 영역은 코드, 스택, 데이터, 힙 세그먼트로 나눠진다고 조사하였다. 스택(Stack) LIFO(Last in Last out) 구조로 이루어져 있다. LIFO란 마지막으로 들어온 값이 처음으로 나간다는 뜻으로써 FIFO(First in First out) 구조의 큐(Queue)와는 상반되는 개념으로 설명되고 있다. 스택 프레임은 스택 세그먼트에서 함수의 호출과 동시에 해당 함수의 스택 프레임으로써 만들어 진다. 그리고 코딩의 순서에 맞춰 LIFO 구조로 차곡차곡 쌓여진다. 이 때 esp라는 포인터가 사용되게 되는데 흔히 스택 포인터라고 하며 현재 데이터의 위치를 알려준다. 그리고 ebp라는 흔히 베이스 포인터라고 일컫는 또 다른 포인터가 있는데, 이는 스택 프레임이 시작된 위치의 주소값을 가르키며 나중에 esp가 시작점으로부터 얼마나 벗어나 있는지를 가리킨다. 스택 프레임이 소멸하는 시점은 해당 스택 프레임의 함수가 종료되는 시점에서 함께 소멸된다. 이때 ebp는 돌아와야 할 주소 값을 가리킨다

반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

최근에 올라온 글
최근에 달린 댓글
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함
Total
Today
Yesterday