Multiple Register Transfer 명령어, ldmfd 같은 명령어를 쓸 때, 끝에다 ^를 붙여주면 SPSR을 CPSR로 넣어줌.
ldmfd sp!, {r1-12, pc}^
r0, r12, pc로 stack에 있는 값을 빼내오면서, ^을 이용해서 SPSR을 CPSR로 넣어주는 일도 함
LDM SP!, {PC}^ : SP에 저장되어있는 주소값을 PC에 넣을 때 '^'을 붙여주면 CPSR이 SPSR로부터 동시에 복원
SWI_Handler
stmfd sp!, {r0-r12, r14} : register들을 backup
--- 구현하고 싶은 내용 추가
ldmfd sp!, {r0-r12, pc}^ : register 들을 restore
'개발' 카테고리의 다른 글
tvm (0) | 2019.12.21 |
---|---|
stack (0) | 2019.12.17 |
AArch64 generic timer (0) | 2019.12.09 |
plot graph color (0) | 2019.10.04 |
0713 kernel (1) | 2019.07.13 |