目录
写在前面
各位小萌新们,让我们一起来学习计算机系统吧,了解计算机的底层实现。
在这里,我会先总体解释一下指令的构成及其含义还有里面的注释是什么意思,然后下一期将会一条一条指令和大家解释。
LC-3指令集总览
指令注释规范
DR
目的寄存器(destination register)。
SR
SR、SR1、SR2等等是指源寄存器(source register)。
imm5
5-bit的立即数(immediate value),它是补码的形式。
BaseR
基址寄存器(Base Register),它和一个6-bit偏移相加产生Base+offset地址。
offset6
6-bit补码,用于Base+offset寻址模式。
PCoffset9
9-bit补码,用于PC+offset寻址模式。
PCoffset11
11-bit补码,用于JSR指令计算子程序的入口地址。
trapvect8
8-bit无符号整数,用于TRAP指令确定服务程序的入口地址,间接寻址模式,该地址的内存单元存放了服务程序的入口地址。
n z p
条件码,LC-3有三个位寄存器:N、Z和P,即负数(negative)、0(zero)和正数(positive),当任意寄存器被写入时,根据写入的是负数、0还是正数分别设置相应的条件码为1,其他为0。
+
指令的汇编语言形式右上角的+号表示该指令将改变条件码。
总体解释一下
一条指令会分成几个部分,16位的二进制机器语言的前四位是操作码,它是表示这条指令是用来做什么的,剩下部分主要是操作数,表示应该对谁进行操作。
要分清这些指令谁是谁还要清楚它的寻址模式,它是规定如何去寻找操作数的位置的。LC-3一共支持5种寻址模式:立即数、寄存器和三种内存寻址模式,即相对寻址(PC-relative)、间接寻址(indirect)和基址偏移(Base+offset)。
4个bit的操作码字段可以定义16种指令,LC-3的指令集架构定义了15条指令,其中的1101被预留下来,没有定义。
这些指令可以分成三种:运算、搬数据和控制指令。