[ Stack ] Stack & Stack Frame | 스택이란 무엇일까?
·
Archive/Hacking
Stack? - 메모리의 일부분으로 LIFO(Last Input First Output) 방식으로 동작하는 자료 구조. 스택은 PUSH 와 POP 이라는 동작을 지원하는데, PUSH는 데이터를 스택에 넣는 명령어를 뜻하고, POP은 데이터를 스택에서 꺼내는 명령어입니다. 보통 데이터가 들어가면 들어갈수록 데이터의 주소가 증가한다고 착각하기 쉬운데, 스택은 데이터가 들어가면 들어갈수록 데이터의 주소가 감소합니다. 따라서 PUSH를 하면 스택의 주소는 4바이트만큼 감소하면서 데이터는 스택에 쌓이고, POP을 하면 스택의 주소는 4바이트만큼 증가하면서 데이터가 꺼내집니다. 스택에 데이터가 들어갈수록 주소값이 작아지게 설계된 이유는 스택 구조 위에 있는 데이터가 Kernel과 관련이 있기 때문에 그렇습니다. 운..