시스템 프로그래밍

컴퓨터 구조 2

은행털이 2024. 10. 18. 12:36

컴퓨터 디자인을 한다면

  • 레지스터 디자인
    - 레지스터는 몇 비트로 구성할 것인가?
    - 몇 개 정도로 레지스터를 구성할 것인가?
    - 레지스터 각각을 무슨 용도로 사용할 것인가?
  • 명령어 디자인
    - 명령어의 기본 모델은 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