"LDR and STR, immediate offset"의 두 판 사이의 차이

TRACE32
이동: 둘러보기, 검색
(새 문서: <p>지난번 LDR/STR의 기본적인 내용에 이어, 이번엔 LDR/STR 명령에 상수값 오프셋이 들어간 경우를 살펴보겠습니다.</p> <p> </p> <p>샘플은 아...)
 
 
(같은 사용자에 의한 2개의 중간 편집이 숨겨짐)
1번째 줄: 1번째 줄:
<p>지난번 LDR/STR의 기본적인 내용에 이어, 이번엔 LDR/STR 명령에 상수값 오프셋이 들어간 경우를 살펴보겠습니다.</p>
+
<p>이번엔 LDR/STR 명령에 상수값 오프셋이 들어간 경우를 살펴보겠습니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>샘플은 아래와 같은 두 개의 명령을 사용하겠습니다.</p>
 
<p>샘플은 아래와 같은 두 개의 명령을 사용하겠습니다.</p>
<p>LDRB R1, [R7], #0x1 : post-indexed</p>
 
 
<p>LDR R0, [R13, #0x8] : pre-indexed</p>
 
<p>LDR R0, [R13, #0x8] : pre-indexed</p>
 +
<p>LDRB R1, [R7], #0x1 : post-indexed</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
<p>pre-indexed</p>
+
<p><strong style="color: #3366ff; font-size: large;">pre-indexed</strong></p>
 
<p>LDR R0, <span style="color: #000000;">[</span>R13, <span style="color: #ff9900;"><strong>#0x8</strong><span style="color: #000000;">]</span></span> 와 같이 오프셋이 [] 안에 들어가 있는 경우를 말합니다.</p>
 
<p>LDR R0, <span style="color: #000000;">[</span>R13, <span style="color: #ff9900;"><strong>#0x8</strong><span style="color: #000000;">]</span></span> 와 같이 오프셋이 [] 안에 들어가 있는 경우를 말합니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
14번째 줄: 14번째 줄:
 
<p>주의할 것은 R13의 값은 변하지 않습니다.</p>
 
<p>주의할 것은 R13의 값은 변하지 않습니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
<p>실행 전 :</p>
+
<p style="padding-left: 30px;">실행 전 :</p>
<p><img src="/data/wiki/2015-04-30/1430380969.jpg" alt="" /></p>
+
<p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430380969.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 +
<p style="padding-left: 30px;">실행 후 :</p>
 +
<p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430380983.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
<p>실행 후 :</p>
 
<p><img src="/data/wiki/2015-04-30/1430380983.jpg" alt="" /></p>
 
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 +
<p><span style="font-size: large; color: #3366ff;"><strong>post-indexed</strong></span></p>
 +
<p>"LDRB R1, [R7], <span style="color: #ff9900;"><strong>#</strong><strong>0x1</strong></span>" 와 같이 오프셋이 [] 밖에 나와있는 경우를 말합니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 +
<p>아래의 샘플을 보면,</p>
 +
<p>"LDRB R1, [R7], #0x1" 명령에 의해</p>
 +
<p style="padding-left: 30px;">- R7의 값인 0x0800_4B30 번지에서 1바이트를 R1으로 읽어오고</p>
 +
<p style="padding-left: 30px;">- 그 이후에 R7의 값이 0x1만큼 증가하는 것을 볼 수 있습니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
 +
<p style="padding-left: 30px;">실행 전 :</p>
 +
<p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430381161.jpg" alt="" /></p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
<p>post-indexed</p>
+
<p style="padding-left: 30px;">실행 후 :</p>
<p>LDRB R1, [R7], #0x1 와 같이 오프셋이 [] 밖에 나와있는 경우를 말합니다.</p>
+
<p style="padding-left: 30px;"><img src="/data/wiki/2015-04-30/1430381165.jpg" alt="" /></p>
<p>&nbsp;</p>
+
<p>아래의 샘플을 보면,</p>
+
<p>"LDRB R1, [R7], <strong><span style="color: #ff9900;">#0x1</span></strong>" 명령에 의해</p>
+
<p>- R7의 값인 0x0800_4B30 번지에서 1바이트를 R1으로 읽어오고</p>
+
<p>- 그 이후에 R7의 값이 0x1만큼 증가하는 것을 볼 수 있습니다.</p>
+
<p>&nbsp;</p>
+
<p>주의할 것은, LDR<span style="color: #ff9900;"><strong>B</strong></span>의 경우 1바이를 읽어오는 명령이라는 것입니다.</p>
+
 
<p>&nbsp;</p>
 
<p>&nbsp;</p>
<p>실행 전 :</p>
+
<p>이상으로 간단히 immediate offset을 이용한 LDR/STR 명령에 대해 살펴보았습니다.</p>
<p><img src="/data/wiki/2015-04-30/1430381161.jpg" alt="" /></p>
+
<p>잘못된 점이나 추가 문의사항은 TRACE32@hancommds.com 으로 연락 부탁드립니다.</p>
 
<p>&nbsp;</p>
 
<p>&nbsp;</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><img src="/data/wiki/2015-04-30/1430381165.jpg" alt="" /></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" 으로 돌아가기