-
[전산기초] 명령어 (= 인스트럭션 Instruction)비전공자 공부일기/:: Computer Science 2021. 7. 8. 00:35
1. 명령어의 구성
컴퓨터에서 실행되는 명령어는 크게
1) 연산자가 표시되는 연산자부(Operation Code) 와
2) 연산의 수행에 필요한 자료의 정보가 표시되는 자료부(Operand) 로 구성
** 전산 출제문제에서 명령어를 '인스트럭션(Instruction)이라고 부르기도 함
* 연산자(Operation Code)부
- 수행해야 할 동작에 맞는 연산자를 표시
- 흔히 OP-Code부라고 하며, 명령부라고 부르기도 함
- 연산자부의 크기(비트 수)는 표현할 수 있는 명령의 종류를 나타냄
--> nBit일 때 최대 2의 n승 개 명령어 사용 가능
- 명령어 형식, 동작코드, 데이터 종류 등을 표시
* 자료(Operand)부
- 실제 데이터에 대한 정보를 표시
- 기억장소의 주소, 레지스터 번호, 사용할 데이터, 명령어 순서 등을 표시
- 주로 연산에 사용할 자료의 주소를 표시하므로 주소부(Address), 번지부라고 부르기도 함
2. 연산자(Operation code)의 기능
: 연산자(Operation Code)의 기능에는 함수 연산, 자료 전달, 제어, 입출력 기능이 있음
1) 함수 연산 기능
- 산술 연산: ADD, SUB, MUL, DIV, 산술 Shift 등
- 논리 연산: NOT, AND, OR, XOR, 논리적 Shift, Rotate, Complement, Clear 등
2) 자료 전달 기능
CPU와 기억장치 사이에서 정보를 교환하는 기능
- Load : 기억장치에 기억되어 있는 정보를 CPU로 꺼내오는 명령
- Store : CPU에 있는 정보를 기억장치에 기억시키는 명령
3) 제어 기능
명령의 실행 순서를 변경시킬 때 사용하는 명령
- 무조건 분기 명령 : GOTO, Jump(JMP) 등
- 조건 분기 명령 : IF 조건
4) 입출력 기능
CPU ~ I/O장치 또는 메모리 ~ I/O장치 사이에서 자료를 전달하는 기능
3. 명령어 형식
Operand부의 개수에 따라서 다음의 4가지 명령어 형식이 있다.
- 3주소 명령어(3 Address Instruction)
- 2주소 명령어(2 Address Instruction)
- 1주소 명령어(1 Address Instruction)
- 0주소 명령어(0 Address Instruction)
예를들어 3주소 명령어라 한다면
[Op-Code]-[Operand1(자료1의 주소)]-[Operand2(자료2의 주소)]-[Operand3(자료3의 주소)] 형태로 되어있음
1) 3주소 명령어
- Operand부가 3개로 구성
- 여러 개의 범용 레지스터(GPR)를 가진 컴퓨터에서 사용
2) 2주소 명령어
- 가장 일반적으로 사용
- 여러 개의 범용 레지스터를 가진 컴퓨터에서 사용
- 연산의 결과는 주로 Operand 1에 저장되며, 이 때 Operand1에 있던 원래의 자료가 파괴
3) 1주소 명령어
- Operand부가 1개로 구성
- 명령어 형식의 컴퓨터는 *누산기(AC; Accumulator)를 이용하여 명령어 처리
4) 0주소 명령어
- Operand부 없이 OP-Code부만으로 구성
- 주소사용 없이 *스택에 연산자와 피연산자를 넣었다 꺼내어 연산한 후, 결과를 다시 스택에 넣으면서 연산
--> 원래의 자료가 남지 않음
*** 스택(Stack)
: 스택은 자료의 삽입-삭제 작업이 한쪽 방향에서만 가능할 수 있도록 할당ㅁ한 메모리의 일부
- 후입선출(*LIFO) 방식으로 자료 처리
- 삽입명령은 Push(), 삭제명령은 Pop()
'비전공자 공부일기 > :: Computer Science' 카테고리의 다른 글
[전산기초] 주기억장치 / 보조기억장치 (0) 2021.07.11 [전산기초] 프로세스 (0) 2021.07.10 [전산기초] 운영체제(OS: Operating System) (0) 2021.07.08 [전산기초] 주소지정방식 (0) 2021.07.08 [전산기초] 연산 (Operation) (0) 2021.07.08