728x90
LOAD와 STORE 필요성
- 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
'Programming > System Programming' 카테고리의 다른 글
윈도우즈 시스템 프로그래밍 - 5. 프로세스의 생성과 소멸(1) (0) | 2020.07.15 |
---|---|
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(4) (0) | 2020.07.12 |
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(2) (0) | 2020.07.09 |
윈도우즈 시스템 프로그래밍 - 4. 컴퓨터 구조에 대한 두 번째 이야기(1) (0) | 2020.07.09 |
윈도우즈 시스템 프로그래밍 - 3. 64비트 기반 프로그래밍(2) (0) | 2020.07.08 |