컴퓨터구조 - (3) LOAD & STORE 명령어 디자인
Operating System & Computer Architecture/윈도우즈 시스템 프로그래밍 2018. 2. 1. 22:25"사칙연산결과를 레지스터에만 저장할 수 있도록 하겠다." 라는 제약사항이 있는데,
그렇다면 메인메모리의 주소값을 통한 사칙연산은 할수없다.
따라서 메인메모리에 저장된 데이터를 레지스터로 일단 옮겨놓은후 사칙연산을 하여야한다.
[메모리 -> 레지스터 ]: LOAD [레지스터 -> 메모리 ]: STORE
명령어 디자인
Load 명령어 디자인을 해석하면 "destination(레지스터) 에 source(메모리 주소값)에있는 데이터를 저장해라" 라는 명령어이다.
STORE도 마찬가지로 "destination(메모리)에 source(레지스터)에있는 데이터를 저장해라" 라는명령어이다.
예)
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,0x30
위순서대로cpu는 명령을 진행할것이다.
하지만 여기서 ADD때와같은 문제점이있다.
주소값을 표현할때 해봐야 8비트(0~255)밖에 표현이 안된다는 것이다.
cpu 데이터버스크기가 16비트인데 메모리 주소공간을 8비트만 쓸것인가?
이에대한 답은 컴퓨터구조 -(4) 에 실어두었다.
'Operating System & Computer Architecture > 윈도우즈 시스템 프로그래밍' 카테고리의 다른 글
컴퓨터 구조 -(5) 스택프레임 (0) | 2018.02.01 |
---|---|
컴퓨터 구조 - (4) 주소 지정방식 (0) | 2018.02.01 |
컴퓨터구조 -(2) 레지스터 (0) | 2018.02.01 |
컴퓨터구조 - (1) (0) | 2018.02.01 |