"LDR and STR, immediate offset"의 두 판 사이의 차이
37번째 줄: | 37번째 줄: | ||
<p> </p> | <p> </p> | ||
<p>이상으로 간단히 immediate offset을 이용한 LDR/STR 명령에 대해 살펴보았습니다.</p> | <p>이상으로 간단히 immediate offset을 이용한 LDR/STR 명령에 대해 살펴보았습니다.</p> | ||
− | <p>잘못된 점이나 추가 문의사항은 TRACE32@ | + | <p>잘못된 점이나 추가 문의사항은 TRACE32@hancommds.com 으로 연락 부탁드립니다.</p> |
<p> </p> | <p> </p> | ||
<p>"<span style="color: #3366ff;"><strong><a href="/wiki/index.php/Cortex-M">TRACE32로 바라본 ARM - Cortex-M</a></strong></span>" 으로 돌아가기</p> | <p>"<span style="color: #3366ff;"><strong><a href="/wiki/index.php/Cortex-M">TRACE32로 바라본 ARM - Cortex-M</a></strong></span>" 으로 돌아가기</p> |
2020년 7월 24일 (금) 12:48 기준 최신판
이번엔 LDR/STR 명령에 상수값 오프셋이 들어간 경우를 살펴보겠습니다.
샘플은 아래와 같은 두 개의 명령을 사용하겠습니다.
LDR R0, [R13, #0x8] : pre-indexed
LDRB R1, [R7], #0x1 : post-indexed
pre-indexed
LDR R0, [R13, #0x8] 와 같이 오프셋이 [] 안에 들어가 있는 경우를 말합니다.
아래의 샘플을 보면,
LDR R0, [R13, #0x8] 명령을 수행할 때,
R13인 0x2000_2388번지에서 0x8번지 떨어진 0x2000_2390 번지에서 4바이트를 R0로 읽어오는 것을 확인할 수 있습니다.
주의할 것은 R13의 값은 변하지 않습니다.
실행 전 :
실행 후 :
post-indexed
"LDRB R1, [R7], #0x1" 와 같이 오프셋이 [] 밖에 나와있는 경우를 말합니다.
아래의 샘플을 보면,
"LDRB R1, [R7], #0x1" 명령에 의해
- R7의 값인 0x0800_4B30 번지에서 1바이트를 R1으로 읽어오고
- 그 이후에 R7의 값이 0x1만큼 증가하는 것을 볼 수 있습니다.
실행 전 :
실행 후 :
이상으로 간단히 immediate offset을 이용한 LDR/STR 명령에 대해 살펴보았습니다.
잘못된 점이나 추가 문의사항은 TRACE32@hancommds.com 으로 연락 부탁드립니다.
"TRACE32로 바라본 ARM - Cortex-M" 으로 돌아가기