?

計算機組成原理課程教學改革新探索

2016-05-14 14:58張浩宇惠麗吳玲
關鍵詞:計算機組成原理匯編語言教學改革

張浩宇 惠麗 吳玲

摘 要:“計算機組成原理”與“匯編語言”是計算機科學與技術和軟件工程專業的專業課程,將這兩門課程合并成一門全新的“計算機組成原理”課程是教學改革的新探索。文章從教學與實驗兩個角度探討了將“計算機組成原理”與“匯編語言”兩門課程融合的策略。

關鍵詞:計算機組成原理;匯編語言;教學改革

中圖分類號:G642.3 文獻標識碼:A 文章編號:1002-4107(2016)07-0014-02

一、“計算機組成原理”課程的特點

“計算機組成原理”是研究生入學考試的必考科目。該課程以馮·諾依曼型計算機為基礎,圍繞計算機的運算器、控制器、存儲器和輸入輸出設備等五大部件詳細介紹它們的工作原理與算法以及具體實現的電路結構。通過學習本課程,要求學生熟練掌握單總線結構CPU的工作原理和設計實現的方法,同時要求學生初步掌握精簡指令系統、流水線結構、多體并行存儲器、中斷的工作原理等知識,為后續課程“微機原理與接口技術”、“計算機系統結構”做好準備。該課程首先講授了8086CPU的編程結構,然后引申出8086匯編語言的尋址方式和指令系統,學生在掌握上述知識的基礎上,進行匯編語言程序設計。匯編語言程序設計可以讓學生加深對程序設計方法的理解,同時程序的編寫和調試使學生對計算機硬件有一個感性的認識, 為以后他們學習“微機原理與接口技術”、“操作系統”等課程做準備。

根據國家教育部高教教執委發布的新的教學改革精神,結合我院的具體情況,我院將“計算機組成原理”與“匯編語言”兩門課程合并成一門全新的“計算機組成原理”課程。在新的教學體系中,我們將兩門課程有效地結合起來去糟取精刪繁就簡,舍去了兩門課程中的重疊部分而突出重點,形成了一套新的教學體系。

二、“計算機組成原理”與“匯編語言”教學內

容的融合

在傳統的“計算機組成原理”課程中,教師始終圍繞著計算機的五大部件按照運算器、存儲器、控制器、輸入輸出系統這個順序進行講解,在講授過程中經常會用到一些實例進行說明,而很多時候是以匯編語言做例子講解的,兩門課程融合在一起的最大好處就是教師在講授“匯編語言”的部分時,可以更好地兼顧“計算機組成原理”,讓這兩門課程做到無縫對接。

在基礎知識部分,我們首先要介紹馮·諾依曼型計算機的特點。馮·諾依曼型計算機是串行計算機的始祖,所有的串行計算機都要符合馮·諾依曼型計算機的特點,這是“計算機組成原理”基礎知識部分的重點。在課程講授過程中,教師都會畫一幅五大部件的關系圖,通過圖形示意來表示一條指令是如何在五大部件之間流動的,從而使用戶從外部觀察到計算機處于運行狀態。我們考慮從這里引入8086CPU的編程結構,從計算機組成原理過渡到匯編語言,讓指令舉例更加具體化,再結合指令的尋址方式,借機說明8086的匯編語言指令是如何在CPU中執行的。

在接下來的講授過程中,我們將介紹8086匯編語言的尋址方式和指令系統。由于在計算機組成原理課程中也有一章介紹指令系統,我們可以把這個部分與匯編語言的內容合并,以計算機組成原理的部分強調基本概念,以匯編語言的內容來強調具體應用,把內容更加具體化,舉例更具有針對性,可以使學生更好地理解尋址方式和指令系統。在這里我們在教學上做了一點改變,我們考慮到匯編語言指令數目較多的特點將指令分類,每類指令選出一到兩個具有代表性的指令進行詳細說明,其他略講,然后采用寫出指令執行結果的方式進行大量練習,從而鞏固這部分知識。

在講授了匯編語言的程序設計方法之后,再講授計算機組成原理部分的運算器與運算方法部分。在這部分我們可以利用學過的匯編語言知識,結合布斯算法和加減交替法編寫定點數乘除法的匯編語言程序,還可以編寫浮點數運算的模擬程序。在講授控制器的部分時,我們可以設計一個類8086的CPU,把它作為課堂上的CPU設計舉例,這樣把一條8086匯編語言指令放在這個CPU中運行,可以更直觀地反映指令的工作細節,促進學生對控制器的工作原理和匯編語言的理解。

三、“計算機組成原理”與“匯編語言”實驗內

容的融合

