명령어 형식과 주소 지정 방식 (Addressing Mode)

I. CPU 메모리 참조 방식, 명령어 형식과 주소 지정 방식

개념도개념
– 프로그램 수행을 위해 연산에 사용되는 명령어의 구조와 데이터가 기억장치의 주소를 지정하는 방식

– Instruction은 OPCode와 Operand 주소로 이루어져 있으며, 주소 지정 방식에 따라 기억장치를 참조

 

II. 명령어 형식의 분류 및 상세 설명

가. 명령어 형식의 분류

나. 명령어 형식의 상세 설명

형식상세 설명사례
0-주소
명령어
– 연산 코드만 존재
– 스택 구조
PUSH, POP 연산
1-주소
명령어
– 오퍼랜드를 한 개만 포함
– 하나의 연산 대상은 누산기(AC)에 있고 나머지 주소로 연산 대상 지정
– 단일 누산기 구조
LOAD X ;
AC ← M[X]
2-주소
명령어
– 오퍼랜드가 2개인 연산
– 대상 주소 모두 저장
– 연산 결과는 OP1에 저장
– 범용 레지스터 구조
MOV X, Y;
M[X] ← M[Y]
3-주소
명령어
– 오퍼랜드가 3개인 연산
– 연산대상 모두 결과 저장
– 범용 레지스터 구조
ADD X, Y, Z;
M[X] ← M[Y] + M[Z]

 

III. 주소 지정 방식의 유형

방식지정 방식 설명개념도
묵시 주소– 위치가 묵시적으로 포함
– 스택 구조 시 항상 Top
예) ADD
Instruction
즉치 주소– 명령어에 직접 포함
(명령어를 연산에 사용)
예) ADD R4, #3
직접 주소– 연산에 사용될 데이터가 기억장치의 유효 주소
– 오퍼랜드 < 데이터 크기
예) ADD R1, (0x1001)
레지스터– 연산에 사용될 데이터가 내부 레지스터에 저장
예) ADD R4, R3
간접 주소– 오퍼랜드 기억장치 주소의 데이터는 실제 데이터 주소를 지정
예) ADD R4, @(R1)
레지스터
간접 주소
– 오퍼랜드에서 지정하는 레지스터는 실제 저장되어 있는 메모리 주소
예) ADD R4, (R1)
변위 주소– 오퍼랜드 필드를 직접 주소와 오프셋으로 구성
– 메모리 사용 효과적이나 변위 추가 작업 필요
예) EA = A + (PC)

 

[참고] 주소 지정 방식 표기법

주소 지정 방식표기법
즉치 주소 방식
묵시적 주소 방식
직접 주소 방식EA = A
간접 주소 방식EA = (A)
레지스터 주소 방식EA = R
레지스터 간접 주소 방식EA = (R)
변위 주소 방식EA = A + (R)
– EA: 유효 주소(Effective Address): 데이터가 저장된 기억장치 실제 주소
– A: 명령어 내의 주소 필드 내용
(오퍼랜드 필드가 기억장치의 주소인 경우)
– R: 명령어 내의 레지스터 번호
    (오퍼랜드 필드가 레지스터 번호인 경우)
– (A): 기억장치 A 번지의 내용
– (R): 기억장치 R의 내용

 

One Comment

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^