简化指令计算机中使用的指令集

28 Aug 2024 | 5 分钟阅读

SIC 是一种机器设计类型,用于说明最常见的计算机硬件的特征和概念。简易指令计算机中的内存组织为一系列 8 位字节(1 字节 = 8 位)。它还包含该机器的增强版本,称为 SIC/XE。这个新版本包含一些附加功能,例如中断、保护内存功能、寻址模式、虚拟内存和浮点指令。SIC(简易指令计算机)中没有可用的位来表示浮点数,但在 SIC/XE 中存在。当我们在 SIC(简易指令计算机)上编程时,我们需要各种指令来完成此操作,这些指令描述如下。

指令操作数操作码说明
ADDM18ADD 指令用于将寄存器 A 与内存 M **相加**。加法运算的结果将存储在寄存器中。ADD 指令的语法描述如下。
A = A + M
并且M40AND 指令对寄存器 A 和内存 M 执行 **'AND' 操作**。'AND' 操作的结果将存储在寄存器中。AND 指令的语法描述如下。
A = A AND M
COMPM28COMP 指令用于**比较**寄存器 A 的数据与内存的数据。它使用条件码来保存结果。COMP 指令的语法描述如下。
比较 A 和 M
DIVM24DIV 指令用于将寄存器 A **除以**内存 M。加法运算的结果将存储在寄存器中。DIV 指令的语法描述如下。
A = A/M
JM3CJUMP 指令用于将内存的新值**加载**到 PC 寄存器中。JUMP 指令的语法描述如下。
PC = M
JEQM30JEQ 指的是“相等时跳转”。如果条件码 (CC) 设置为 =,则用于将内存的新值**加载**到 PC。JEQ 的语法描述如下。
如果 CC 设置为 =,则 PC = M
JGTM34JGT 指的是“大于时跳转”。如果条件码 (CC) 设置为 >,则用于将内存的新值**加载**到 PC。JGT 的语法描述如下。
如果 CC 设置为 >,则 PC = M
JLTM38JLT 指的是“小于时跳转”。如果条件码 (CC) 设置为 <,则用于将内存的新值**加载**到 PC。JLT 的语法描述如下。
如果 CC 设置为 <,则 PC = M
JSUBM48它用于**跳转**并将返回地址**放入**寄存器 L。JSUB 的语法描述如下。
L = PC ; PC = M
LDAM00LDA 代表**加载**累加器。它用于将内容从内存加载到累加器寄存器。LDA 的语法描述如下。
A = M
LDCHM50LDCH 指令用于将内存中的数据字节**加载**到寄存器 A 或累加器中。LDCH 的语法描述如下。
A[RMB] = M[RMB]
LDLM08LDL 用于将内存数据**加载**到寄存器 L。LDL 的语法描述如下。
L = M
LDXM04在这里,LDX 代表**加载双字索引**。此指令用于将双字从指定内存位置加载到通用寄存器。LDX 的语法描述如下。
X = M
MULM20MUL 指令用于**乘以**寄存器 A 和内存 M。'乘法'运算的结果将存储在寄存器中。MUL 指令的语法描述如下。
A = A * M
M44OR 指令对寄存器 A 和内存 M 执行 **'OR' 操作**。'OR' 操作的结果将存储在寄存器中。OR 指令的语法描述如下。
A = A OR M
RDMD8RD 指令用于**读取**内存指定的数据。此操作的结果将存储在寄存器 A 中。RD 指令的语法描述如下。
A[RMB] = M[RMB] 指定的数据
RSUB4CRSUB 指令将通过跳转到寄存器 L 中包含的地址来**返回**。RSUB 指令的语法描述如下。
PC = L
STAM0CSTA 指令用于将累加器的内容**存储**到内存中。STA 指令的语法描述如下。
M = A
STCHM54STCH 指令用于**存储**从寄存器读取的字节。STCH 指令的语法描述如下。
M[RMB] = A[RMB]
STLM14STL 用于将链接寄存器**存储**到内存内容中。STL 的语法描述如下。
M = L
STXM10STX 代表“STore X”。此指令用于将 X 索引寄存器中包含的字节副本**存储**到内存中。STX 的语法描述如下。
M = X
SUBM1CSUB 指令用于**减去**寄存器 A 和内存 M。'减法'运算的结果将存储在寄存器中。SUB 指令的语法描述如下。
A = A - M
TDME0它使用状态字和条件码来**测试**设备是否已准备好发送或接收字节数据。如果 CC(条件码)为 <,在这种情况下,设备已准备就绪。如果 CC 为 >,在这种情况下,设备将处于忙碌状态。
TIXM2CTIX 指令用于**比较** X 索引地址与内存。其中 X = X + 1。它通过设置 CC(条件码)来显示结果。
WDMDCWD 指令用于将字节从寄存器**写入**设备。WD 指令的语法描述如下。
由 M[RMB] 指定的设备 = A[RMB]