Instruction
- Computer architecture 내부에서 일어나는 processor의 단일 동작(operation)을 의미한다.
- 주로 프로그래머보다는, H/W 레벨에 가까운 명령어를 뜻한다.
- Shell 환경 등에서 프로그램 실행을 위해 일반 사용자가 입력하는 언어인 command와는 구분된다.
High-level programming language (HLL)
- 컴퓨터 시스템의 유형에 비교적 독립적인 언어이다. (언어별로 다르지만, 대부분의 HLL은 Assembly language보다는 범용적이다.
- 컴퓨터보다는 개발자에게 가까운 언어이다. (개발측면에서의 편의성이 높다)
Instruction (Assembly language, Instruction Set Architecture)
Machine instruction (Binary code)
Machine code 형식
Operation code (OP Code) | Operand | Addressing mode |
1. Operation code (OP Code)
- 수행해야 할 작업의 종류를 정의 (operator 식별)
- CU (Control Unit)가 decoding을 통해 해야할 작업을 찾아낸다.
2. Operand
- 해당 연산의 대상이 되는 operand(피연산자)의 위치 정보를 주소 따위를 통해 표시한다.
3. Addressing mode
- Operand field 의 해석 방법을 표시
- Operand field의 code가 메모리 주소를 의미하는 것인지, 레지스터 이름인지, 상숫값인지를 구분하는 역할을 한다.
Example. Machine instruction \(\leftrightarrow\) Assembly language
\(Example\;I\)
01010000100011000010 \(\iff\) add %l1 , %l2 , %l3
\(sol)\)
0101(OP Code) 00001(%l1 register) 00011(%l3 register) 0(Addressing mode) 00010(%l2 register)
\(Addressing mode =
\begin{cases}
Register name, & \text{Addressing mode is 0} \\
Immediate constant, & \text{Addressing mode is 1}
\end{cases} \)