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

+ Recent posts