명령어
명령어는 어떻게와 무엇을로 구성되어 있다.
이를 연산코드(연산자)와 오퍼랜드(피연산자)라고 한다.
ex) 더하라 / 10과 / 20을
이 명령어에서 어떻게 인 ‘더하라’는 연산코드라 하고 무엇을인 ‘10과’ ‘20을’은 오퍼랜드라고 한다.
ex) 어셈블리 언어로 본 연산코드와 오퍼랜드
push rbp
mov eax, 0
pop rbp
ret
이 어셈블리 언어로 보자면 빨간색은 연산코드, 흰색은 오퍼랜드 이다.
오퍼랜드
연산에 사용할 데이터 또는 데이터가 저장된 위치
오퍼랜드가 하나도 없는 명령어는 0-주소명령어, 하나인 명령어는 1-주소명령어,
두개는 2-주소명령어, 세개는 3-주소명령어라 한다.
연산코드
명령어가 수행할 연산
연산의 대표적인 종류 4가지
- 데이터 전송
- MOVE : 데이터를 옮겨라
- STORE : 메모리에 저장하라
- LOAD(FETCH) : 메모리에서 CPU로 데이터를 가져와라
- PUSH : 스택에 데이터를 저장하라
- POP : 스택의 최상단 데이터를 가져와라
- 산술/논리 연산
- ADD : 더하라
- SUB : 빼라
- MUL : 곱하라
- DIV : 나누어라
- AND : 논리곱 연산을 수행하라
- OR : 논리합 연산을 수행하라
- NOT : 보수를 구하라
- 제어 흐름 변경
- JUMP : 특정 주소로 실행 순서를 옮겨라
- BRANCH : 조건에 따라 실행 순서를 변경하라
- CALL : 함수를 호출하라
- RETURN : 함수에서 복귀하라
- 입출력 제어
- IN : 입력장치로부터 데이터를 읽어라
- OUT : 출력장치로 데이터를 보내라
- START IO : 입출력 작업을 시작하라
- TEST IO : 입출력 장치의 상태를 확인하라
주소지정방식
오퍼랜드 필드에 데이터가 저장된 위치를 명시 할 때 유효주소를 찾는 방법
유효 주소 : 연산에 사용될 데이터가 저장된 위치
- 즉시 주소 지정 방식
- 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시하는 방식
- 표현할 수 있는 데이터의 크기가 작아지지만 유효주소를 찾는 과정이 없어서 빠르다.
- 직접 주소 지정 방식
- 오퍼랜드 필드에 유효 주소를 직접적으로 명시하는 방식
- 즉시보다는 데이터의 크기는 커졌지만 오퍼랜드 필드의 길이가 연산코드의 길이만큼 짧아져 표현할 수 있는 유효 주소에 제한이 생길 수 있다.
- 간접 주소 지정 방식
- 유효 주소의 주소를 오퍼랜드 필드에 명시하는 방식
- 데이터 사용에 유연성이 올라가지만 속도가 느려진다.
- 레지스터 주소 지정 방식
- 직접 주소 지정 방식과 유사하지만 CPU외부의 메모리에 접근 하는 것이 아닌 CPU 내부에 있는 레이즈터에 접근 하는 방식
- 표현할 수 있는 레지스터의 크기에 제한이 생길 수 있다.
- 레지스터 간접 주소 지정 방식
- 데이터를 메모리에 저장하고 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시하는 방법
- 간접 주소 지정 방식과 비슷하지만 메모리 접근 횟수가 한 번으로 줄면서 더 빠르다.
'CS공부 > 컴퓨터구조' 카테고리의 다른 글
4-3. 명령어 사이클과 인터럽트 (0) | 2025.04.23 |
---|---|
4-2. 레지스터 (0) | 2025.04.23 |
4-1. ALU와 제어장치 (0) | 2025.04.23 |
2. 데이터란 무엇이며, 컴퓨터는 어떻게 이해할까? (0) | 2025.04.07 |
1. 컴퓨터 구조 시작 (0) | 2025.04.04 |