摘要: 《匯編語言程序設(shè)計》是高職院校計算機及相關(guān)專業(yè)的一門專業(yè)基礎(chǔ)課程,同時也是一門實踐性和應(yīng)用性很強的課程。本文作者針對該課程在教學(xué)過程中存在的一些問題,根據(jù)教學(xué)實踐總結(jié)了一些改進的方法,并提出了一些建議,以提高高職學(xué)生的教學(xué)質(zhì)量。
關(guān)鍵詞: 高職院校《匯編語言程序設(shè)計》教學(xué)方法
1.前言
匯編語言是我們理解整個計算機系統(tǒng)的最佳起點。人們往往認為匯編語言的應(yīng)用范圍很小,因而忽視了它的重要性。其實匯編語言對學(xué)習(xí)計算機科學(xué)與技術(shù)的人是非常重要的。所有程序,不論用何種語言進行編制,只有轉(zhuǎn)成機器指令,運用機器的邏輯功能,功能才得以實現(xiàn)。
匯編語言直接a描述機器指令,比機器指令更容易記憶和理解。通過學(xué)習(xí)和使用匯編語言,我們才能夠感知、體會、理解機器的邏輯功能,這樣不僅可以為理解各種軟件系統(tǒng)的原理打下技術(shù)理論基礎(chǔ),而且可以為掌握硬件系統(tǒng)的原理打下實踐應(yīng)用基礎(chǔ)。
2.教學(xué)中存在的問題
當前高級語言的發(fā)展非常迅速,各種開發(fā)工具層出不窮,其功能也越來越強大。高級語言進行程序設(shè)計的可操作性越來越強,許多非計算機專業(yè)人員在不了解計算機的結(jié)構(gòu)、沒掌握計算機相關(guān)的專業(yè)理論和各種計算機語言具體編程等情況下,同樣能很好地使用高級語言。所以,高級語言的發(fā)展弱化了匯編語言的地位,這使部分高職學(xué)生覺得匯編語言已不重要了,學(xué)不好沒有多大的關(guān)系。所以,思想認識上的不重視,導(dǎo)致了部分學(xué)生學(xué)不好這門課程。
《匯編語言程序設(shè)計》的學(xué)習(xí)需要一定的英語知識。高職學(xué)生的英語基礎(chǔ)普遍差,據(jù)有關(guān)職業(yè)教育方面的統(tǒng)計資料顯示:在高職高專院校中60%的學(xué)生英語基礎(chǔ)差;30%的學(xué)生有一定的基礎(chǔ),但對英語學(xué)習(xí)不感興趣;10%的學(xué)生英語基礎(chǔ)較好。實際上,普通高職高專院校學(xué)生英語的基礎(chǔ)情況比統(tǒng)計的更嚴峻。這就為他們學(xué)習(xí)這一課程帶來了一定的障礙。
針對這一系列的情況,筆者根據(jù)教學(xué)經(jīng)驗,總結(jié)了在高職院校教《匯編語言程序設(shè)計》的一些心得,希望對大家有所幫助。
3.注重課堂教學(xué)
3.1優(yōu)化教學(xué)內(nèi)容。
本課程涉及內(nèi)容較多,教師應(yīng)在講課之前先對課本內(nèi)容進行優(yōu)化。并不是課本上所羅列的內(nèi)容都需要講,教師要有選擇性講解:對學(xué)生有用的而課本上講得不全面的要補充講解,而對學(xué)生用處不大的可以不講或一帶而過,爭取做到“少而精”。
3.2讓學(xué)生充分認識到該課程的重要性,提高學(xué)生的學(xué)習(xí)的興趣。
“興趣是最好的老師”,如何讓學(xué)生對本課程感興趣?筆者認為關(guān)鍵是把握好開學(xué)第一堂課。在學(xué)生剛接觸本課程時,教師不要急于介紹理論知識,而是要強調(diào)該課程的實際應(yīng)用,通過介紹匯編語言的特點和匯編語言在一些典型系統(tǒng)開發(fā)中的具體應(yīng)用來激發(fā)學(xué)生的學(xué)習(xí)興趣。
目前對單片機的靈活編程已經(jīng)應(yīng)用到各個領(lǐng)域,無論是尖端科技,如軍事、通信、能源、機器人、交通、IT,還是現(xiàn)代工業(yè)、農(nóng)業(yè),如儀器儀表、汽車電子系統(tǒng)、家用電器、玩具、個人信息終端等諸多領(lǐng)域,都離不開單片機。而單片機的編程里大部分都使用了匯編語言,匯編語言的易用和靈活的特性,使得匯編語言將繼續(xù)占有獨特的地位,其適用的領(lǐng)域要求執(zhí)行效率高、反應(yīng)快,如操作系統(tǒng)內(nèi)核、工業(yè)控制、實時系統(tǒng)、家用電器的計算機控制功能等。在講述其重要性和應(yīng)用領(lǐng)域時,教師應(yīng)結(jié)合一些身邊的、具體的實例,如電梯升降的控制程序和廣場的大型噴泉的控制程序均是由匯編語言編寫的,學(xué)生的興趣會被這些實例極大地調(diào)動起來。
3.3注重實踐環(huán)節(jié)。
在計算機相關(guān)專業(yè)的教學(xué)領(lǐng)域,實驗教學(xué)是培養(yǎng)學(xué)生學(xué)習(xí)能力、實踐能力、思考能力、創(chuàng)新能力的重要環(huán)節(jié)和有效途徑。學(xué)生在學(xué)習(xí)匯編語言這門課程中產(chǎn)生的困難,來自于他們對所學(xué)知識缺乏必要的感性認識,沒有得到充分的實踐。
計算機在很多方面不同于其他學(xué)科,尤其是與硬件有密切關(guān)系的課程。由于匯編語言課程與硬件操作有著密切關(guān)系,因此實驗環(huán)節(jié)在整個教學(xué)活動中占據(jù)了舉足輕重的地位。匯編語言的實驗對培養(yǎng)學(xué)生的動手能力和學(xué)習(xí)興趣,提高學(xué)生閱讀、編輯和調(diào)試程序的能力,有著不可替代的重要作用。學(xué)生通過實驗?zāi)苌钊肓私釩PU、存儲器、接口及外部設(shè)備的工作特性,對數(shù)據(jù)在計算機中的表達和傳送產(chǎn)生感性認識,在實驗中學(xué)生能對匯編語言有更好的理解、掌握,從感性認識上升到理論認識。
4.改進教學(xué)方法
4.1對照教學(xué)法。
在講匯編語言時,教師可以和其它語言對照講解,比如C語言。C語言作為一門基礎(chǔ)和先驅(qū)課程,在此時起到了很好的借鑒作用,由于大部分學(xué)生對C語言掌握得較好,基于語言的相通性,在匯編語言的相關(guān)教學(xué)中教師若以C語言作為對照展開講解,將會收到很好的教學(xué)效果,也能增進各科之間的知識和方法上的聯(lián)系。下面筆者結(jié)合教學(xué)實踐,列舉一些應(yīng)用對照教學(xué)法的實例。
MOV指令是8088指令系統(tǒng)中首要講解的一個指令,也是匯編程序設(shè)計中使用最頻繁的指令,教師應(yīng)強調(diào)對操作數(shù)的要求。有幾點我們可以用C語言來對比解釋:
傳送過程。其傳送過程類似于C語言中的賦值,只是在這里是給寄存器或存儲單元賦值,其實C語言中的變量名本身就是一個符號地址,匯編程度的賦值最終應(yīng)對應(yīng)到存儲器的某些存儲單元。
兩操作數(shù)的類型匹配問題。該內(nèi)容在C語言中已作了強調(diào),匯編中類型匹配問題也是一個重點。與C語言類似,匯編語言操作數(shù)的位數(shù)要保持一致,只是在8088中常用的類型為字節(jié)和字。
強制類型轉(zhuǎn)換。C語言中用到了該知識,學(xué)生也已掌握,那么匯編語言中又如何實現(xiàn)呢?很自然地我們就可以引出“BYTE PTR”和“WORD PTR”這兩個操作符。
4.2互動式和啟發(fā)式教學(xué)。
高職學(xué)生的課堂氣氛一般比較活躍,他們非常喜歡教師引導(dǎo)、提問,喜歡回答問題。所以教師應(yīng)利用這一特點在上課過程中設(shè)計一些有意義的提問,利用提問將要講的知識點引出來,避免平鋪直敘地講解知識點,這樣讓學(xué)生帶著問題來學(xué)習(xí)知識點,會起到事半功倍的作用。例如,在講解編程部分的循環(huán)結(jié)構(gòu)時,筆者先舉了這樣一個例子:求1+2+3+……+100的和。學(xué)生立刻就說出結(jié)果為5050。筆者接著問:加到1000呢?這樣很多學(xué)生饒有興趣地聽講。可見,教師所選的題目要由淺入深,要能激發(fā)學(xué)生的學(xué)習(xí)興趣,要想辦法讓學(xué)生變被動學(xué)習(xí)為主動學(xué)習(xí)。
課堂練習(xí)也是互動式教學(xué)一個非常重要的方法。在講解完某一個例題后,教師可以出一道類似的習(xí)題讓學(xué)生在課上完成,請學(xué)生上講臺在黑板上寫出解題步驟并進行講解。例如剛學(xué)習(xí)了用循環(huán)的方法求1+2+3+……+100的和,教師可以讓學(xué)生練習(xí)一道2+4+6+……+100的和。這樣可以檢驗學(xué)生的掌握情況,找到學(xué)生理解錯誤的地方,從而對癥下藥。就學(xué)生理解錯誤的知識點再進行講解,這樣除了可以讓學(xué)生當堂能夠掌握所學(xué)的知識點,還能讓其做到舉一反三。
4.3實例教學(xué)法。
由于本課程是一門比較抽象的課程,因此教師在課堂講授中應(yīng)該盡量用一些通俗易懂的例子進行教學(xué)。
例如在講解匯編中存儲器地址分段的概念時,為了便于學(xué)生理解,教師可以借助平時生活的居民樓,進行舉例。一個小區(qū)有多個居民樓,如一號樓、二號樓等,每個樓里有多個室,如101室、102室等。我們可將樓號比作段基值,每個樓里的房間比作偏移地址,很顯然一號樓的101和二號樓的101是不一樣的。這個例子可以使學(xué)生易于理解分段的概念。
再如在講解中斷的概念時有很多例子可舉。把教師上課比作CPU正在處理的事,門外有學(xué)生打報告,教師就暫停正在處理的事情讓學(xué)生進來,等學(xué)生進來后接著講課。這樣學(xué)生很容易就能掌握中斷的概念。
教師可以將難理解的知識點與日常生活中的小事相聯(lián)系,這樣既可以使學(xué)生學(xué)到扎實的理論知識,又不會使學(xué)生學(xué)得吃力。
5.充分發(fā)揮多媒體教學(xué)的作用
匯編語言指令多、變化多,相對其他可編程語言來說源程序長而復(fù)雜,一個簡單的問題解決至少要幾十行,多則上百行,教師講解例題時如果板書,就要花去大部分時間。如何解決這個問題呢?多媒體能夠提高教學(xué)效果,擴大教學(xué)范圍,延伸教師的教育功能。教師應(yīng)在課前準備講解的程序,上課時直接操作計算機,一邊講解指令的格式及算法,一邊將指令使用前后的情況、程序的效果等通過投影儀展示給學(xué)生。計算機教學(xué)還可借助網(wǎng)上豐富的資源、圖文并茂的生動界面、多姿多彩的影像資料,這些可使教學(xué)具有感受性、新穎性、可組合性、可擴充性,使學(xué)生的思維更加具有發(fā)散性,更容易培養(yǎng)學(xué)生的創(chuàng)新思維。
6.結(jié)語
筆者對匯編語言課程的教學(xué)內(nèi)容和教學(xué)方法進行了探討,這些教學(xué)方法促進了課程的建設(shè)與發(fā)展,為學(xué)生學(xué)好后續(xù)課程打下了一個良好的基礎(chǔ)。摸索一條適合高職學(xué)生需要的、有效的教學(xué)方法,使高職學(xué)生能更好地、更快地掌握匯編語言程序設(shè)計,培養(yǎng)學(xué)生的分析問題、解決問題和實際操作能力,我們在匯編語言課程教學(xué)中需要繼續(xù)探索研究的目標。
參考文獻:
[1]劉均,周蘇,金海溶等.匯編語言程序設(shè)計實驗教程[M].北京:科學(xué)出版社,2006.
[2]錢曉捷.匯編語言程序設(shè)計[M].北京:電子技術(shù)工業(yè)出版社,2003.