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