앞서 고급언어(e.g. python, java, c, ..) 로 만든 프로그램을 실행시킬려면 저급언어로 변환해서 실행시킨다.
저급언어는 명령어로 이루어져있다.
그럼 명령어 하나하나는 어떻게 생겼을까 ?



(e.g. assembly)

Operand 의 개수는 0 or 1개 이상이 될 수 있다.


수행할 연산자를 표시하며 Operation Code여서 OP Code라 부릅니다.
OP Code 는 크게 4 종류로 나눌수 있다.
0-주소 명령어 형식
- 스택(Stack) 구조 컴퓨터에서 사용되는 명령어 형식입니다.
- 입력 자료들의 출처와 연산 결과를 기억시킬 장소가 고정되어 있습니다.
- 명령어 내에서 자료의 주소를 지정할 필요가 없는 명령어 형식입니다.
- TOS는 스택의 최상단을 의미합니다.
1-주소 명령어 형식
- 단일 누산기 구조의 컴퓨터에서 사용됩니다.
- 명령어의 수행은 누산기(AC) 레지스터에서 이루어집니다.
- 하나의 주소부를 가지며, 연산에 사용되는 피연산자는 명령어에 나타난 주소부에 의하여
얻어지는 피연산자와 누산기에 기억되어 있는 피연산자입니다.
- 연산 결과도 누산기에 저장되므로
명령어 실행 이전에 기억되어 있던 데이터는 명령어 실행 후에 잃어버립니다.
2-주소 명령어 형식
- 범용 레지스터 구조의 컴퓨터에서 사용되며, 가장 많이 사용하는 형식입니다.
- 각 주소부는 레지스터나 주기억 장치의 주소를 지정합니다.
- 연산 후 입력 자료의 보존이 필요 없으면
연산 결과를 두 개의 입력 자료가 기억되어 있던 곳들 중 한 레지스터에 기억시키는 방식입니다.
3-주소 명령어 형식
- 범용 레지스터 구조의 컴퓨터에서 사용되며, 세 개의 주소를 지정합니다.
- 각 주소부는 레지스터나 주기억 장치의 주소를 지정합니다.
- 프로그램의 길이가 짧고 연산 후에 입력 자료가 레지스터에 보존되는 장점이 있습니다.
- 하나의 명령을 수행하기 위해서는 자주 기억 장치에 접근해야 하므로
수행 시간이 길어져 특수 목적의 기계 외에는 사용을 하지 않습니다.
-https://velog.io/@hyunji015/컴퓨터-구조-명령어의-구조#6-묵시적-주소지정-방식-스택-주소-지정방식