計算機組成原理課設——我自己親手寫了機器指令和微指令

前言: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個實驗完整的報告在這裏!下載鏈接,猛戳這裏,不要積分

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