"LDR and STR"의 두 판 사이의 차이

TRACE32
이동: 둘러보기, 검색
(새 문서: <p><span style="font-family: malgun; color: #ff0000;"><strong><span style="font-size: large;">* 작성중입니다</span></strong></span></p> <p> </p> <p><span style="font-family...)
(차이 없음)

2015년 4월 30일 (목) 11:35 판

* 작성중입니다

 

LDR and STR

ARM은 메모리값의 연산을 위해 일반적으로 아래와 같은 순서로 작업하게 됩니다.

1. 메모리값을 레지스터로 읽어들인다 (Load)

2. 레지스터에서 그 값을 변경한다

3. 변경된 값을 다시 메모리로 적어넣는다 (Store)

이 과정에서 항상 메모리에서 값을 읽어오고 적어넣는 동작이 반복적으로 일어나고,

대부분 타깃의 오류는 메모리에서 값을 읽고 쓰는 과정 중에 발생하게 됩니다.

그래서 아래에 Load & Store 명령에 대해 간단히 소개해 보도록 하겠습니다.

 

 

LDR(Load register) : 메모리값을 레지스터로 복사합니다

아래는 LDR명령의 가장 기본적인 예 입니다.

0x0800_53E0 번지에서 4바이트를 읽어 R0로 복사하게 됩니다.

실행전 :

 

실행후 :

 

 

STR(Store register) : 레지스터 값을 메모리로 씁니다

STR은 LDR과 반대의 역할을 하는 명령어입니다.

 

실행 전 :