반응형
3.4.4 스택 데이터의 저장과 추출
스택(Stack)
- 스택은 프로시저 호출을 처리하는 데 중요한 역할
- 후입선출(Last In, First Out / LIFO) 형태로 추가, 제거되는 구조
- 제거하는 값이 가장 최근에 추가된 값
- push : 데이터 추가
- pop : 데이터 제거
- 스택은 탑(top) 원소가 모든 스택 원소 중에서 가장 낮은 주소를 갖는 형태
- 스택은 아래 방향으로 성장
- 스택 포인터(%rsp)는 스택 맨 위 원소(top)의 주소를 저장
- pushq, popq 인스트럭션은 한개의 오퍼랜드를 사용
- 추가할 소스 데이터와 추출을 위한 데이터 목적지
# 쿼드워드 값을 스택에 추가하는 과정(push) subq $8,%rsp # 스택 포인터를 8만큼 감소 movq %rbp,(%rsp) # 쿼드워드를 새로운 탑에 기록 # 쿼드워드 값을 스택에 추출하는 과정(pop) movq (%rsp),%rbp # 쿼드워드를 스택에서 읽어냄 addq $8,%rsp # 스택 포인터를 8만큼 증가
반응형
'크래프톤 정글 - TIL' 카테고리의 다른 글
크래프톤 정글 5기 TIL - Day 21 (0) | 2024.04.10 |
---|---|
크래프톤 정글 5기 TIL - Day 20(CS:APP) (0) | 2024.04.08 |
크래프톤 정글 5기 TIL - Day 18(CS:APP) (0) | 2024.04.06 |
크래프톤 정글 5기 TIL - Day 18(DP, Greedy, Knapsack) (0) | 2024.04.05 |
크래프톤 정글 5기 TIL - Day 17(LCS) (0) | 2024.04.04 |