issues
search
1two13
/
CS
혼자 공부하는 컴퓨터 구조 + 운영체제
2
stars
0
forks
source link
⭐️⭐️⭐️[명령어] 명령어의 구조
#6
Open
1two13
opened
1 year ago
1two13
commented
1 year ago
명령어 = 연산코드 + 오퍼랜드
연산코드(= 연산자)
명령어가 수행할 연산
ex. 더해라, 빼라, 저장해라
오퍼랜드(= 피연산자)
연산에 사용할
데이터
또는 연산에 사용할
데이터가 저장된 위치
1two13
commented
1 year ago
오퍼랜드
오퍼랜드 필드를
주소 필드
라고도 부른다. 데이터를 직접 명시하기 보다는 대부분 데이터가 저장된 위치가 담기기 때문이다. 즉,
메모리 주소
또는
레지스터 이름
이 담긴다.
오퍼랜드 필드는 명령어 안에 하나도 없을 수도 있고, 하나만 있을 수도 있고, 여러개가 있을 수도 있다.
1two13
commented
1 year ago
연산코드
가장 기본적인 연산 코드 유형은 4가지다. 4️⃣
데이터 전송
산술/논리 연산
제어 흐름 변경
입출력 제어
p.94 참고
1two13
commented
1 year ago
주소 지정 방식 5️⃣
유효주소
를 찾는 방법
유효주소:
연산 코드
에 사용할
데이터
가 저장된 위치
연산에 사용할 데이터가 메모리에 저장된 경우 3️⃣
1. 즉시 주소 지정 방식
연산에 사용할
데이터를
오퍼랜드 필드에 직접 명시하는 방식
장점: 다른 주소 지정 방식보다 빠르다.(찾는 과정이 없기 때문)
단점: 표현할 수 있는 데이터 크기가 작아진다.
2. 직접 주소 지정 방식
유효주소를
오퍼랜드 필드에 직접 명시하는 방식
단점: 오퍼랜드 필드의 길이가 연산코드의 길이만큼 짧아져 표현할 수 있는 유효주소에 제한이 생길 수 있다.
3. 간접 주소 지정 방식
유효주소의 주소
를 오퍼랜드 필드에 명시하는 방식
단점: 두 번의 메모리 접근이 필요하기 때문에 1, 2번 방식보다 느리다.(유효주소의 주소 => 메모리 내 유효주소 => 메모리 내 연산에 사용할 데이터)
연산에 사용할 데이터가 레지스터에 저장된 경우 2️⃣
4. 레지스터 주소 지정 방식
연산에 사용할
데이터를 저장한 레지스터
를 오퍼랜드 필드에 직접 명시하는 방식
장점: 직접 주소 방식보다 빠르게 데이터에 접근할 수 있다.(일반적으로 CPU 내부에 있는 레지스터에 접근하는 것이 CPU 외부에 있는 메모리에 접근하는 것보다 빠르기 때문)
단점: 표현할 수 있는 레지스터 크기에 제한이 생길 수 있다.
5. 레지스터 간접 주소 지정 방식
연산에 사용할 데이터를 메모리에 저장하고,
그 주소(유효주소)를 저장한 레지스터
를 오퍼랜드 필드에 명시하는 방식
명령어 = 연산코드 + 오퍼랜드
연산코드(= 연산자)
오퍼랜드(= 피연산자)