您的位置:首页 > 理论基础

计算机组成原理课设——我自己亲手写了机器指令和微指令

2016-01-19 17:58 661 查看
前言:2014年12月,大二上学期,计算机组成原理课程设计,我当年亲手写了一些机器指令,甚至设计出了一些微指令(扩充指令集,写到控制存储器里面),想想都觉得我当年好厉害。。。

PS. 刚刚写完微机接口课程设计报告,微机接口让我回想起了一年多前的计算机组成原理。我把当时的照片和报告都找了出来,温习了一下~

设计微指令

x86有一套指令集,arm也自有一套指令集。这里的指令就是指的微指令。

在本次课程设计中,我在试验箱已有的8086指令集的基础上,扩充了自己写的7条微指令。




图:我扩充的微指令,需要写到控制存储器中

编写的机器指令

这不是写C,不是C++,更不是Java,我是在写机器语言!没错,就是0、1序列!




图:最上面3条机器指令是依据我扩充的7条微指令设计出来的“新的机器指令”。下面一排机器指令,是一段完整的程序。这个程序最终应该输出”9119”、”9108”、”9107”、”0011”

运行结果

运行结果完美符合预期






总结

通过本次实验,我深入了解了微指令的“奥妙”。

从微指令的设计到实现,我已经基本上完全弄明白了。本次试验中,微指令有 24 位。I0~I5 是下地址,指向下一条微指令的地址;I6~I8 是 F3 表示测试;I9~I11 表示 F2, I12~I14 表示F1,用来控制寄存器;I15~I23 用来表示微指令的功能(比如:加减法,相与或者相或)。

微指令与机器指令的关系,我现在更是理解透彻了。在实验中,我们组员单步调试(也就是按下脉冲信号),一步一步跟踪微地址灯的变化,从而一步一步观察什么时候执行哪一条微指令。课本上面说得很轻松:一条机器指令对应一段微程序,一段为微程序就是一系列微指令。但是,只有做实验:亲手设计微程序代码;亲手连接线路;遇到问题时亲手解决难题才能够真正理解计算机组成原理的精髓。

完整的课程设计报告

本博客节选自课程设计中的一个实验。课程设计总共有4个实验完整的报告在这里!下载链接,猛戳这里,不要积分
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: