基本计算机具有16位指令寄存器(IR),它可以表示存储器参考或寄存器参考或输入输出指令。
- 内存参考–这些指令将内存地址称为操作数。另一个操作数始终是累加器。为直接和间接寻址指定12位地址,3位操作码(111除外)和1位寻址模式。
例子 –
IR寄存器包含= 0001XXXXXXXXXXXX,即在获取和解码指令之后的ADD,我们发现它是用于ADD操作的存储器参考指令。Hence, DR ← M[AR] AC ← AC + DR, SC ← 0
- 寄存器参考–这些指令对寄存器执行操作,而不是对存储器地址进行操作。 IR(14 – 12)为111(将其与内存引用区分开),IR(15)为0(将其与输入/输出指令区分开)。其余12位指定寄存器操作。
例子 –
IR寄存器包含= 0111001000000000,即在获取和解码周期后的CMA,我们发现它是补码累加器的寄存器参考指令。Hence, AC ← ~AC
- 输入/输出–这些说明用于计算机与外部环境之间的通信。 IR(14 – 12)为111(将其与内存引用区分开),IR(15)为1(将其与寄存器引用区分开)。其余12位指定I / O操作。
例子 –
IR寄存器包含= 1111100000000000,即在获取和解码周期后的INP,我们发现它是用于输入字符的输入/输出指令。因此,从外围设备输入字符。
16位IR寄存器中包含的指令集为:
- 算术,逻辑和移位指令(以及加,补,左,右循环等)
- 要将信息移入和移出内存(存储累加器,加载累加器)
- 具有状态条件(分支,跳过)的程序控制指令
- 输入输出指令(输入字符,输出字符)
Symbol | Hexadecimal Code | Description | |
---|---|---|---|
AND | 0xxx | 8xxx | And memory word to AC |
ADD | 1xxx | 9xxx | Add memory word to AC |
LDA | 2xxx | Axxx | Load memory word to AC |
STA | 3xxx | Bxxx | Store AC content in memory |
BUN | 4xxx | Cxxx | Branch Unconditionally |
BSA | 5xxx | Dxxx | Branch and Save Return Address |
ISZ | 6xxx | Exxx | Increment and skip if 0 |
CLA | 7800 | Clear AC | |
CLE | 7400 | Clear E(overflow bit) | |
CMA | 7200 | Complement AC | |
CME | 7100 | Complement E | |
CIR | 7080 | Circulate right AC and E | |
CIL | 7040 | Circulate left AC and E | |
INC | 7020 | Increment AC | |
SPA | 7010 | Skip next instruction if AC > 0 | |
SNA | 7008 | Skip next instruction if AC < 0 | |
SZA | 7004 | Skip next instruction if AC = 0 | |
SZE | 7002 | Skip next instruction if E = 0 | |
HLT | 7001 | Halt computer | |
INP | F800 | Input character to AC | |
OUT | F400 | Output character from AC | |
SKI | F200 | Skip on input flag | |
SKO | F100 | Skip on output flag | |
ION | F080 | Interrupt On | |
IOF | F040 | Interrupt Off |