ARM Stack push, pop

Sireal·2024년 3월 26일
0

ARM Systems

목록 보기
3/3

Push, Pop


Stack push = STMDB, STMFD

STMDB: STore Multi Decrease Before
- SP를 역순으로 쌓되, Data 처리전 SP 삽입

  • STMFD: STore Multi Full Descending
    - SP를 꽉꽉 채우며 반대로 쌓기

PUSH를 할 때, 높은주소에서 낮은주소로 데이터를 쌓으며 동작하며, 정말 동작하는 차례로 쌓인다.

POP은 이 것의 역순

Stackframe


프로그램이 동작하면 스택이 쌓이는데, 스택은 자신만의 스택프레임을 갖게된다.

스택프레임은 함수등 동작당시의 해당 스택의 틀이다.

스택 프레임 내에 필요한 레지스터 {LR 등}을 백업해뒀다 다음동작때 복구할때 사용한다.

Stacking과 Unstacking


Stacking은 스택프레임에 스택을 쌓는 것을 말한다.
Unstaking은 그 반대.

인터럽트 발생 당시 Stacking, 처리, Unstacking 이렇게 동작.
Stacking시 CM4기준 R0, R1, R2, R3, R12, LR, PC, xPSR순으로 쌓인다.

Context Switching의 일부이다.

profile
달리다 넘어져도 아픔마저 즐기려하는 사람

0개의 댓글