728x90

LOAD와 STORE 필요성

    -> 저장소 : 연산의 결과를 저장할 공간. 레지스터     ->피연산자 1, 2 : 연산에 사용될 피연산자. 레지스터 혹은 숫자(피연산자가 표현할 수 있는 숫자의 범위 안)

- RISC 환경에서 디자인한 사칙연산 명령어 구성에 제한이 많음

    -> 연산 결과는 레지스터에 저장(메모리에 직접 저장 불가)

    -> 피연산자는 레지스터 정보 혹은 숫자만 가능(메모리를 직접 참조할 수 없음)

    -> 모든 연산은 레지스터를 통해야 함

 

LOAD / SOTRE 명령어

- LOAD : 메인 메모리에서 데이터를 CPU 내부로 불러들여 레지스터에 저장

- STORE : 연산 결과를 메인 메모리에 저장

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

- 위와 같은 연산을 하기 위해서는 메인 메모리의 값을 레지스터로 옮겨와 더한 후 c로 이동해야 함

 

LOAD / SOTRE 명령어 디자인

- LOAD

    -> destination : 데이터를 저장할 레지스터 정보

    -> source : 데이터를 읽어올 메모리의 주소 정보

- STORE

    -> source : 데이터를 읽어올 레지스터 정보

    -> destination : 데이터를 저장할 메모리의 주소 정보

- 아래의 연산 실행 단계

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

- STORE r3, 0x20

728x90

+ Recent posts