[컴개실] Ch.4.3-5 - The LC-3 Instruction Set Architecture
Last edited at 2024-04-11
55 Views
가상의 간단한 컴퓨터인 LC-3의 Instruction Set Architecture에 대해 알아보자. 이는 15개의 명령만을 가지고 있는 명령어 집합이지만 Turing-Complete하다.
LC-3의 자료형은 메모리 주소를 나타내는 Unsigned integer, ALU operand에 들어가는 Signed integer, 명령어를 나타내는 Encoded machine instruction의 3가지 자료형만이 있다. 이때 우리가 C언어에서 사용하는 배열, 구조체 등의 복잡한 자료형은 프로세서가 이해하지 못한다! 컴파일러가 배열, 구조체 등의 연산을 구현하는 복잡한 어셈블리 코드로 바꾸어 실행하기 때문에 우리는 프로세서가 이들을 처리한다고 생각하는 것이다.
이제 LC-3의 명령어(Machine instruction)들을 알아보자. 하나의 명령어는 16비트로 인코딩되는데, 그중 앞의 4비트가 opcode로써 15개의 명령 중 어떤 명령어인지를 나타낸다. 그 후의 비트가 어떤 정보를 나타내는지는 명령어의 종류에 따라 달라진다.
LC-3의 명령어로는 ALU 연산 명령으로 ADD, AND, NOT의 3가지, 데이터 이동과 관련된 명령으로 LD, LDI, LDR, ST, STI, STR, LEA의 7가지, 제어 명령으로 BR, JMP, JSR, TRAP, RTI의 5가지가 있다. Opcode가 4비트이므로 한 가지가 남는데, 이는 reserved opcode로 무효하다.
References
- Yale N. Patt, Sanjay J. Patel. 『Introduction to Computing Systems: From Bits&Gates to C/C++ and Beyond』. 3rd ed. McGraw Hill(2019). p127-177