張玉華,郭紅濤
(1.華北水利水電學院,河南鄭州450011;2.中興通訊股份有限公司,江蘇南京210012)
匯編語言教學探討
張玉華1,郭紅濤2
(1.華北水利水電學院,河南鄭州450011;2.中興通訊股份有限公司,江蘇南京210012)
匯編語言是計算機專業的一門核心課程,掌握好這門課程可以提高學生的程序設計和調試程序的能力,有助于學生對后續專業課程的學習。由于匯編語言中指令執行過程看不見,摸不著,非常抽象,故學生學習非常困難。通過興趣提高教學、動畫仿真教學、任務驅動教學和改革考核方式,收到很好效果,提高了教學質量。
匯編語言;動畫仿真;任務驅動
匯編語言課程是高等院校計算機科學與技術專業的一門專業基礎課,是計算機科學與技術專業學生必修的核心課程之一,在計算機專業課程體系中占有重要地位。它不僅是計算機原理、操作系統等其它核心課程的必要先修課。而且掌握好這門課程可以提高學生的程序設計和調試程序的能力,有助于學生對后續專業課程的學習。該課程知識在計算機控制、嵌入式系統、數控機械、軟件的分析等方面也有著廣泛的應用。由于匯編語言中指令執行過程看不見,摸不著,非常抽象,故學生學習非常困難。我們把仿真可視化技術、任務驅動方法等引入教學中,收到很好效果,提高了教學質量。
人們常說興趣是最好的老師。為了提高學生的學習興趣,打破教材原有的組織結構,不是一上來就介紹計算機的系統組織,這樣學生容易感覺枯燥,不易理解。通過先引入一個實例,讓學生看到匯編語言的實際應用,激發他們的學習興趣,然后配合實例介紹計算機的系統組織及其功能和使用要點。筆者將學校實驗室的實驗器材帶入課堂,搭建一個跑馬燈實驗。通過運行,讓學生看到匯編語言程序設計的效果及在后續課程中的應用,讓學生意識到該課程的重要性。通過講解跑馬燈的硬件組成和軟件設計,讓學生對匯編程序設計有一個整體概念,為下一步指令的學習提供良好的開端[1]。
匯編語言內容瑣碎,知識點多。以8086系統為例,僅指令系統就有117條,分為6個功能組[2]。學生學習時要掌握每條指令的功能、指令的尋址方式、指令對標志位的影響以及指令執行時的約定設置、需要預置的參數、隱含使用的寄存器等內容。學生看不到計算機內部的執行過程,講解這些內容如果用傳統教學方式,學生會感覺抽象,難以記憶和掌握。采用動畫模擬仿真計算機內部指令的執行過程,可以將抽象的內容直觀化,用動態演示講授內容,使學生在學習過程中注意力更集中,能夠更準確地理解掌握所學知識點。比如在講解尋址方式的時候,制作flash動畫模擬每種尋址方式操作數獲取的過程,學生學習起來一目了然,可以輕松理解幾種尋址方式的區別。還制作了flash動畫模擬存儲單元物理地址的形成過程以及各邏輯段的分配過程,使學生更好地理解了對存儲器的訪問。在講解指令時,每講解一類指令,會給出例子,然后用動畫模擬舉例指令在計算機中的執行過程,使得學生對8086CPU指令的工作原理及過程有了感性的認識,為后續章節的學習打下良好的基礎。在上課之初,就十分強調學生自己上機調試練習,加深對指令的理解。因此,在講解指令時,用多媒體演示如何用Debug命令查看指令執行后相關寄存器、標志位、存儲單元的變化,如何檢驗指令的格式是否正確,讓學生掌握自主學習的方法,大大提高了課堂教學效率。
傳統教學模式以教師為中心,強調教師的教。教師對知識本身過分重視,而忽略了對學生獲取知識的能力的培養,不能充分發揮學生的積極性和主動性,容易使學生喪失對學習的興趣。現代教育理論的基本思想是提倡以學生為中心,強調學生學習的主動性。于是改變以往的教學模式,引入了任務驅動教學模式。所謂任務驅動就是將所要學習的新知識隱含在一個或多個任務中,教學過程以項目為主線,學生在教師引導下按需自主學習[3]。在講解完匯編程序的指令系統和程序格式,進入程序設計階段的學習時,就采用以“工資計算系統”這個項目為主線,劃分為十個功能模塊,在其中包含了分支程序設計、循環程序設計、子程序設計、宏結構程序設計、輸入輸出程序設計、系統調用等知識點[4]。每講解一個知識點把相應的功能模塊分配給大家,由大家自行設計,討論分析,最后老師評議總結得到最終的程序設計。在這個過程中,以任務為驅動,充分發揮了學生的學習主動性,培養了學生的學習能力和合作意識,變傳統的“教學”為“求學”、“索學”,起到了較好的教學效果。
匯編語言是一門實踐性很強的課程,學習并真正體會和掌握匯編語言程序設計的最好方法是對其進行充分的實踐。但是學生中普遍存在重理論輕實踐的現象。為了提高學生實踐的主動性,對以往的考核方式進行了改革,增大了實驗環節在綜合考評中的比重。本著理論考核、實踐能力考核并重的原則評定學生的成績:
總成績=平時成績(占10%)+實驗考核(占30%)+期末考試(占50%)
加大實驗考核力度,避免期末考試一錘定音,有利于督促學生加強動手能力的訓練和綜合能力的培養。但是實驗考核比重的加大又帶來一個問題,如何客觀公正地對學生的實踐能力做出評價?如果處理不好,反而適得其反。經過反復實踐,選用實驗驗收面對面、一對一的提問方式。提前布置上機題目,要求學生課下編寫程序代碼,實驗課進行代碼查錯、調試運行,完成后由教師提問驗收。要求學生能夠講解自己的程序,同時還能根據教師的要求實時修改程序或給出修改程序的編程思想,促使學生對編程實驗有足夠的重視,認真完成實驗,保證了動手能力訓練的質量和實踐能力評價的公正性,較好地遏止了抄襲。
總之,通過對匯編語言課程教學改革的實踐,提高了學生對這門課程的興趣,培養了學生獨立思考的能力,改善了學生做實驗的態度,有效地提高了學生的整體知識水平和應用能力。
[1]任斌,賴樹明.單片機教學方法探析[J].東莞理工學院學報,2007,(2).
[2]沈美明,溫冬嬋,張赤紅.IBM-PC匯編語言程序設計(第2版)[M].北京:清華大學出版社,2001.
[3]陳浩.高職數學教學中任務驅動式教學初探[J].湖南農機,2008,(9).
[4]沈美明,溫冬嬋,張赤紅.IBM-PC匯編語言程序設計實驗教程[M].北京:清華大學出版社,1996.
Abstract:Assembly language is a core course of computer science courses.Mastering this course,students can improve the ability of program design and debug.It helps students learn follow-up professional courses.As the instruction execution process is invisible and very abstract,so it is very difficult for students to learn.We applay simulation visualization techniques and task-driven methods in teaching,which received very good results and improved the teaching level.
Key words:Assembly Language;Animation simulation;Task-driven
Discussion on Teaching of Assembly Language Teaching
ZHANG Yu-hua ,GUO Hong-tao
(1.North China Institute of Water Conservancy and Electric Power,Zhengzhou 450011,China;2.Zhong Xing Communication Corporation ,Nanjing 210012,China)
G642
A
1008—4444(2010)03—0159—02
2010-03-14
張玉華(1976—),女,河南開封人,華北水利水電學院信息工程學院講師。
(責任編輯:宋孝忠)