"ldm r6,{r2-r3}" 명령어를
Trace32로 실행한 과정을 업데이트할께요.
R6 레지스터가 C011AACC 주소를 가르키고 있고,
C011AACC 주소에는 10001000 값이 담겨져 있어요.
[Before]
N _ R0 0 R8 0 ^S+ ^Stack_+
Z _ R1 0 R9 0
C _ R2 0 R10 0
V _ R3 0 R11 0
Q _ R4 0 R12 0
R5 0 R13 D000D000
0 _ R6 C011AACC R14 0
1 _ R7 0 PC C01A7310
2 _ SPSR 10 CPSR 01D3
(where)
_____address|________0________4________8________C
NSD:C011AAC0| E59F2198 E59F3198 E88B000C>10001000
NSD:C011AAD0| E59B300C E12FFF33 E5942014 E5943010
NSD:C011AAE0| E023A392 E5942000 E2833080 E0823003
"ldm r6,{r2-r3}" 명령어를 실행하고 나니,
R2와 R3이 각각, 10001000, E59B300C로 업데이트 되었네요.
[After]
N _ R0 0 R8 0
Z _ R1 0 R9 0
C _ R2 10001000 R10 0
V _ R3 E59B300C R11 0
Q _ R4 0 R12 0
R5 0 R13 D000D000
0 _ R6 C011AACC R14 0
1 _ R7 0 PC C01A7314
2 _ SPSR 10 CPSR 01D3
아래와 같이 보면 좀 더 이해하기 쉽겠죠?
_____address|________0________4________8________C
NSD:C011AAC0| E59F2198 E59F3198 E88B000C>10001000(R2)
NSD:C011AAD0| E59B300C(R3) E12FFF33 E5942014 E5943010
NSD:C011AAE0| E023A392 E5942000 E2833080 E0823003
'시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 > 4장: 어셈블리 명령어' 카테고리의 다른 글
arm instruction(명령어) - ldr (0) | 2023.06.10 |
---|---|
arm instruction(명령어) - push & 스택 푸쉬 (0) | 2023.06.10 |
arm instruction(명령어) - cmn (0) | 2023.06.10 |
arm instruction(명령어) - strleb (0) | 2023.06.10 |
arm - ldrd 명령어 (0) | 2023.06.10 |