计算机组成原理课程设计—基于微程序控制器的简单计算机系统设计与实现 - 图文 下载本文

4.3软件实现

4.3.1机器指令系统实现

本次指令设计格式遵循常见指令格式设计原则,机器指令共占8位,其中高四位为操作码OP,低四位为操作数地址ADDR

指令寻址方式设计

? 顺序寻址:根据PC(74LS161)计数器自动增1,顺序读取下一条指令;

? 跳跃寻址:根据PC(74LS161)的PC-SET功能,依照跳跃指令内容往计 数器

中预置打入数据,从而跳转到相应地址。

操作数寻址方式设计

? 寄存器寻址:利用AC(74LS373)寄存器进行寻址;

? 直接寻址:根据指令中的ADDR所指向的地址得到主存相应数据;

? 隐含寻址:利用AC(74LS373)寄存器,对于需要双操作数的机器指令只提供一

个操作数,另一操作数隐含在AC中。

1指令格式

本次指令设计格式遵循常见指令格式设计原则,机器指令共占8位,其中高四位为操作码OP,低四位为操作数地址ADDR,见表4.14描述:

7——4位 OP 表 4.14 系统指令格式

3——0位 ADDR

指令格式编码及其格式说明如表4.15所示:

指令全称 LOAD ADDR 指令地址 0001 指令功能 取操作数指令,将ADDR所指向的内存单元中的操作数取出,然后打入AC中 STORE ADDR 0010 回存指令,将计算结果回存打入地址ADDR所指向的内存单元MM中 JMP ADDR 0011 跳转指令,使程序跳转到地址ADDR所指向的单元,然后读取下一条指令(依赖PC) ADD ADDR 0100 加法指令,实现(AC)加(ADDR),且将结果打入AC SUB ADDR 0101 减法指令,实现(AC)减(ADDR),且将结果打入AC AND ADDR 0110 与指令,实现(AC)&(ADDR),且将结果打入AC OR ADDR 0111 或指令,实现(AC)&(ADDR),且将结果打入AC NOT ADDR NOT A异或B 1000 1001 1010 取反指令,实现,且将结果打入AC 取反指令,实现,且将结果打入AC 异或指令,实现(AC)异或(ADDR),且将结果打入AC A加A 1011 乘2指令,实现(AC)加(AC),且将结果打入AC END 1100 结束指令,程序终止运行 表4.15 指令格式说明表

2、指令周期流程图如下图4.16所恨死

图 4.16 指令流程图

具体的指令流程

1、 LOAD指令,如图4.17所示

开始 μAR清零 PC→MM PC+1→PC RD、LDIR; IRA→μAR IRB→MM RD BUS→bus LDAC 取指公操作

4.17 LOAD指令流程图 M1

M2