已知TEC-8模型计算机可用控存空间中11H、2FH、3FH共3个单元空闲,试根据现有的结构、微操作控制信号和机器时序,尝试进行指令扩展,扩展出一条新指令。要求给出该指令对应的微程序,列出每一拍所需的微操作控制信号,分配控存空间,并验证其功能
时间: 2024-01-05 14:05:18 浏览: 25
为了扩展一条新指令,我们需要使用现有的空闲控存单元,并且需要定义新指令的操作码、寻址方式和执行功能。这里我们假设新指令是一条无条件跳转指令,操作码为0x7F,寻址方式为绝对寻址,跳转地址由指令的后两个字节给出。
以下是该指令的微程序:
1. MAR <- PC + 1
2. MBR <- M(MAR); IR <- MBR; PC <- PC + 3
3. MAR <- IR[15:0]
4. PC <- M(MAR)
5. STOP
该微程序需要5个时钟周期来完成,每个时钟周期需要进行如下微操作:
1. 将PC增加1,读取下一条指令(MBR <- M(PC)),并将IR寄存器设置为该指令
2. 将MAR寄存器设置为指令中的地址字段(IR[15:0]),并将PC寄存器设置为下一条指令的地址(PC <- PC + 3)
3. 将PC寄存器设置为指令中的地址字段(PC <- M(MAR))
4. 停止微程序的执行
由于我们使用了控存空间中的3个单元,需要将新指令的机器码存储在这3个单元中。假设我们将指令的操作码和地址分别存储在11H、2FH、3FH单元中,则该指令的机器码为7F XX XX,其中XX XX是跳转地址。
为了验证该指令的功能,我们可以编写一个简单的程序来测试它:
```
0: 7F 04 00 JMP 4 ; 无条件跳转到地址4
3: 00 00 00 NOP ; 空操作
4: 01 02 03 MOV R1, #0x0302
7: 00 00 00 NOP ; 空操作
8: 7F 00 03 JMP 3 ; 无条件跳转到地址3
B: 00 00 00 NOP ; 空操作
```
该程序的执行流程为:从地址0开始执行,执行无条件跳转指令,跳转到地址4,执行MOV指令,然后再次执行无条件跳转指令,跳转到地址3,执行空操作指令,然后再次执行无条件跳转指令,跳转到地址3,反复执行。
通过测试可以看出,新指令的功能已经正确实现。