WSP10

LJM·2023년 7월 17일
0

컴퓨터지식

목록 보기
11/41

LOAD & STORE 명령어 디자인

메인메모리에 저장된 데이터를 레지스터로 옮기는 명령어가 필요하다
메인메모리 => 레지스터 명령어는 LOAD

LOAD 는 110 으로 정의함
DESTINATION 은 목적지
SOURCE 는 불러올 데이터 위치

LOAD R3, 0X07

0X07번지에 존재하는 데이터를 레지스터 R3에 저장하라
위의 명령어를 아래의 바이너리로 구성된다

컨트롤유닛은 명령어가 LOAD 이면 피연산자 두개임을 알고 처리할것이다. 즉 명령어의 타입에 따라서 컨트롤 유닛이 디자인된다

이번에는 레지스터에 존재하는 데이터를 메인 메모리로 이동시키는 명령어에 대해 STORE 라는 심볼을 주고 이진코드는 111로 디자인하자

STORE R2, 0X08
레지스터 R2에 존재하는 데이터를 메인 메모리 0X08번지에 저장하라
아래와 같이 명려어가 구성된다

이제 아래의 코드를 실행해보자

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

LOAD R1, 0X10 //0X10번지의 데이터를 R1로 이동
LOAD R2, 0X20 //0X20번지의 데이터를 R2로 이동
ADD R3, R1, R2 //R1, R2에 저장된 값을 더해서 R3에 저장
STORE R3, 0X30 //R3에 저장된 값을 0X30번지에 저장

덧셈연산의 피연산자는 숫자or레지스터 가 되어야 하므로 메모리에서 레지스터로 데이터를 불러오는 과정이 필요한것이다

profile
게임개발자 백엔드개발자

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

좋은 글 잘 읽었습니다, 감사합니다.

답글 달기
comment-user-thumbnail
2023년 7월 18일

훌륭한 글이네요. 감사합니다.

답글 달기