張洪業(yè) 宋人杰 周欣欣
摘要:“匯編語言”是高等院校計(jì)算機(jī)及相關(guān)專業(yè)本科生的一門基礎(chǔ)課。本文分析了目前高等院校匯編語言課程的教學(xué)現(xiàn)狀,指出了匯編語言教學(xué)改革的必要性,對改革的方向做了探討,提出了自己的看法,同時(shí)將其應(yīng)用于實(shí)踐教學(xué)中,其目的在于突破傳統(tǒng)的教學(xué)模式,探索出一條更加科學(xué)、合理、有效、適用于當(dāng)前教學(xué)實(shí)際的教學(xué)模式。
關(guān)鍵詞:教學(xué)模式;匯編語言;虛擬PC;模擬器
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1引言
“匯編語言程序設(shè)計(jì)”是高校計(jì)算機(jī)、自動化、電子、通信等專業(yè)必修的一門主干課程,尤其是對計(jì)算機(jī)專業(yè)來說,它是一門體現(xiàn)軟硬件結(jié)合的基礎(chǔ)課程。因此,學(xué)好匯編語言,不但能使學(xué)生以后能更好地理解計(jì)算機(jī)的組成及工作原理、了解計(jì)算機(jī)內(nèi)部運(yùn)行機(jī)制,還能為將來進(jìn)行程序設(shè)計(jì)打下良好的基礎(chǔ);同時(shí)它對學(xué)習(xí)“微機(jī)原理及接口技術(shù)”、“操作系統(tǒng)”等后續(xù)課程有非常重要的作用。
2當(dāng)前教學(xué)現(xiàn)狀及存在的問題
匯編語言與計(jì)算機(jī)有著密不可分的關(guān)系:匯編指令與機(jī)器指令一一對應(yīng);能直接操作系統(tǒng)硬件。同時(shí),匯編語言目標(biāo)程序短、運(yùn)行速度快,相對于機(jī)器語言來說便于書寫、閱讀和調(diào)試,因此從其誕生伊始就迅速地替代了機(jī)器語言,成為程序設(shè)計(jì)人員的最愛。經(jīng)過數(shù)十年的發(fā)展,匯編語言早已廣泛應(yīng)用于程序優(yōu)化、軟件安全、系統(tǒng)工具的編寫等各個(gè)方面。當(dāng)前,幾乎每個(gè)高校的計(jì)算機(jī)及其相關(guān)專業(yè)都把匯編語言程序設(shè)計(jì)作為專業(yè)必修課向本科生開設(shè)。然而,經(jīng)過實(shí)踐教學(xué)發(fā)現(xiàn),由于其先修課程少,課程本身指令復(fù)雜,規(guī)定繁多,學(xué)生往往感到乏味厭學(xué)。這樣常常導(dǎo)致教師教得累、學(xué)生學(xué)得煩,教學(xué)效果明顯欠佳。
概括起來,目前“匯編語言”課程教學(xué)中存在的主要問題有如下幾點(diǎn):
(1) 學(xué)生的課程認(rèn)識不正確
學(xué)生往往不知道學(xué)習(xí)該門課程的必要性。在開設(shè)這門課程之前,往往已經(jīng)先修了C語言課程,而C語言明顯比匯編語言具有更好的邏輯性,更接近于自然語言,更符合人類的思維方法,更簡單易懂,應(yīng)用更廣泛。相反,匯編語言指令瑣碎,知識點(diǎn)太多,學(xué)習(xí)戰(zhàn)線太長,這樣學(xué)生往往會由苦學(xué)到厭學(xué),最后不學(xué)。當(dāng)然,造成這種情況的原因除了“匯編語言”課程本身的特點(diǎn)外,任課教師引導(dǎo)失誤是主要原因。
(2) 學(xué)生的學(xué)習(xí)方法有偏差
匯編語言復(fù)雜難學(xué),是一門非常重視基礎(chǔ)的課程,如要想學(xué)好指令,必須扎實(shí)理解其尋址方式。而學(xué)生在學(xué)習(xí)中,不重視基礎(chǔ),往往學(xué)了后面忘了前面,不去認(rèn)真理解,而往往死記硬背,結(jié)果事倍功半。例如學(xué)完尋址方式后,再學(xué)習(xí)數(shù)據(jù)傳送指令時(shí),還有較多的學(xué)生寫出兩個(gè)存儲器之間直接傳遞數(shù)據(jù)的指令,很顯然這是基礎(chǔ)不牢造成的。
(3) 教師的教學(xué)手段存在缺陷
傳統(tǒng)的板書式教學(xué)方式正逐漸被多媒體教學(xué)手段所取代。多媒體課件信息量大、生動直觀,在很大程度上激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了教學(xué)效果。但其缺點(diǎn)也是明顯的:信息量大往往使學(xué)生對知識消化吸收困難,找不到重點(diǎn),理不出頭緒。而且采用多媒體方式,學(xué)生往往產(chǎn)生一種依賴情緒,一旦遇到困難就想課后看課件,從而導(dǎo)致注意力分散,使得問題不能得到及時(shí)解決。
(4) 實(shí)驗(yàn)和實(shí)踐環(huán)節(jié)重視不足
實(shí)驗(yàn)和實(shí)踐環(huán)節(jié)對于學(xué)好匯編語言來說是非常重要的。學(xué)生只有經(jīng)過上機(jī)實(shí)驗(yàn)和課后實(shí)踐,才能很好的理解教科書上的內(nèi)容,從而打下堅(jiān)實(shí)的理論基礎(chǔ),反過來才能更好地指導(dǎo)實(shí)踐。目前的上機(jī)實(shí)驗(yàn)時(shí)間往往很短,常常是學(xué)生才剛剛有點(diǎn)入門,實(shí)驗(yàn)環(huán)節(jié)就結(jié)束了;且課外實(shí)踐環(huán)節(jié)幾乎沒有,導(dǎo)致學(xué)生即使課內(nèi)學(xué)的再好也不會應(yīng)用。
3解決方法研究與探討
(1) 強(qiáng)調(diào)學(xué)生對課程的正確認(rèn)識,端正學(xué)生的學(xué)習(xí)態(tài)度。
匯編語言指令采用助記符等符號書寫,與機(jī)器指令一一對應(yīng),比機(jī)器指令容易記憶和理解。通過學(xué)習(xí)和使用匯編語言,我們能夠感知、理解機(jī)器的邏輯功能;實(shí)踐中向上可以理解軟件,向下可以感知硬件。因此在課程講述過程中,我們應(yīng)不斷強(qiáng)調(diào):學(xué)習(xí)匯編語言是理解計(jì)算機(jī)系統(tǒng)的最佳起點(diǎn)和最有效途徑;在實(shí)際應(yīng)用中,匯編語言在調(diào)試程序或開發(fā)底層內(nèi)核程序方面都有較大的競爭優(yōu)勢。除此之外,教學(xué)中還需要例舉一些大家比較熟悉的應(yīng)用匯編語言的實(shí)例,讓學(xué)生們感覺到匯編語言的重要性。這一環(huán)節(jié),也可讓學(xué)生們課后自己去圖書館或網(wǎng)上查找資料,然后課內(nèi)組織大家一起討論。學(xué)生們一旦理解了匯編語言的重要性,自然會端正自己的學(xué)習(xí)態(tài)度。課堂教學(xué)中,要鼓勵(lì)學(xué)生打好基礎(chǔ),引導(dǎo)學(xué)生不斷回憶以前的內(nèi)容,使他們能自己發(fā)現(xiàn)問題,然后盡量用簡單的例子對問題進(jìn)行講解。
(2) 指導(dǎo)學(xué)生采取正確的學(xué)習(xí)方法,培養(yǎng)學(xué)生的學(xué)習(xí)興趣。
在實(shí)驗(yàn)課程中及課后學(xué)習(xí)中,積極引導(dǎo)學(xué)生對匯編語言的學(xué)習(xí)興趣:指導(dǎo)學(xué)生編寫一些平時(shí)常見的并且有實(shí)際應(yīng)用功能的程序,如文件加密程序;讓學(xué)生閱讀或嘗試編寫一些有趣的小游戲,如迷宮小游戲;讓學(xué)生閱讀并用自己的方法修改別人的源程序,如對已有程序進(jìn)行優(yōu)化,比較誰的程序最簡單高效;指導(dǎo)學(xué)生使用反編譯工具對較小的軟件進(jìn)行反編譯,然后對結(jié)果進(jìn)行分析。
(3) 采用豐富的教學(xué)方法和教學(xué)手段。
將課堂教學(xué)、自主學(xué)習(xí)、網(wǎng)絡(luò)教學(xué)等有機(jī)地結(jié)合起來,并充分利用多媒體教學(xué)手段提高教學(xué)效率和教學(xué)效果。在教室中,將多種教學(xué)方法有機(jī)地結(jié)合起來,通過電子教案、軟件仿真等手段,讓學(xué)生邊學(xué)習(xí)、邊實(shí)踐,引導(dǎo)學(xué)生自己發(fā)現(xiàn)問題、思考問題、解決問題。在講解不易理解的問題時(shí),應(yīng)放慢速度,除用多媒體課件直觀演示外,應(yīng)盡量結(jié)合板書講解,這樣更有助于學(xué)生對講述內(nèi)容的消化吸收。同時(shí),在教學(xué)中應(yīng)多采用類比的方法,盡量用生動的語言、鮮活的事例對比講解某一問題,既能激發(fā)學(xué)生的學(xué)習(xí)興趣,又使其加深對內(nèi)容的理解。
(4) 增強(qiáng)實(shí)驗(yàn)環(huán)節(jié),做一些實(shí)際項(xiàng)目 。
在實(shí)踐教學(xué)中,積極創(chuàng)造學(xué)習(xí)環(huán)境,擠出時(shí)間加強(qiáng)實(shí)踐環(huán)節(jié)和編程上機(jī)操作的訓(xùn)練。實(shí)驗(yàn)室硬件資源有限,學(xué)生上機(jī)實(shí)驗(yàn)次數(shù)受限,因此在學(xué)習(xí)masm等基本匯編工具基礎(chǔ)上,指導(dǎo)學(xué)生課外利用一些軟件模擬工具,如emu8086等進(jìn)行匯編程序的學(xué)習(xí)。這些軟件基本上都結(jié)合了先進(jìn)的原始編輯器、組譯器、反組譯器、具除錯(cuò)功能的軟件模擬工具(虛擬PC),有的還有循序漸進(jìn)的指導(dǎo)工具。它們都是可視化的環(huán)境,可以完全模擬計(jì)算機(jī)硬件系統(tǒng)。由于模擬器在虛擬PC中執(zhí)行程序,因此它不會去存取實(shí)際硬件,程序運(yùn)行中可以隨時(shí)看到各寄存器、標(biāo)志位、存儲器單元的狀態(tài),不但可以很方便地進(jìn)行程序的調(diào)試,還可以對計(jì)算機(jī)硬件進(jìn)行深層次的了解,而且這些軟件完全兼容Intel 的后繼處理器,包括Pentium II、Pentium 4等等。圖1就是采用emu8086可視化8086模擬器調(diào)試匯編程序的畫面。
另外,在實(shí)驗(yàn)過程中,可以將學(xué)生分成若干組,各組間互相進(jìn)行提問、講解和討論;各組在課后可以自己尋找感興趣的題目或?qū)嶋H應(yīng)用項(xiàng)目(如廣告牌等)進(jìn)行實(shí)踐,這樣就能明顯提高學(xué)生的動手實(shí)踐能力。
4結(jié)束語
基于以上的考慮,我們進(jìn)行了教學(xué)改革的嘗試,通過一段時(shí)間的實(shí)踐取得了較好的效果。既加深了學(xué)生對課程的理解和掌握程度,同時(shí)又使教師加強(qiáng)了對該課程的教學(xué)能力。當(dāng)然,良好的教學(xué)效果是我們永遠(yuǎn)追求的目標(biāo),因此在今后的教學(xué)中,我們還需要不斷進(jìn)行探索、研究和嘗試,不斷更新觀念,取得教學(xué)藝術(shù)中的精華。
參考文獻(xiàn):
[1] 沈美明,溫冬嬋. IBM-PC匯編語言程序設(shè)計(jì)[M]. 2版. 北京:清華大學(xué)出版社,2001.
[2] (美)布魯姆,著. 匯編語言程序設(shè)計(jì)[M]. 馬朝暉,譯. 北京:機(jī)械工業(yè)出版社,2006.
[3] 仝選悅,趙煥平. 匯編語言的教學(xué)改革和思考[J]. 福建電腦,2008(2):201.
[4] 何武超. 淺談《微機(jī)原理與匯編語言》的教學(xué)改革[J]. 滄州師范??茖W(xué)校學(xué)報(bào),2008,24(1):76-77.