명령어 set을 가져오기 위한 여러 주소 지정방식을 알아보자
- Immediate mode : 명령어에 이미 operand가 있다.
- Register mode : 명령어에 operand가 있는 Register를 가리키는 게 있다.
- Direct memory mode : operand를 가진 메모리의 주소가 있다.
- Register indirect mode : Register mode와 비슷하게 operend가 있다고 하는 register에 접근하니, register가 operend가 있는 메모리의 주소를 가리킨다.
- Indirect memory mode : operend가 있는 메모리의 주소를 가지고 있는 메모리의 주소 값을 가지고 있다.
- Displacement mode : Register에 있는 값과 Instruction의 A값을 더해서 operand가 있는 메모리의 주소값을 얻는다.
Addressing mode에 따른 장단점이다.
( ) 괄호의 해석은 "실제 주소는 괄호 안에 있는 값이 가리키는 곳에 있다"라고 풀어서 생각하면 된다.
즉, EA = (A)라고 하면, 실제 원하는 값이 있는 주소는 A가 가리키는 곳에 있다.
EA = (10)이라고 하면, 주소 0x10 번지에 우리가 원하는 값의 실제 주소가 있다.
Displacement mode는 3가지 방법을 가지고 있다.
- Relative Addressing
- EA = A + (PC)
- PC = Program Counter (CPU에서 자동으로 증가시켜줌)
- 변위 정보가 자동으로 갱신되는 장점이 있다. (명령어의 address bit를 아낄 수 있다.)
- Base-Register Addressing
- EA = A + (R)
- 기준이 되는 정보가 Register에 있고 A값은 변위 정보이다
- Indexed Addressing
- EA = A + (R)
- 기준이 되는 정보가 A이고 Register에 있는 값이 변위가 된다.
'CS > Computer Architecture' 카테고리의 다른 글
[컴퓨터 구조] 산술 연산 (Shift) (2) | 2021.12.01 |
---|---|
[컴퓨터 구조] 컴퓨터 시스템 개요 (2) | 2021.11.24 |
[컴퓨터 구조] Instruction Set (0) | 2021.06.12 |
[컴퓨터 구조] Control Unit (0) | 2021.06.06 |
[컴퓨터 구조] ILP & Superscalar (0) | 2021.06.04 |