陳 松
摘要微機原理與匯編語言是計算機及相關(guān)專業(yè)學生的基礎(chǔ)課程。該課程涉及知識點較多且比較抽象,要獲得良好的教學效果有一定難度。本文在實際教學的基礎(chǔ)上,總結(jié)了好的教學經(jīng)驗,對如何提高教學質(zhì)量進行了初步探索。
關(guān)鍵詞微機原理 匯編語言 整合 教學方法
中圖分類號:G642文獻標識碼:A
隨著計算機技術(shù)和通信技術(shù)的發(fā)展,微型計算機的應(yīng)用越來越廣泛,“微機原理與接口技術(shù)”課程也成為除計算機專業(yè)外,機械、電子、通信、自動化等相關(guān)專業(yè)必設(shè)的專業(yè)基礎(chǔ)課?!拔C原理與接口技術(shù)”課程在一些高校已經(jīng)逐步和“匯編語言程序設(shè)計”課程整合到了一起。這是由于微機原理中要使用匯編語言的知識,匯編編程中又牽涉到微機原理的一些概念。兩者相輔相成,且這兩門課程都有一定的教學難度,要將它們整合到一起,實現(xiàn)相互印證,相互促進,更是一件難事。通過近幾年的教學實踐,筆者總結(jié)了一些經(jīng)驗,介紹如下。
1 教學過程中注意體現(xiàn)匯編語言本身的優(yōu)缺點,引導學生學習的方向
學生在學習本課程之前,一般都有過計算機高級語言的學習基礎(chǔ)。與高級語言相比,匯編語言存在一些固有的缺點,如對硬件的依賴性較強,可移植性較差,解決問題的步驟較為繁瑣,有很多細節(jié)問題需要考慮等。①這就好比用戶首先學習了如何在飯店點菜,已經(jīng)習慣了一套簡易的流程,現(xiàn)在要學習自己做菜,要考慮的細節(jié)更多,也就覺得更麻煩。但學會自己做菜,有利于我們了解菜系的搭配原理,火候問題等,從而制作出更可口的菜肴,如同匯編語言的學習有利于用戶了解計算機的工作原理,從而更好地理解微機原理的相關(guān)問題。同時,匯編語言的一些細節(jié),也能幫助用戶簡化一些操作。例如對于求解1+2+3+……+100②這個問題,可以利用LOOP語句中CX每次自減1的特點實現(xiàn),程序③如下:
MOVAX, 0;用來放累加和
MOVCX, 100;循環(huán)次數(shù)為100
NEXT:ADDAX, CX ;AX+CX的和傳送給AX
LOOPNEXT ;CX減1,判斷CX不等于0時,循環(huán),從NEXT標號處執(zhí)行
這比用高級語言實現(xiàn)更簡潔。匯編語言的優(yōu)勢更多的體現(xiàn)在對硬件芯片的編程,例如對8253、8255芯片的初始化編程,程序段比較簡潔、直觀。教學過程中,要注意引導學生的學習方向,避免學生在學習過程中產(chǎn)生厭學情緒,要讓學生看到匯編語言的優(yōu)點。
2 找到知識的結(jié)合點,加強知識的聯(lián)系
匯編語言是微機原理課程的一門工具性語言,兩門課程中有很多交叉結(jié)合的知識點。如果在微機原理部分沒有理解CPU的內(nèi)部結(jié)構(gòu)和工作原理,大量的指令就無法正確運用,也就更難靈活運用匯編語言進行編程。④例如匯編語言中大量采用寄存器結(jié)構(gòu),很多指令中都有指定的寄存器用法,而寄存器是CPU內(nèi)部結(jié)構(gòu)的重要組成部分,是微機原理的一個重要的知識點,各種寄存器的用法又可以通過尋址方式體現(xiàn)出來。比如基址指針寄存器BP在尋址做基址中使用時,默認數(shù)據(jù)在堆棧段中,在匯編語言講解子程序的參數(shù)傳遞一例時,主程序用PUSH語句將參數(shù)放入堆棧,子程序中引用參數(shù)時,并不采用數(shù)據(jù)出棧,而是以BP為基址采用寄存器間接尋址方式訪問堆棧。再如,微機原理中講解外設(shè)與計算機的數(shù)據(jù)傳送時,可注重介紹IN,OUT輸入輸出指令在執(zhí)行時,對接口電路的影響,即匯編語言指令具體執(zhí)行對硬件的影響,如M/,,信號以及地址譯碼的變化。⑤
3 重視實驗教學,體現(xiàn)指令與硬件的結(jié)合,鼓勵進行設(shè)計型實驗
微機原理很多知識需要通過實驗來加以驗證和運用,上好實驗課是教學的重要環(huán)節(jié)。但該課程的實驗課大部分都是驗證性實驗,都在演示課本上的例子,這對于學生充分理解微機原理,熟練掌握匯編程序設(shè)計和鍛煉實踐能力來說是一種限制。我校實驗采用DJ系列8086/8088微機系統(tǒng),其中實驗十五:簡單I/O口控制,實現(xiàn)的功能是利用開關(guān)K1~K8控制LED燈L1~L8,一個開關(guān)控制一個燈的亮滅,⑥所用接口芯片為74LS244,74LS273。該實驗為驗證性試驗,即學生可按實驗指導書完成硬件連線,運行現(xiàn)有程序,即可實現(xiàn)功能。如此則學生較難留下深刻印象,也不能很好地理解硬件和軟件的配套關(guān)系,因此我要求學生在完成實驗的基礎(chǔ)上,對實驗進行修改,例如當?shù)刂肪€重新連接后,端口地址如何變化;如何修改程序,實現(xiàn)一個開關(guān)控制8個燈的亮滅。學生通過自己思考,動手實踐,實現(xiàn)功能,從而留下深刻印象,加深了對知識的理解,教學效果也圓滿實現(xiàn)。對于實驗教學,我們應(yīng)在做好驗證性實驗的基礎(chǔ)上,多挖掘?qū)嶒瀮x器的潛力,多讓學生思考,多做一些有設(shè)計環(huán)節(jié)的實驗,從而提高學生的實踐能力。
4 合理安排課時,考核時注意知識點的傾向性
適當調(diào)整教學內(nèi)容講授的次序和學時分布,講授內(nèi)容有所側(cè)重,建立一個合理的教學體系。由于匯編語言在微機原理這門課程中主要是起到一門工具性語言的作用,即很多微機原理的知識需要通過匯編編程加以體現(xiàn),因此在匯編語言的教學過程中,不要過于強調(diào)如何解決那些計算機高級語言擅長解決的軟件問題,這本來就不是匯編擅長的領(lǐng)域。匯編的教學中只要求學生熟悉匯編語言指令的基本功能及使用要求,熟悉匯編語言解決問題的思路即可,不要花費過多的時間,應(yīng)將教學的側(cè)重點放在匯編語言與微機原理的結(jié)合處,主要是對芯片控制的編程。在考核的內(nèi)容上,也應(yīng)側(cè)重于匯編語言在解決硬件相關(guān)問題的作用,從而引導學生的學習方向。
通過對匯編語言和微機原理整合課程的教學改革,使學生對該課程產(chǎn)生了更濃厚的學習興趣,取得了較顯著的教學成果,同時也還存在一些不完善的地方,需要在以后的教學實踐中不斷改善。
注釋
①許穎梅.對匯編語言和微機原理課程整合的探討[J].福建電腦,2007.1.
②楊季文.80X86匯編語言程序設(shè)計教程[M].北京:清華大學出版社,2004.
③趙樹升,趙雪梅.現(xiàn)代微機原理及接口技術(shù)[M].北京:清華大學出版社,2008.
④馬浩.淺談微機原理與匯編語言教學改革[J].科技創(chuàng)新導報,2009.17.
⑤周荷琴,吳秀清.微型計算機原理與接口技術(shù)(第三版)[M].合肥:中國科技大學出版社,2004.
⑥馮博琴,吳寧.微型計算機原理與接口技術(shù)(第2版)[M].北京:清華大學出版社,2007.