본문 바로가기
Computer Science/컴퓨터 구조 (Computer Architecture)

[혼공컴운] Ch3. 명령어 주소 지정 방식

by hyuga_ 2023. 9. 30.

명령어 주소 지정 방식

오퍼랜드 필드에 레지스터가 담길 수도 있고, 메모리 주소가 담길 수도 있고, 데이터가 직접 담길 수도 있다.

CPU 입장에서는 연산에 사용될 데이터가 메모리 주소에 있든, 레지스터에 있든, 아니면 명령어에 직접적으로 명시되어 있든

연산에 사용될 데이터들을 빠르게 찾아 실행시킬 수 있어야 한다.

 

'어떻게 해야 CPU가 데이터를 빠르게 찾을 수 있을까?' 에 대한 방법이 명령어 주소 지정 방식이다.

 

명령어 주소 지정 방식 (Addressing modes)

- 연산에 사용할 데이터가 저장된 위치를 찾는 방법
- 유효 주소를 찾는 방법
- 다양한 명령어 주소 지정 방식들

 

 

즉시 주소 지정 방식 (Immediate addressing mode)

  • 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시
  • 가장 간단한 형태의 주소 지정 방식
  • 연산에 사용할 데이터의 크기가 작아질 수 있지만, 주소를 찾아다니는 과정이 생략되기 때문에 빠르다는 장점

 

직접 주소 지정 방식 (direct addressing mode)

  • 오퍼랜드 필드에 유효주소를 직접적으로 명시
    • CPU는 유효주소를 찾아가서 데이터를 찾는다

 

  • 단점: ‘전체 명령어 크기 - 연산 코드’ 크기 만큼만 유효주소를 표현할 수 있다

 

 

간접 주소 지정 방식 (indirect addressing mode)

  • 오퍼랜드 필드에 유효주소의 주소를 명시
  • 크기 영향을 덜 받는다는 장점, 그러나 앞선 방식들에 비해 속도가 느리다

 

레지스터 주소 지정 방식 (register addressing mode)

  • 연산에 사용할 데이터가 저장된 레지스터 명시
  • 직접 주소 지정 방식과 유사하지만, 레지스터를 명시함으로써 더 빠른 속도를 지닌다
  • CPU가 메모리에 접근하는 속도보다 레지스터에 접근하는 것이 빠르다
    • 메모리는 CPU 밖에 있고, 레지스터는 CPU 안에 있다

 

 

레지스터 간접 주소 지정 방식 (register indirect addressing mode)

  • 연산에 사용할 데이터를 메모리에 저장
  • 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시
  • (내 생각) 간접 주소 지정 방식과 비슷한 작동 원리이나 메모리가 아닌 레지스터로 가는 것이므로 가용 용량은 적고, 더 빠를 것. 아마 자주 쓰이는 일부 데이터가 들어가지 않을까

 

 

이 외에도 특정 레지스터를 학습해야만 알 수 있는, 중요한 주소 지정 방식이 있다.

그건 레지스터를 알고난 후에 다시 배우고, 지금으로썬 이정도만!