设计题目
:
复杂模型机的设计与调试。
要求:此模型机的指令系统有
16
条机器指令。内存数有
4
种寻址方式。采用微程序设计的方法。调试每条机器指令,并最终通过老师指定的一段程序。
设计思路:
首先分析给定的指令系统中的每一条指令所要完成的功能,写出执行过程中每步需要的微命令,然后设计每条机器指令的执行流程。再组合成一个完整的系统微程序流程。接下来,根据设计好的微程序流程图写出每一步对应的微指令。然后把微程序输入控制存储器。然后,就可以在此系统上进行编程,检验所设计的系统是否正确和完善。
具体设计过程:
机器指令有16条,所以设计的指令格式中至少需要有4位做为操作码。且大多数指令设计成一个字节,只有LDA、STA、JMP、BZC这四条指令因为设计到内存地址,被设计成两个字节。且这四条指令可以使用的寻址方式有四种,这通过在第一个字节中加入一个2位的M字段来区分。在设计微程序流程的时候,注意到经过p1测试需要产生16个分支,故取指微指令的第二条微指令的下址要设计成最后4位均为0的情况。在这里,我们选择40。在寻址方式的区分上,指定机器指令的操作码中的M=00时,为直接寻址,M=01时做间接寻址,M=10时,变址寻址(在此系统中,已指定R2作为固定的变址寄存器),当M=11时为相对寻址。在p1测试时,对于单字节指令,就直接根据操作码找到相应的微程序段执行。但是,对于双字节指令,经过p1测试,只区分其是哪一种寻址方式,然后获得此种寻址方式下的物理地址,再进入p2测试进一步区分是哪一条指令。在设计好微程序流程之后,再为控制台设计一个微程序流程。以实现程序的储存于校验。
指令系统:
助记符号
|
指令格式
|
功能
|
|||
CLR rd
MOV rs,rd
ADC rs,rd
SBC rs,rd
INC rd
AND rs,rd
COM rd
RRC rs,rd
RLC rs,rd
|
|
0 → rd
|
|||
|
rs → rd
|
||||
|
rs + rd + cy → rd
|
||||
|
rs –rd – cy → rd
|
||||
|
rd + 1 → rd
|
||||
|
rs ∧ rd → rd
|
||||
|
→ rd
|
||||
|