1. 레지스터를 몇 비트로 구성할 것인가?
2. 몇 개 정도로 레지스터를 구성할 것인가?
3. 레지스터 각각을 무슨 용도로 사용할 것인가?
ex) 예제는, 이해를 위한 가정일 뿐 실제 구성이 그렇다는 의미는 아님.
1. 64bit로 구성하겠다.
2^64
이다.2. r0 ~ r15
까지의 레지스터를 구성하겠다.
3. 아래와 같이 r1 ~ r8레지스터에는 각각의 용도를 지정. r9 ~ r15는 부족할 때 쓰겠다.
r1: AX (Accumulator register). 산술 연산에 사용.
r2: CX (Counter register). 시프트/회전 연산과 루프에서 사용.
r3: DX (Data register). 산술 연산과 I/O 명령에서 사용.
r4: BX (Base register). 데이터의 주소를 가리키는 포인터로 사용. (세그멘티드 모드에서는 세그멘트 레지스터 DS로 존재)
r5: SP (Stack Pointer register). 스택의 최상단을 가리키는 포인터로 사용.
r6: BP (Stack Base Pointer register). 스택의 베이스를 가리키는 포인터로 사용.
r7: SI (Source Index register). 스트림 명령에서 소스를 가리키는 포인터로 사용.
r8: DI (Destination Index register). 스트림 명령에서 도착점을 가리키는 포인터로 사용.
r9 ~ r15: 미 지정
0~15는 명령어, 16~31은 저장소, 31~46은 피연산자1, 47~62는 피연산자2