명령어(instruction): 컴퓨터가 수행해야 하는 일을 나타내는 비트들의 집합
디지털 컴퓨터의 구조: 명령어와 수행에 필요한 데이터가 주기억장치에 연속적으로 저장, 중앙처리장치가 하나씩 순차적으로 수행
명령어 = 0과 1의 비트들의 집합 (연산코드 필드 + 오퍼랜드 필드)
연산코드 필드: 처리해야 할 연산의 종류
오퍼랜드 필드: 처리할 정보 (=피연산자)
오퍼랜드는 오퍼랜드의 값이나 구할 수 있는 수단을 나타내야 하는데,
오퍼랜드를 기억시켜 놓는 곳은 주기억장치, 레지스터, 누산기, 스택
명령어의 형식은 오퍼랜드의 기억장소에 따라 분류하거나 오퍼랜드의 수에 따라 분류
기억장소에 따른 명령어 형식
- 누산기(accumulator) 이용
- 누산기는 중앙처리장치 내의 유일한 데이터 레지스터
- 오퍼랜드 중의 하나가 누산기에 기억
- 1-주소 명령어
- 다중 레지스터 이용
- 중앙처리장치 내에 여러 개의 레지스터
- 2-주소 명령어 또는 3-주소 명령어
- 스택 구조 이용
- 연산에 필요한 오퍼랜드들을 기억장치 스택에 기억시키고 연산 결과도 스택에 기억시킨다
- 0-주소 명령어 (명령에 필요한 2개의 오퍼랜드가 스택에 저장되어 있음)
오퍼랜드의 수에 따른 명령어 형식
- 오퍼랜드의 수가 많아질수록 비트가 많이 필요하고, 연산 속도가 빨라진다.
- 3-주소 명령어 (연산코드 | 오퍼랜드 1 | 오퍼랜드 2 | 오퍼랜드 3)
- 장점: 총 명령어 수가 줄어든다 (빠른 연산)
- 단점: 비트 수가 많이 필요하다 (메모리 소모)
- 2-주소 명령어 (연산코드 | 오퍼랜드 1 | 오퍼랜드 2)
- 상업용 컴퓨터에서 가장 많이 사용된다
- 3-주소 명령어에 비해 길이는 짧아지지만 명령어의 수가 증가
- 1-주소 명령어 (연산코드 | 오퍼랜드 1)
- 오퍼랜드를 가져오거나 연산 결과 저장 위한 장소로 누산기 레지스터 사용
- 모든 연산은 누산기 레지스터와 기억장치에 저장된 오퍼랜드 대상으로 수행
- 0-주소 명령어 (연산코드)
- 산술연산 수행 시 레지스터와 기억장치주소 사용하지 않는다
- 명령어의 길이가 짧아서 메모리 소모 적지만 비효율적
주소지정방식
프로그램 수행 시 오퍼랜드 지정 방식은 명령어 내의 주소지정방식이 결정
주소 필드가 조냊한다면 기억장치주소 혹은 레지스터 주소 나타냄
의미주소지정
- 주소 필드가 필요하지 않음
- 연산코드 필드에 지정된 묵시적인 의미의 오퍼랜드 지정
- 명령어의 길이가 짧아지지만 명령어의 종류가 제한된다
즉치주소지정
- 오퍼랜드를 명령어 자체 내에서 지정
- 오퍼랜드 필드가 곧 데이터
직접주소지정
- 명령어의 주소 필드에 직접 오퍼랜드의 주소 지정
레지스터 주소 지정
- 오퍼랜드 필드에서 지정한 레지스터에 실제 피연산자 들어있음
- 오퍼랜드에는 레지스터 번호가 저장되고 유효주소는 존재하지 않는다
레지스터 간접 주소 지정
- 지정된 레지스터가 실제 오퍼랜드가 저장된 기억장치주소를 지정
- 유효주소: 지정된 레지스터에 있는 주소
출처: 컴퓨터 구조 (김형근, 손진곤)
'TIL > CS' 카테고리의 다른 글
컴퓨터구조 알아보기 (0) | 2024.11.24 |
---|---|
혼자 공부하는 컴퓨터 구조 + 운영체제 2장. 데이터 (1) | 2024.11.20 |
혼자 공부하는 컴퓨터 구조 + 운영체제 1장. 컴퓨터 구조 시작하기 (0) | 2024.11.13 |
[이산수학] 그래프 (0) | 2024.05.17 |
[이산수학] 부울대수 (0) | 2024.05.16 |