“計算機組成原理”與“匯編語言”都有實驗課,由于在講授上先講“匯編語言”的內容,因此相關實驗先進行,然后進行“計算機組成原理”的實驗。我院的“計算機組成原理”實驗課程使用的是由清華大學計算機學院研制開發的TH-union+教學實驗系統,該系統主要用于“計算機組成原理”課程的硬件教學實驗,還支持監控程序、匯編語言程序設計。在硬件上同時實現了硬布線方式和微程序方式兩種控制器結構,既支持用中小集成度的芯片實現CPU的方案,又支持用高集成度的FPGA門陣列實現CPU的方案。在軟件上可實現指令級模擬,也可以軟件模擬硬布線和微程序的操作,為學生學習硬件理論知識起到了重要的輔助作用。但是該實驗系統的匯編語言指令與8086匯編語言是不兼容的,這使學生在短期內很難快速掌握實驗系統的匯編語言指令,因此經課程組全體教師研究決定,另外開發一款新的匯編語言轉換軟件,用來實現兩種不同種類的匯編語言互相轉換。

該軟件是利用linux模擬環境Cygwin開發實現的。Cygwin是cygnus solutions公司開發的一個在windows平臺上運行的類UNIX模擬環境。在這里我們主要使用了Cygwin開發環境里的flex和gcc兩個工具軟件。利用flex工具軟件編寫的源代碼必須轉換成c語言代碼格式,然后由linux下的c語言編譯器gcc編譯成可執行文件,完成最后的開發。

由于TH-union+教學實驗系統的匯編語言指令共48條,采用精簡指令系統,每條指令的尋址方式是固定的,因此不單獨設置關于尋址方式的標志位,當指令進行譯碼操作的時候,實驗系統電路通過分析指令的操作碼既了解了指令的操作功能也了解了指令操作數的尋址方式。而8086匯編語言指令是一個復雜的指令系統,每條指令對應著多種不同的尋址方式,因此我們把教學實驗系統的匯編語言看成是8086匯編指令系統的子集。通過對轉換程序my的使用,幫助學生對比兩種匯編語言之間的相同點和不同點,通過對比學習,學生可以更快速地熟悉實驗系統匯編語言。

在這里對于不可轉換的匯編語言指令可采取兩種處理方式:方式一,發出警告提示并忽略此條指令;方式二,發出錯誤提示并強行結束程序轉換。轉換程序your分析了操作碼之后開始分析操作數的尋址方式。在這里,我們假設所有指令都采用雙操作數,因此在結構體中設置了兩個對應尋址方式的變量。具體操作時,如果分析出該操作數的尋址方式可以被實驗平臺支持,那么就將對應數值保存在結構體的對應變量中以便轉換,如果不是實驗平臺支持的尋址方式,系統將提示用戶:“你的程序中使用了不可轉換的尋址方式”,并強行結束轉換。在尋址方式轉換過程中,有一些特殊情況需要系統自動追加指令。

最后,要對輸入輸出指令單獨處理。輸入輸出操作是后續課程“微機原理與接口技術”的重要知識點。在編寫匯編語言程序過程中,當遇到輸入和輸出操作都是直接調用DOS中斷或BIOS中斷來實現的。但是教學實驗系統沒有任何中斷程序輔助操作,遇到輸入和輸出操作只能由學生自己編寫。在編寫8086匯編語言程序過程中,凡是遇到輸入和輸出操作都通過調用這兩個宏來實現。每次進行輸入輸出操作時必須先對指定的狀態寄存器的標志位進行判斷,以確定硬件是否準備好,是否可以進行輸入輸出操作。具體做法是使標號由英文字母和數字構成,每次產生新的標號,后面的數字部分就加1,保證新標號與舊標號不同。

“計算機組成原理”和“匯編語言”是計算機科學與技術、軟件工程專業的專業課程,這兩門課程存在著很多聯系同時也有一些區別,把這兩門課程合并成一門全新的“計算機組成原理”課是我院一項新的教學改革方案。如何把兩門課程很好地融合在一起就成了課程組面臨的一個新的挑戰,本文結合課程組全體教師的多年教學經驗,拋磚引玉,初步提出了一些在教學和實驗上的改革方案,希望各界同人多提寶貴意見。

參考文獻:

[1]唐朔飛.計算機組成原理:第二版[M].北京:高等教育

出版社,2008.

[2]王誠,劉衛東,宋佳興.計算機組成與設計:第三版

[M].北京:清華大學出版社,2008.

[3]沈美明,溫冬嬋.IBM PC匯編語言程序設計:第二版

[M].北京:清華大學出版社,2001.

[4][美]萊弗恩等;楊作梅,張旭東等譯.lex與yacc:第二

版[M].北京:機械工業出版社,2003.

猜你喜歡
計算機組成原理匯編語言教學改革
高等學校計算機專業課程教學改革實踐——以匯編語言與接口技術課程為例
匯編語言與C語言的混合程序設計技術研究
提高《匯編語言程序設計》教學效率的思考與實踐
《計算機組成原理》綜合教學輔助平臺的設計與實現
面向計算機系統能力培養的計算機組成原理實驗教學
基于人才培養的技工學校德育實效性研究
現代信息技術在高職數學教學改革中的應用研究
以職業技能競賽為導向的高職單片機實踐教學改革研究
微課時代高等數學教學改革的實踐與探索
用“工程思維”引領《計算機組成原理》課程教學
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合