시스템 프로그래밍

4-2. Load & Store 명령어 디자인

CalebHong 2022. 5. 12. 10:29

데이터 입출력 관점에서 레지스터는 임시 저장소가 됨

 

Load & Store 명령어의 필요성

* 명령어의 제한

 - 사칙연산의 피연산자는 숫자 or 레지스터

 - 연산결과는 레지스터에 저장

 - 즉 레지스터를 통해서 모든 연산을 진행

 

레지스터 - (Store) ->메인 메모리

레지스터 <- (Load) - 메인 메모리

 

* Load 명령어

 - 레지스터 정보읽어올 데이터 메모리의 주소 정보만을 필요로 함.

 ex) LOAD(110), r1, 0x20

 

* Store 명령어

 - Load와 동일하게 읽어올 레지스터 정보와 데이터를 저장할 메모리의 주소 정보만을 필요로 함

 ex) Store(111), r1, 0x20

 

int a = 10; // 0x10번지에 할당
int b = 20; // 0x20번지에 할당
int c = 0; // 0x30번지에 할당
c = a + b;

//명령어
LOAD r1, 0x10 // 메모리의 데이터를 레지스터로 불러옴
LOAD r2, 0x20 // 메모리의 데이터를 레지스터로 불러옴
ADD r3, r1, r2 // 레지스터의 데이터를 가지고 사칙연산하여 r3에 저장
STORE r3, 0x30 // 레지스터 r3에 있는 데이터를 메모리 주소(0x30)에 저장