CS/컴퓨터 구조
1장 : CPU - (4) 명령어 세트
infobox503
2024. 11. 8. 09:29
<요약>
- 명령어 세트
- 고려 사항
- 연산 종류
- 데이터 전송
- 산술 연산
- 논리 연산
- 입출력
- 프로그램 제어
- 데이터 형태
- 명령어 형식
- 주소지정 방식
- 연산 종류
- 고려 사항
- 명령어 구성 요소
- 연산 코드
- 오퍼랜드
- 다음 명령어 주소
- 오퍼랜드
- 종류
- 데이터
- 기억장치 주소
- 레지스터 번호
- 오퍼랜드 개수에 따른 명령어 종류
- 0-주소 명령어
- 1-주소 명령어
- 2-주소 명령어
- 3-주소 명령어
- 주소지정 방식
- 기호
- EA, A ,R (A), (R)
- 기호
- 종류
1. 명령어 세트
- 의미
- 해당 CPU가 동작하기 위한 명령어 구성 집합
- 명령어 세트 구성을 위해 필요한 사항
- 연산 종류
- 연산들의 수, 종류, 복잡도
- 데이터 형태
- 연산을 위한 데이터 형태, 길이, 표현 방식
- 명령어 형식
- 명령어 길이, 오퍼랜드 필드 수/길이
- 주소지정 방식
- 오퍼랜드 주소 지정 방식
- 연산 종류
연산 종류
- 데이터 전송
- 레지스터, 기억장치 사이에 데이터를 이동하는 동작
- 산술 연산
- 사칙연산
- 논리 연산
- AND, OR, NOT 등의 연산
- 입출력
- CPU ↔ I/O 장치 사이의 데이터 이동 동작
- 프로그램 제어
- 명령어 실행 순서 변경 연산
2. 명령어 구성요소
- 연산 코드(op : opcode)
- 수행 연산(ADD, LOAD 등)
- 오퍼랜드
- 연산 수행에 필요한 데이터, 데이터 주소
- 다음 명령어 주소
- 현재 명령어 다음에 실행할 명령어 주소
명령어 형식
- 의미
- 명령어 내의 필드 수, 배치, 비트 수 정의
※ 필드 : 각 명령어에서 기능을 가지는 비트 부분(의미없이 빈 여백을 가진 비트도 있음)
- 명령어 길이
- 해당 명령어가 차지하는 비트 길이
- 명령어 형식을 정하기위한 고려사항
- 연산 코드 필드 길이
- 예시
- 연산 코드 필드 길이 = 4bit
- 2^4가지의 연산 기호 정의 가능
- 예시
- 오퍼랜드 필드 길이
- 오퍼랜드 종류에 따라 사용방안 다름
- 오퍼랜드 종류
- 데이터
- 기억장치 주소
- 레지스터 번호
- 사용하는 레지스터 번호
- 연산 코드 필드 길이
3. 오퍼랜드 필드 범위
- 예시1
- 오퍼랜드1 : 레지스터 번호
- 4bit = 2^4개 레지스터 사용 가능
- 오퍼랜드2 : 기억장치 주소
- 8bit = 기억장치 주소 범위 0~255(=2^8) 번지
- 오퍼랜드1 : 레지스터 번호
오퍼랜드 수에 따른 명령어 분류
- 0-주소 명령어
- 의미
- 명령어에 오퍼랜드 0개
- 연산에 필요한 오퍼랜드, 저장 장소가 이미 지정돼있음
- 예시
- 스택을 사용한 후위 표기법 사용
- 스택은 각 push, pop마다 어떻게 저장될지 이미 정해져있음
- 해당 자료구조를 사용해서 각 연산마다 후위 표기법 사용
- 스택을 사용한 후위 표기법 사용
- 의미
- 1-주소 명령어
- 의미
- 명령어에 오퍼랜드 1개
- 명령 수행에 필요한 저장소는 묵시적으로 AC(누산기)가 됨
- 예시
- ADD X 명령
- AC ← AC+M[X]
- ADD X 명령
- 의미
- 2-주소 명령어
- 의미
- 명령어에 오퍼랜드 2개
- 예시
- ADD R1, R2 명령
- R1 ← R1 + R2
- ADD R1, R2 명령
- 의미
- 3-주소 명령어
- 의미
- 3개의 오퍼랜드를 포함하는 명령어
- 예시
- ADD R1, R2, R3
- R1 ← R2 + R3
- ADD R1, R2, R3
- 의미
- 1,2,3 주소 명령어의 특징
- 1→2→3 주소로 갈 수록 명령 수행에 드는 과정이 짧아짐. 다만, 해독이 점점 어려워짐
※ 1,2,3 주소 명령어에 대한 문제 풀이는 ppt 참고
4. 주소지정 방식
- 의미
- 오퍼랜드 값의 형태를 결정하는 방식
- 예시
- 오퍼랜드가 실제 데이터 값을 지닐지, 아니면 기억장치 주소를 가리킬지 등을 정함
- 주소지정 방식이 달라지는 이유
- 더 큰 기억장치를 사용하기 위함
- 기호
- EA
- 실제 주소
- A
- 기억장치 주소 or 특정 주소 or 레지스터 값 or 오프셋 등
- R
- 레지스터 번호
- (A)
- 기억장치 A 번지의 내용
- (R)
- 레지스터 R의 내용
- ex)
- EA = A : 실제 주소는 기억장치 주소다
- EA
- 종류(다음 시간에 배움)
- 직접 주소지정
- 간접 주소지정
- 묵시적 주소지정
- 즉시 주소지정
- 레지스터 주소지정
- 레지스터 간접 주소지정
- 변위 주소지정
- 상대 주소시정
- 인덱스 주소지정
- 베이스-레지스터 주소지정