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

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

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


设计微指令

x86有一套复杂指令集(CISC),每一条复杂指令背后由若干条微指令组成。

在本次课程设计中,我在试验箱已有的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个实验完整的报告在这里!下载链接,猛戳这里,不要积分

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章