王海豐
(1瓊州學院電子信息工程學院,海南三亞572022;2東北林業(yè)大學信息與計算機工程學院,黑龍江哈爾濱150040)
匯編語言程序設(shè)計是高校計算機專業(yè)的基礎(chǔ)課程,其前導課程為高級語言程序設(shè)計和計算機組成原理,后續(xù)課程為操作系統(tǒng)、計算機接口等課程,匯編語言在整個計算機課程的教學環(huán)節(jié)中有非常重要的作用。雖然匯編語言是計算機專業(yè)學生需要掌握的重要專業(yè)基礎(chǔ)知識之一,但由于匯編語言為低級語言,依賴于硬件,雖然能通過巧妙地設(shè)計發(fā)揮硬件的潛力,編寫出高效率的代碼,但其抽象、程序可讀性差,指令多,知識點多,教材無法覆蓋所有知識點[1],而課時數(shù)減少,甚至有些學校將該門課程和計算機組成原理合并,導致教學過程中學生普遍反映難于理解;另外目前簡單高效的高級語言及各種可視化的編程開發(fā)工具種類繁多,且使用方便,這些因素都致使學生學習興趣下降。對匯編語言程序設(shè)計的不了解和不熟悉導致學生計算機知識鏈的斷裂,勢必影響學生對計算機系統(tǒng)的整體理解[2]。通過分析匯編語言課程及教學過程中存在的問題,結(jié)合實際教學狀況,探討如何改進課程教學,提高教學質(zhì)量和效果,培養(yǎng)多樣化的計算機專業(yè)應用型人才。
匯編語言是介于機器語言和高級語言之間,用指令助記符、符號地址等組成的符號指令即匯編指令和偽指令等來編寫程序,匯編語言程序要比用機器指令編寫的程序容易理解和維護[3]。匯編語言程序的特點:
(1)依賴于硬件,可移植性差,不同類型的CPU之間的匯編語言程序是不能進行移植的。
(2)指令多,容易混淆,記憶難度大,指令和寄存器選擇難度大。解題步驟繁瑣,在程序編寫時要考慮機器資源的限制以及指令的限制,一個簡單的功能需要一系列的指令才能實現(xiàn)。所用實例大多數(shù)都與數(shù)制有關(guān),學生容易發(fā)生混淆。
(3)程序調(diào)試過程復雜,學生對DOS,DEBUG等調(diào)試工具陌生,雖然有可視化的調(diào)試方法,由于指令涉及具體的機器資源,在調(diào)試過程中,要隨時掌握每個資源的變化情況,同樣也需要花費大量時間熟悉,影響上機效率。
匯編語言課程的教學現(xiàn)狀:
(1)教學內(nèi)容陳舊,缺乏應用類內(nèi)容
目前采用的教材相對陳舊,缺乏面向應用型的信息處理開發(fā)系統(tǒng),導致學生學習茫然,進而失去學習興趣。甚至有些學校學生放棄匯編語言的學習,原因是高級語言的開發(fā)更容易找到工作[4]。
(2)課時少,內(nèi)容多,理論性強
由于課時壓縮,導致上課內(nèi)容減少,課堂講授時間相對變長,實踐部分減少,滿堂理論盡是硬件和指令等基礎(chǔ)性內(nèi)容,且反復同模式地講解每一條指令和偽指令[5],導致學生興趣下降。
(3)實驗設(shè)計不合理
由于課時減少,程序調(diào)試困難加之學生調(diào)試能力缺乏,現(xiàn)在匯編語言課程的實驗課大都是課本上驗證性的例題,甚至有些直接就是已經(jīng)編寫好的電子版源代碼,學生只要按照代碼直接錄入電腦或者拷貝,編譯、運行都不會出現(xiàn)任何問題,這對于培養(yǎng)學生動手寫代碼、調(diào)試代碼的能力是一種限制,僅僅這樣學生能將程序調(diào)試運行成功仍需要時間和耐性,從而也使學生失去耐心和興趣。
匯編語言作為低級語言的特點以及學習記憶困難和上機調(diào)試的復雜性,使得教學質(zhì)量差,學習難度加大,如何提高教學質(zhì)量及提高教學的實際效果是教者必須面對的問題,也是需要解決的首要問題。在教學過程中,需要重新認識匯編語言,重新發(fā)掘教改思路和創(chuàng)新實驗方法:
(1)盡量減少板書,充分利用多媒體教學,制作具有動感的課件,利用多媒體等手段演示指令執(zhí)行過程,增強視覺記憶功能,減少學生對枯燥指令的死記硬背,增加學生對指令的感性認識。增強教學的直觀性、趣味性和可理解性,增強學生學習的興趣。
(2)重新組織教學內(nèi)容:以實際教學情況來看,課程內(nèi)容主要包括相關(guān)基礎(chǔ)知識、指令系統(tǒng)及尋址方式、匯編語言語句格式和程序格式、循環(huán)分支子程序及I/O程序設(shè)計等基礎(chǔ)部分;提高部分是有選擇的選取中斷程序設(shè)計、宏匯編和模塊化程序設(shè)計及與其他高級語言的連接等部分內(nèi)容;為了更好與后續(xù)課程的銜接,還將介紹相關(guān)ARM指令集及嵌入式引導程序等相關(guān)知識;同時將教學內(nèi)容與科研項目相結(jié)合,提高學生分析和解決實際問題的能力,既可以使教學內(nèi)容滿足實際需求,又可以提高學生的學習興趣。
(3)教學順序,在講解指令前先講授如何使用DEBUG。為了增加學生對DEBUG的興趣,穿插講授一些關(guān)于使用DEBUG的經(jīng)典應用實例,如破解BIOS密碼等。指令部分不再集中進行講解,按實際要求分解講解,具體講解順序如表1所示。這樣指令都是分散講解,學生不會感到無從下手。從而也解決了前期集中講解指令而無法上機,后期講程序,上機時間不足的問題。
(4)教學方法 模仿教學:教師先講解經(jīng)典程序,然后布置學生模仿練習,提高學生的動手能力,積累經(jīng)驗。鼓勵學生在課堂上講解自己的程序,說明算法的思路,師生共同討論算法的優(yōu)劣,增加學生學習的熱情。
類比教學[6]:學生都已經(jīng)學過高級語言程序設(shè)計課程,對C語言等都比較熟悉,在講授時,通過與C語言的比較學習,對兩者進行對比,增強對匯編語言的認知程度,增進學生對低級語言的理解。如學生對DOS功能調(diào)用的入口參數(shù)和出口參數(shù)不太理解,通過與C語言中的函數(shù)調(diào)用參數(shù)與返回值進行對比,使兩者聯(lián)系起來,便于理解記憶。
(5)增加實踐教學,增強學生動手能力
重新設(shè)計實驗案例,增加趣味性、實用性、應用性?;A(chǔ)實驗先講解算法思想,然后分析源代碼,最后學生自己動手實踐。提高階段,分析經(jīng)典案例源代碼,如一些小游戲等,鍛煉學生讀程序的能力,加強對學生的引導,提高學習興趣。應用階段,學生根據(jù)自己的興趣借鑒經(jīng)典案例設(shè)計完成一個自擬題目實驗,加大學生對代碼的編寫、調(diào)試能力,激發(fā)學生的主觀能動性,增加學習興趣。
表1 指令分散講解順序
匯編語言在計算機專業(yè)中的重要性,使得在其上進行的教學探索對于計算機專業(yè)的發(fā)展及應用型人才的培養(yǎng)都具有重要意義。在教學過程中,不僅要注重理論知識,而且也不能忽視對學生編程能力的培養(yǎng),增加課程實用性,激發(fā)學生學習興趣,提高教學效果,為其它后續(xù)課程學習奠定堅實的基礎(chǔ)。
[1]錢曉捷.32位匯編語言教學技巧[J].計算機教育.2012,(02):84-87.
[2]劉敬勇.匯編語言教學中存在的問題與對策[J].廣東工業(yè)大學學報(社會科學版).2010,10(增刊):76-78.
[3]沈美明,溫冬嬋.IBM匯編語言程序設(shè)計[M].北京:清華大學出版社出版,2001.
[4]田祎,樊景博.匯編語言課程內(nèi)容設(shè)置與教學方法規(guī)范化探討[J].網(wǎng)絡(luò)與信息,2012,4:34-35.
[5]木林.《匯編語言程序設(shè)計》實驗教學的探討[J].呼倫貝爾學院學報,2012,2(20):92-94,83.
[6]陳梅.《匯編語言程序設(shè)計》課程中比較教學方法課例分析[J].安慶師范學院學報(自然科學版),2011,17(1):102-104.