컴퓨터 디자인을 한다면
- 레지스터 디자인
- 레지스터는 몇 비트로 구성할 것인가?
- 몇 개 정도로 레지스터를 구성할 것인가?
- 레지스터 각각을 무슨 용도로 사용할 것인가? - 명령어 디자인
- 명령어의 기본 모델은 16비트 명령어
- 2bit : 예약
- 3bit : 연산자
- 3bit : 저장소(store)
- 4bit : 피연산자 1
- 4bit : 피연산자 2
LOAD, STORE 명령어의 필요성과 디자인
- 사칙연산의 피 연산자는 숫자 or 레지스터이며 연산 결과는 레지스터에 저장됨
- 즉 레지스터를 통해 모든 연산을 진행하겠다는데서 착안
- LOAD 명령어
- LOAD r1, 0x20(메모리 주소) > r1에 0x20의 값을 로드 - STORE 명령어
- STORE r1, 0x20(메모리 주소) > 0x30에 r1의 값을 저장
Direct모드와 Indirect 모드
- 데이터를 불러올 때, 피 연산자에 주소값을 직접 사용해 참조한다면, 4비트에서 1비트를 레지스터 여부 플래그비트로 사용하므로 3비트만, 즉 매우 적은 메모리 범위만 참조 할 수 있음 > Direct 모드
- 이를 해결하기 위해 Indirect모드를 사용하며 다음과 같다
- Direct 모드와 달리 피 연산자의 주소값을 참조하여 바로 값을 읽어오는게 아니라, 연산자의 주소값을 참조하여 여기에 저장된 다른 메모리 주소를 재참조해서 값을 읽어온다.
'시스템 프로그래밍' 카테고리의 다른 글
커널 오브젝트와 오브젝트 핸들 (0) | 2024.10.18 |
---|---|
프로세스의 생성과 소멸 (0) | 2024.10.18 |
64비트 기반 프로그래밍 (0) | 2024.10.18 |
아스키코드와 유니코드 (0) | 2024.10.18 |
컴퓨터 구조 (1) | 2024.10.18 |