ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CS 지식 5일차
    CS지식 2025. 8. 9. 12:22

    명령어의 구조 

    - 명령어는 연산코드와 오퍼랜드로 구성되어 있다

    연산코드 : 명령어가 수행할 연산
    오퍼랜드 : 연산에 사용할 데이터가 저장된 위치

    연산코드와 오퍼랜드 이미지

    - 연산코드 영역을 연산코드 필드

    - 오퍼랜드 영역을 오퍼랜드 필드 라고 한다

     

    오퍼랜드

    - 오퍼랜드는 '연산에 사용할 데이터' '연산에 사용할 데이터가 저장된 위치'를 의미하는데, 오퍼랜드 필드에는 숫자 문자를 나타내는 데이터, 메모리나 레지스터 주소가 올 수 있다.

    - 다만 오퍼랜드 필드에는 숫자나 문자와 같이 연산에 사용할 데이터를 직접 명시하기 보다 연산에 사용할 데이터가 저장된 위치, 메모리 주소 레지스터 이름이 담긴다 -> 그래서 주소 필드 라고 부른다

    - 오퍼랜드 명령어는 없을수도 있고 1-3개 등 있을수 있다고 한다. 

    - 또한 오퍼랜드가 1개도 없다면 0주소 명령어 1개가 있다면 1주소 명령어 2개 있다면 2주소 명령어라고 한다. 

     

    연산코드

    - 연산코드는 명령어가 수행할 연산을 의미한다. 

    - 연산코드의 대표적 종류 4가지 

    1. 데이터 전송
    2. 산술/논리 연산
    3. 제어 흐름 변경
    4. 입출력 제어

     

    주소 지정방식

    - 앞서 명령어 오퍼랜드 필드에 레지스터의 주소를 담는 경우가 많다고 하는데, 왜 오퍼랜드 필드에 주소를 넣을까 생각이 들었다 🤔

    - 결론부터 말하면 명령어의 길이 때문이다. 하나의 명령어가 n비트로 구성되어 있고, 연산코드가 m비트라고 가정하면 ,1주소 명령어를 사용한다고 가정하면 오퍼랜드 길이는 연산코드의 길이를 뺀 n-m 비트가 된다. 

    - 2주소 명령어 3주소 명령어가 될 수록 더욱이 값을 저장할 공간이 줄어든다. 

    - 사진을 보면 한 주소에 4비트씩 오퍼랜드 필드에 저장이 가능했지만 메모리에 저장하니 16비트를 저장이 가능해 정보의 가짓수가 증가한 것을 볼 수 있다

    - 오퍼랜드 필드에 메모리가 아닌 레지스터 이름 명시할 때도 마찬가지이다. 레지스터 공간만큼 정보의 가짓수가 증가했다. 

    - 연산코드에 사용할 데이터가 저장된 위치, 연산이 되는 데이터가 저장된 위치를 유효 주소 라고 한다 

    - 오퍼랜드 필드에 데이터가 저장된 위치를 명시할 때 연산에 사용할 데이터 위치를 찾는 방법을 주소 지정 방식이라고 한다

     

    즉시 주소 지정방식

    연산코드와 오퍼랜드 이미지

    - 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식이다. 이 방식은 표현할 수 있는 데이터의 크기가 작아질 수 있지만, 데이터를 메모리, 레지스터에 찾을 필요가 없어 빠르다는 장점이 있다. 

     

    직접 주소 지정방식

    - 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식이다. 데이터의 크기는 더욱 커졌지만 오퍼랜드 필드의 길이가 연산코드 길이만큼 짧아져 유효 주소에 제한이  생길 수 있다.

     

    간접 주소 지정방식

    - 유효주소의 주소를 오퍼랜드 필드에 명시를 한다. 직접 주소 지정방식보다 유효주소의 범위가 넓어졌다. 

     

    레지스터 주소 지정방식

    - 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접 명시하는 방법이다. 

    - 일반적으로 CPU 외부에 있는 메모리에 접근하는 방법보다 빠르고 직접주소 지정방식과 비슷한 표현할 수 있는 레지스터 크기에 제한이 생길 수 있다는 문제점이 있다.

    레지스터 간접 주소 지정방식

    - 사용할 데이터를 메모리에 저장하고 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시하는 방법

    - 유효 주소를 찾는 과정이 간접 주소 지정 방식과 비슷하지만, 메모리에 접근하는 횟수가 한번으로 감소한다는 차이점이 있다. 

    - 메모리에 직접 접근하는 방식은 레지스터에 직접 접근하는 방식이 더욱 느리다. 그래서 간접 주소 지정 방식보다는 더욱 빠르다.

     

    정리

    - 연산에 사용할 데이터를 찾음 -> 주소 지정 방식

    - 연산에 사용할 데이터가 저장된 위치 -> 유효 주소

     

    즉시 주소 지정 방식 : 연산에 사용할 데이터

    직접 주소 지정 방식 : 유효 주소(메모리 주소)

    간접 주소 지정 방식 : 유효 주소의 주소

    레지스터 즉시 주소 지정 방식 : 유효 주소(레지스터 주소)

    레지스터 간접 주소 지정 방식 : 유효 주소를 저장한 레지스터

    'CS지식' 카테고리의 다른 글

    자료구조 - (Linked List)  (1) 2025.08.31
    CS 지식 6일차  (4) 2025.08.10
    CS지식 4일차  (4) 2025.08.09
    CS 지식 3일차  (4) 2025.08.07
    CS 공부 2일차  (0) 2025.08.05
Designed by Tistory.