中文字幕一二三区,亚洲国产片在线观看,国产网站午夜性色,亚洲国产综合精品2022

<menuitem id="ct2o2"><var id="ct2o2"></var></menuitem>
      1. <noscript id="ct2o2"><progress id="ct2o2"><i id="ct2o2"></i></progress></noscript>
        1. 期刊 科普 SCI期刊 投稿技巧 學(xué)術(shù) 出書

          首頁 > 優(yōu)秀范文 > 匯編語言程序設(shè)計(jì)

          匯編語言程序設(shè)計(jì)樣例十一篇

          時(shí)間:2023-03-08 15:38:53

          序論:速發(fā)表網(wǎng)結(jié)合其深厚的文秘經(jīng)驗(yàn),特別為您篩選了11篇匯編語言程序設(shè)計(jì)范文。如果您需要更多原創(chuàng)資料,歡迎隨時(shí)與我們的客服老師聯(lián)系,希望您能從中汲取靈感和知識!

          篇1

          中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2011)09-2111-02

          Teaching Thinking of Assembly Language Programming Course

          LUO Xing

          (Hanshan Normal University, Hanshan 521041, China)

          Abstract: This paper discusses the problem appear in teaching of assembly language programming course, propose some methods to improve student's ability to master the knowledge and learning interest. Discuss the assembly language teaching in Win32 platfrom in the last.

          Key words: assembly language programming; teaching improvement

          1 匯編語言程序設(shè)計(jì)課程教學(xué)現(xiàn)狀

          匯編語言程序設(shè)計(jì)作為一門計(jì)算機(jī)專業(yè)的課程,其存在的合理性在近年受到爭議。有些人認(rèn)為,匯編語言作為一種低級語言,指令繁多,難以掌握。另外,編程效率也不高,一個(gè)高級語言用一條語句實(shí)現(xiàn)的功能,在匯編語言中需要很多條指令才能實(shí)現(xiàn)。此外,匯編語言在時(shí)間上和空間上的優(yōu)勢由于高速CPU和大容量存儲器的出現(xiàn),也變得意義不大。

          我認(rèn)為學(xué)習(xí)匯編語言仍然具有重要意義??梢詺w納如下:

          1) 可以比較深入了解計(jì)算機(jī)硬件的底層工作原理,例如:CPU的工作模式,寄存器的概念,內(nèi)存的尋址方式,中斷的工作原理等。

          2) 熟悉各種數(shù)據(jù)表示方法。如各種數(shù)制的轉(zhuǎn)化,各種類型的數(shù)據(jù)在內(nèi)存中的存儲方式。學(xué)生在系統(tǒng)學(xué)習(xí)匯編語言程序設(shè)計(jì)這門課程后,對二進(jìn)制,十進(jìn)制以及十六進(jìn)制相互間的轉(zhuǎn)換應(yīng)該非常熟練。對數(shù)據(jù)在內(nèi)存中兩種排列方式即大端方式(Big Endian,低地址存放高位字節(jié))與小端方式(Little Endian,低地址存放低位字節(jié))有清晰的理解。而這些相關(guān)的概念的牢固掌握對高級語言中的數(shù)據(jù)類型以及計(jì)算機(jī)網(wǎng)絡(luò)編程的學(xué)習(xí)具有很大的幫助。

          3) 通過匯編語言編程學(xué)習(xí),可以促進(jìn)對高級編程語言相關(guān)概念的理解。高級語言在編譯的時(shí)候,一般都是先生成匯編代碼,然后再生成的二進(jìn)制代碼。所以,通過對比分析匯編代碼與高級語言代碼的實(shí)現(xiàn)方式,對程序的執(zhí)行效率,數(shù)據(jù)在內(nèi)存中存放方式,堆棧的概念,函數(shù)的調(diào)用及參數(shù)傳遞的方式等都會(huì)有進(jìn)一步的了解。

          在教學(xué)中,我也遇到一些問題。一方面就是學(xué)生的積極性不高。主要原因包括:指令很多,難以記憶。對于幾個(gè)大類的指令,如果每次課上一類,學(xué)生課后如果不進(jìn)行主動(dòng)復(fù)習(xí),往往到下一次課的時(shí)候,就會(huì)忘記前面所學(xué)的內(nèi)容或者發(fā)生混淆。另外,在學(xué)習(xí)匯編課程之前,他們已經(jīng)學(xué)過一門高級語言,如C/C++等,匯編語言的學(xué)習(xí)方式與高級語言的學(xué)習(xí)方式有所不同,高級語言比較容易上機(jī)練習(xí),也容易對程序運(yùn)行結(jié)果驗(yàn)證,對于開發(fā)實(shí)用軟件也相對容易,所以學(xué)生的興趣比較大。而匯編語言一方面涉及到底層的硬件概念,比較難以理解,另一方面上機(jī)也比較困難,可以這么說,如果按照課本的順序講課,要到差不多講完課,學(xué)生才可以上機(jī)完成一個(gè)功能比較完整的程序。

          2 促進(jìn)學(xué)生對知識的掌握

          要解決這些問題,我認(rèn)為要在學(xué)生的知識掌握方式以及學(xué)習(xí)興趣的培養(yǎng)上下功夫。對于知識的掌握,除了每次新課內(nèi)容講完后,精心給學(xué)生布置作業(yè)習(xí)題之外。還應(yīng)該注意到由于匯編語言的指令及相關(guān)的知識點(diǎn)很多,對于剛接觸這門課程的學(xué)生一開始往往不大適應(yīng),容易混淆前面學(xué)過的內(nèi)容,所以教師及時(shí)對所學(xué)過知識點(diǎn)進(jìn)行比較和總結(jié)就很有必要。此外還應(yīng)該定期對學(xué)生的學(xué)習(xí)效果進(jìn)行檢測,從過去的教學(xué)經(jīng)驗(yàn)看,匯編語言這門課程是學(xué)生比較容易與教師的教學(xué)進(jìn)度脫離的一門課程,不少學(xué)生在一開始由于在掌握知識遇到困難,問題越積越多,最終可能放棄聽課。在檢測的方法上,可以借助網(wǎng)上考試系統(tǒng)。教師可以自主出題,也可以讓系統(tǒng)自動(dòng)出題。通過分析學(xué)生的測試結(jié)果,教師可以及時(shí)調(diào)整教學(xué)進(jìn)度,學(xué)生也會(huì)有一定的學(xué)習(xí)壓力,使他們花更多時(shí)間查補(bǔ)缺漏的知識。

          程序設(shè)計(jì)學(xué)習(xí)的最佳方法就是上機(jī)實(shí)踐。匯編語言上機(jī)練習(xí)跟高級語言的上機(jī)練習(xí)相比,對于學(xué)生來說比較困難。一方面是由于一個(gè)完整的匯編程序涉及的知識點(diǎn)很多,而教材往往按知識點(diǎn)分類進(jìn)行編排。所以學(xué)生要想在剛開始學(xué)習(xí)階段,就編出完整的程序有一定的難度。另一方面,匯編程序的運(yùn)行結(jié)果較難在屏幕上輸出,匯編語言只有字符與字符串的輸入輸出,對于一道簡單的算術(shù)運(yùn)算題目,其結(jié)果的輸出都要通過一大段的轉(zhuǎn)換程序來實(shí)現(xiàn)。對于第一個(gè)問題,教師可以對教材內(nèi)容進(jìn)行選講,把實(shí)驗(yàn)所涉及到的知識點(diǎn)先進(jìn)行講解。對于第二個(gè)問題, 我認(rèn)為應(yīng)該重點(diǎn)培養(yǎng)學(xué)生熟練使用調(diào)試工具的能力,通過掌握調(diào)試工具如DEBUG,CV等的使用,一方面學(xué)生可以直接觀察程序的運(yùn)行結(jié)果,另一方面,對于程序的邏輯錯(cuò)誤也可以進(jìn)行跟蹤、分析以及解決。此外,由于匯編語言作為一種低級語言,編程都由一條條指令進(jìn)行構(gòu)造,所以相對繁瑣,應(yīng)盡早讓學(xué)生應(yīng)用模塊化思路,掌握子程序及宏的使用方法。這樣把一些常用功能做成模塊,如輸入輸出功能,以后學(xué)生在編程的時(shí)候就可以直接調(diào)用這些模塊,從而專注于實(shí)驗(yàn)的其它方面。

          3 提高學(xué)生的學(xué)習(xí)積極性

          對于如何提高學(xué)生的學(xué)習(xí)興趣,我認(rèn)為主要讓學(xué)生意識到匯編語言的作用。一方面可以引入一些接口技術(shù)相關(guān)內(nèi)容,使學(xué)生熟練掌握中斷的概念以及I/O指令,然后上機(jī)編寫中斷程序,在中斷控制器(8259A)進(jìn)行驗(yàn)證,由于這些實(shí)驗(yàn)有按鍵輸入,有屏幕輸出,還能直接看到程序控制設(shè)備的效果,所以學(xué)生興趣會(huì)比較大。此外,教師也可以適當(dāng)拓展一些知識,如嵌入式編程相關(guān)概念,有興趣的同學(xué)可以在課后自主進(jìn)行學(xué)習(xí)。另外,由于不少學(xué)生對硬盤相關(guān)的問題感興趣,比如硬盤數(shù)據(jù)的存放方式,數(shù)據(jù)的修復(fù)等??梢砸龑?dǎo)學(xué)生對這些問題進(jìn)行思考,然后通過匯編語言提供的I/O指令和中斷子功能,編程實(shí)現(xiàn)對硬盤的MBR,文件分配表等數(shù)據(jù)結(jié)構(gòu)的讀取,備份,修復(fù)等功能。教師通過布置一些學(xué)生比較感興趣的課外作業(yè),并適當(dāng)提供協(xié)助,往往能提高學(xué)生的學(xué)習(xí)積極性。

          另外,在匯編語言的學(xué)習(xí)過程中,教師應(yīng)該有意識引導(dǎo)學(xué)生將匯編語言與高級語言的各個(gè)對應(yīng)的部分進(jìn)行比較。學(xué)生在學(xué)習(xí)匯編語言之前,通常已經(jīng)學(xué)過一門高級語言,如C/C++等。高級語言在編譯的時(shí)候,一般是先轉(zhuǎn)換成匯編代碼,所以它們具有相通性。大部分學(xué)生編寫應(yīng)用程序的時(shí)候是用高級語言,所以通過比較分析高級語言與低級語言在數(shù)據(jù)定義,程序流程控制,函數(shù)的定義及調(diào)用等的對應(yīng)部分內(nèi)容,對于學(xué)生更好的使用高級語言編寫程序是很有幫助的。比如:匯編語言里有分段的概念,一般把變量定義到數(shù)據(jù)段,把代碼定義的代碼段。而C語言是把數(shù)據(jù)與代碼都定義在一起,那么C語言編寫的程序在編譯成可執(zhí)行文件后,它的全局變量,局部變量的空間是如何分配的。另外,對于動(dòng)態(tài)內(nèi)存分配,堆與棧的區(qū)別在哪里。還有函數(shù)的定義與調(diào)用,參數(shù)的傳遞順序是如何的?這些疑問,都可以讓學(xué)生編寫簡單的C語言程序,生成可執(zhí)行文件后,然后通過調(diào)試工具進(jìn)行反匯編進(jìn)行分析。此外,在利用VC++,Dephi等IDE開發(fā)工具進(jìn)行程序編寫時(shí),都會(huì)用到里面的調(diào)試功能?;旧险{(diào)試功能都會(huì)包括反匯編與內(nèi)存查看的功能,教師可以引導(dǎo)學(xué)生進(jìn)行這方面的訓(xùn)練,使他們在以后編程時(shí)能熟練應(yīng)用這個(gè)工具解決一些疑難問題,例如:內(nèi)存非法訪問,指針的非法引用等。

          4 Win32平臺下的匯編語言教學(xué)思考

          目前很多高校在匯編程序設(shè)計(jì)教學(xué)中講解的是8088/8086 CPU實(shí)模式環(huán)境,實(shí)際上是虛擬8086模式,因?yàn)檎嬲膶?shí)模式工作DOS下,而現(xiàn)在匯編語言實(shí)驗(yàn)環(huán)境都是在windows 2000以上。由于現(xiàn)在大部分CPU都是32位以上,并且是工作上保護(hù)模式之上,此外這些CPU的寄存器類型以及尋址方式都已經(jīng)發(fā)生較大變化。所以教師有必要對實(shí)模式與保護(hù)模式在邏輯地址轉(zhuǎn)化為物理地址的方式的差異,還有16位與32位的指令在用法的不同點(diǎn)進(jìn)行重點(diǎn)講解。因?yàn)閰R編語言現(xiàn)在的實(shí)際應(yīng)用基本上采用工作于保護(hù)模式的Win32平臺,在Windows操作系統(tǒng)控制下,匯編語言雖然不能再直接存取硬件,但是能通過調(diào)用系統(tǒng)提供的API函數(shù)完成各種功能。其實(shí)這里的API函數(shù)當(dāng)于DOS下的中斷調(diào)用,但是Window API函數(shù)無論從數(shù)量上、功能上還是易用性上都大大超過了DOS或BIOS的中斷調(diào)用功能。所以現(xiàn)在在Win32平臺下,匯編語言就像高級語言一樣,可以方便的開發(fā)各種Windows應(yīng)用程序。有些教師認(rèn)為,既然在實(shí)模式講解匯編語言很少涉及實(shí)用性,那就應(yīng)該直接遷移到Win32匯編平臺,講解用匯編語言開發(fā)的Windows應(yīng)用程序設(shè)計(jì)實(shí)例,從而提高學(xué)生積極性。我認(rèn)為如果采用這種教學(xué)方法,可能會(huì)存在以下問題:首先由于上課時(shí)間有限,學(xué)生需要大量的時(shí)間才能熟練掌握各類指令,匯編語言的語法,程序結(jié)構(gòu)等方面的知識。如果過多涉及Windows程序設(shè)計(jì)實(shí)例,對于不熟悉Windows編程機(jī)制的學(xué)生的來說,又多了一個(gè)不小的學(xué)習(xí)負(fù)擔(dān),這樣子反而影響了匯編語言基礎(chǔ)知識的掌握。另外,DOS下的實(shí)模式與Window下的保護(hù)模式下的編程在本質(zhì)上并無很大的區(qū)別,只要學(xué)生熟練掌握各類指令用法,理解16位與32位的指令及尋址方式的區(qū)別,邏輯地址與物理地址轉(zhuǎn)換機(jī)制等知識,他們就可以通過自主學(xué)習(xí),較容易的掌握用匯編語言進(jìn)行Win32應(yīng)用程序的開發(fā)。對于教師,除了幫學(xué)生打好匯編語言的基礎(chǔ),可以適當(dāng)以課外作業(yè)的形式,引入一些匯編語言在不同應(yīng)用領(lǐng)域的簡單實(shí)例,如加密與解密,軟件的逆向工程等,這些課外作業(yè)的完成對學(xué)生匯編語言的應(yīng)用能力的提高將會(huì)有不小的幫助。

          5 結(jié)束語

          匯編語言難教難學(xué)是教師與學(xué)生的共識,但是作為計(jì)算機(jī)科學(xué)中一門低級程序設(shè)計(jì)語言,通過對它的良好掌握,確實(shí)可以促進(jìn)對計(jì)算機(jī)軟硬件底層的了解,而這又能促進(jìn)編程能力的提高。作為教師,在教學(xué)中應(yīng)該不斷嘗新的教學(xué)方法,不斷積累經(jīng)驗(yàn),只有這樣,才能把這門課上好。

          篇2

          與其它高級語言相比,匯編語言存在指令繁多、尋址方式多樣、程序可讀性差、編程效率不高等缺點(diǎn),這使得學(xué)生對該課程的重要性認(rèn)識不足。此外,學(xué)生的學(xué)習(xí)目的相當(dāng)務(wù)實(shí),有些學(xué)生認(rèn)為即便是在計(jì)算機(jī)應(yīng)用場合,使用匯編語言的可能性也很小,所以怕苦怕難,沒有學(xué)習(xí)這門課的積極性。實(shí)際上,只有通過學(xué)習(xí)匯編語言,學(xué)生才能深入了解計(jì)算機(jī)的硬件和軟件,從朦朧的計(jì)算機(jī)世界中走出來,進(jìn)而理解編譯和解釋程序,在審視高級語言的時(shí)候,才能夠透徹地理解最根本的計(jì)算機(jī)技術(shù)[1]。所以,不了解匯編語言, 不僅會(huì)導(dǎo)致學(xué)生認(rèn)知水平降低,編程開發(fā)手段貧乏,更會(huì)導(dǎo)致學(xué)生的知識結(jié)構(gòu)失衡。

          2實(shí)驗(yàn)教學(xué)在《匯編語言程序設(shè)計(jì)》教學(xué)中的作用在培養(yǎng)人的科學(xué)思維、創(chuàng)新意識,掌握科學(xué)方法、提高綜合實(shí)踐能力方面,實(shí)踐環(huán)節(jié)有著重要的作用,是課堂理論教學(xué)無法替代的。實(shí)驗(yàn)課是進(jìn)行實(shí)踐教學(xué)的重要學(xué)習(xí)場地,學(xué)生通過對實(shí)驗(yàn)內(nèi)容的思考,對課堂上的理論知識進(jìn)行了鞏固;實(shí)驗(yàn)過程中的操作,可以發(fā)現(xiàn)理論教學(xué)的不足;實(shí)驗(yàn)過后的心得分析,為以后解決實(shí)際問題打下堅(jiān)實(shí)基礎(chǔ)。實(shí)驗(yàn)還可以將算法的實(shí)現(xiàn)和計(jì)算機(jī)的操作過程相結(jié)合,使學(xué)生體會(huì)到算法的邏輯含義是通過計(jì)算機(jī)的實(shí)際執(zhí)行過程實(shí)現(xiàn)的[2]。

          匯編語言與硬件關(guān)系密切,通過實(shí)驗(yàn)課,學(xué)生可以更好地理解cpu、寄存器、存儲器、接口及外部設(shè)備的工作原理?!秴R編語言程序設(shè)計(jì)》課程的實(shí)驗(yàn)是培養(yǎng)學(xué)生的動(dòng)手能力、增強(qiáng)學(xué)生的學(xué)習(xí)興趣、提高學(xué)生閱讀、編輯和調(diào)試程序能力的關(guān)鍵環(huán)節(jié)。

          3實(shí)驗(yàn)教學(xué)中存在的問題

          3.1教學(xué)內(nèi)容安排方面

          計(jì)算機(jī)語言課程的學(xué)習(xí)需要理論聯(lián)系實(shí)踐,實(shí)驗(yàn)課是學(xué)好計(jì)算機(jī)語言的必備條件,匯編語言的學(xué)習(xí)亦是如此,實(shí)驗(yàn)課程開始越早對學(xué)生的學(xué)習(xí)越有利?!秴R編語言程序設(shè)計(jì)》這門課程的教材安排順序一般是:基礎(chǔ)知識、計(jì)算機(jī)系統(tǒng)的組織、匯編要素、基本指令、程序設(shè)計(jì)、輸入/輸出、系統(tǒng)調(diào)用、高級匯編語言技術(shù)。實(shí)驗(yàn)教學(xué)往往是配合理論教學(xué)進(jìn)行,通常在理論課程第5~7周后,實(shí)驗(yàn)課才得以開設(shè)。這樣的教學(xué)安排效果并不理想,在實(shí)驗(yàn)課程開設(shè)的前幾周不利于學(xué)生很好地掌握學(xué)習(xí)內(nèi)容,從而對匯編語言產(chǎn)生厭學(xué)情緒。

          高等院校普遍存在對專業(yè)課程的課時(shí)進(jìn)行壓縮的現(xiàn)象,使得《匯編語言程序設(shè)計(jì)》的理論課時(shí)和實(shí)驗(yàn)課時(shí)都有不同程度的壓縮,實(shí)驗(yàn)課時(shí)的壓縮相對于理論課時(shí)更加嚴(yán)重,導(dǎo)致實(shí)驗(yàn)內(nèi)容的安排不能覆蓋該課程的重點(diǎn),而且重點(diǎn)實(shí)驗(yàn)內(nèi)容也相對淺顯,無法進(jìn)行深入研究。

          另外,有些教師圍繞課本基礎(chǔ)結(jié)構(gòu)部分的知識講授,沒有結(jié)合實(shí)際應(yīng)用進(jìn)行擴(kuò)展,對實(shí)驗(yàn)內(nèi)容的設(shè)計(jì)也比較淺顯,無法激起學(xué)生的興趣。這些行為都導(dǎo)致了學(xué)生對匯編語言的學(xué)習(xí)興趣降低甚至放棄。

          3.2學(xué)生態(tài)度不夠端正

          很多學(xué)生認(rèn)為實(shí)驗(yàn)課不重要,實(shí)驗(yàn)做得好否對最終的成績判斷沒有關(guān)聯(lián)。目前多數(shù)院校的學(xué)生學(xué)習(xí)成績判定, 以期末考試成績?yōu)橹鳎@就使得很多學(xué)生重理論、輕實(shí)驗(yàn)。另外,匯編語言不像其它高級語言那樣應(yīng)用廣泛,學(xué)生認(rèn)為其對就業(yè)幫助不大,從思想上輕視匯編語言,對《匯編語言程序設(shè)計(jì)》的實(shí)驗(yàn)課程更是不愿付出精力,甚至出現(xiàn)拷貝代碼的現(xiàn)象。

          3.3考核體系不明確

          匯編語言的實(shí)驗(yàn)教學(xué)環(huán)節(jié)沒有受到足夠的重視,導(dǎo)致沒有明確的評價(jià)體系。在進(jìn)行實(shí)驗(yàn)課時(shí),有些教師只是布置了相關(guān)的實(shí)驗(yàn)內(nèi)容,實(shí)驗(yàn)過程沒有進(jìn)行必要的監(jiān)督和輔導(dǎo),導(dǎo)致學(xué)生對實(shí)驗(yàn)教學(xué)態(tài)度怠慢,出現(xiàn)學(xué)生在實(shí)驗(yàn)課上玩游戲和課下實(shí)驗(yàn)報(bào)告抄襲的現(xiàn)象。

          4提高匯編語言實(shí)驗(yàn)教學(xué)效果的措施

          4.1合理設(shè)置實(shí)驗(yàn)內(nèi)容

          實(shí)驗(yàn)課的內(nèi)容按照由淺入深、循序漸進(jìn)的方式進(jìn)行,以啟發(fā)思維為主。對設(shè)計(jì)型、綜合型實(shí)驗(yàn)只要能達(dá)到實(shí)驗(yàn)?zāi)康?,其?shí)驗(yàn)過程和步驟可以多樣,通過實(shí)驗(yàn)課復(fù)習(xí)理論知識,引出欲

          講解的新內(nèi)容。針對學(xué)期初不安排實(shí)驗(yàn)的問題,可以嘗試開展“先實(shí)驗(yàn)后理論”的教學(xué),在實(shí)驗(yàn)中理解基礎(chǔ)理論,加大實(shí)驗(yàn)課的比例并且及早實(shí)行開展實(shí)驗(yàn)教學(xué),在整個(gè)教學(xué)過程中實(shí)行以“學(xué)生動(dòng)手為主,教師講解為輔”的教學(xué)模式[3]。

          4.2引入新的實(shí)驗(yàn)教學(xué)模式,培養(yǎng)學(xué)生學(xué)習(xí)興趣

          實(shí)驗(yàn)教學(xué)中要充分調(diào)動(dòng)學(xué)生的積極性,照顧不同層次的學(xué)生。匯編語言指令繁瑣,初始使用時(shí)比較抽象,學(xué)生對待實(shí)驗(yàn)內(nèi)容往往無從下手,所以任課教師應(yīng)該先對實(shí)驗(yàn)內(nèi)容進(jìn)行講解。起初的實(shí)驗(yàn)內(nèi)容,教師應(yīng)該進(jìn)行詳細(xì)的演示,可以先引導(dǎo)學(xué)生“臨摹”,避免學(xué)生出現(xiàn)無從下手、喪失信心等問題。后面的實(shí)驗(yàn)內(nèi)容可以進(jìn)行講解并提示實(shí)驗(yàn)方法,但不要求每個(gè)學(xué)生都按照此方法進(jìn)行實(shí)驗(yàn),鼓勵(lì)學(xué)生創(chuàng)新,并在考核中給予一定的獎(jiǎng)勵(lì)。每次實(shí)驗(yàn)內(nèi)容,任課教師都要進(jìn)行總結(jié),以解決學(xué)生在實(shí)驗(yàn)過程中的“通病”。

          《匯編語言程序設(shè)計(jì)》的實(shí)驗(yàn)一般設(shè)置16~24學(xué)時(shí),存在實(shí)驗(yàn)學(xué)時(shí)偏少的問題。為了盡可能提高實(shí)驗(yàn)效率,教師可以提前給學(xué)生布置實(shí)驗(yàn)內(nèi)容,給學(xué)生留出時(shí)間準(zhǔn)備。如果在實(shí)驗(yàn)課上臨時(shí)給出實(shí)驗(yàn)內(nèi)容,大多數(shù)學(xué)生無法按時(shí)完成實(shí)驗(yàn)?zāi)繕?biāo),會(huì)打擊學(xué)生學(xué)習(xí)的積極性。對實(shí)驗(yàn)內(nèi)容進(jìn)行準(zhǔn)備后再上機(jī)操作,大多數(shù)學(xué)生就可以在規(guī)定的時(shí)間內(nèi)完成實(shí)驗(yàn)。學(xué)生在上機(jī)的過程中獲得了成就感,樹立了信心,就會(huì)產(chǎn)生學(xué)習(xí)興趣,并主動(dòng)在課下花時(shí)間鉆研有關(guān)課程實(shí)驗(yàn)的內(nèi)容。

          為了培養(yǎng)學(xué)生的團(tuán)隊(duì)合作精神,也可以設(shè)計(jì)一些綜合應(yīng)用實(shí)驗(yàn),讓學(xué)生分組完成。每組選出一位組長,負(fù)責(zé)組織學(xué)生課下進(jìn)行實(shí)驗(yàn)內(nèi)容的預(yù)習(xí)、實(shí)驗(yàn)方案的制定和課上組員提出問題的解決方案等工作。教師在進(jìn)行實(shí)驗(yàn)考核時(shí),要對每個(gè)組的完成情況進(jìn)行總結(jié),對于完成較好的組,給予成員一定的加分,以鼓勵(lì)學(xué)生注重團(tuán)隊(duì)合作精神,培養(yǎng)學(xué)生的學(xué)習(xí)興趣。

          4.3建立嚴(yán)格的考核體系

          《匯編語言程序設(shè)計(jì)》課程一般需要16~18個(gè)教學(xué)周才能完成教學(xué)任務(wù),在這段時(shí)間內(nèi),很少有學(xué)生能對其一直保持較高的學(xué)習(xí)熱情,大部分學(xué)生都是以成績驅(qū)動(dòng)自己的學(xué)習(xí),所以需要一套嚴(yán)謹(jǐn)?shù)膶?shí)驗(yàn)考核體系,公平公正地評價(jià)學(xué)生的實(shí)驗(yàn)過程[4]。筆者學(xué)校的實(shí)驗(yàn)課程成績由學(xué)生出勤、預(yù)習(xí)、實(shí)驗(yàn)操作過程和實(shí)驗(yàn)報(bào)告4部分組成,涵蓋了學(xué)生實(shí)驗(yàn)上機(jī)的全過程。各部分的比例按10%、20%、40%、30%的權(quán)重計(jì)算實(shí)驗(yàn)總成績。除了出勤情況外,預(yù)習(xí)、實(shí)驗(yàn)操作過程和實(shí)驗(yàn)報(bào)告這3部分按等級評定,每個(gè)等級對應(yīng)的分?jǐn)?shù)為: a(90~100)、b(80~89)、c(70~79)、d(60~69)、e(50);對于前4個(gè)等級,教師可根據(jù)學(xué)生完成的情況給出該等級的加減等級。以a等級為例,a+對應(yīng)100分,a對應(yīng)95分,a-對應(yīng)90分,這樣每個(gè)等級都有對應(yīng)的分?jǐn)?shù),可以做到客觀地評價(jià)學(xué)生的實(shí)驗(yàn)過程。

          5結(jié)語

          本文根據(jù)筆者的教學(xué)實(shí)踐,分析了《匯編語言程序設(shè)計(jì)》課程的教學(xué)現(xiàn)狀,指出了實(shí)驗(yàn)教學(xué)在《匯編語言程序設(shè)計(jì)》教學(xué)過程中的重要性,并對匯編語言的實(shí)驗(yàn)教學(xué)進(jìn)行了深入的分析和思考。根據(jù)實(shí)際情況提出了幾點(diǎn)可行的措施,即合理安排實(shí)驗(yàn)內(nèi)容,引入新的實(shí)驗(yàn)教學(xué)模式和建立嚴(yán)格的考核體系,從而達(dá)到發(fā)掘?qū)W生潛能、提高實(shí)踐動(dòng)手能力、增強(qiáng)學(xué)習(xí)匯編語言興趣等目的?!秴R編語言程序設(shè)計(jì)》課程的實(shí)驗(yàn)教學(xué)還需要廣大教師積極探索,引入多種符合實(shí)際的教學(xué)方法,使匯編語言對計(jì)算機(jī)專業(yè)課程后續(xù)的學(xué)習(xí)發(fā)揮應(yīng)有的作用。

          參考文獻(xiàn)參考文獻(xiàn):

          \[1\]劉正紅.對匯編語言實(shí)驗(yàn)教學(xué)的幾點(diǎn)看法[j].信息與電腦,2012(6):198199.

          [2]木林.《匯編語言程序設(shè)計(jì)》實(shí)驗(yàn)教學(xué)的探討[j].呼倫貝爾學(xué)院學(xué)報(bào),2012 (4):9295.

          [3]張學(xué),陸慶.匯編語言實(shí)驗(yàn)教學(xué)的思考[j].教學(xué)研究,2009(15):8182.

          [4]侯宏霞.提高匯編語言課程實(shí)驗(yàn)教學(xué)質(zhì)量的幾點(diǎn)思考[j].內(nèi)蒙古農(nóng)業(yè)大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2011(13):173174.

          篇3

          匯編語言作為一種用助記符表示的面向機(jī)器的符號語言,如何認(rèn)識該課程的作用和地位,如何取得更好的教學(xué)效果?在長期從事該課程的教學(xué)過程中,筆者嘗試各種提高該課程教學(xué)質(zhì)量的探索,有些體會(huì),供大家參考。

          1 目前《匯編語言程序設(shè)計(jì)課程》的教學(xué)狀況

          匯編語言是面向機(jī)器的一種符號語言,它與機(jī)器的結(jié)構(gòu)密切相關(guān),是直接針對CPU、內(nèi)存和I/O端口編程的程序設(shè)計(jì)語言。而目前的各種高級語言和網(wǎng)絡(luò)應(yīng)用開發(fā)工具很多程序幾乎可以自動(dòng)生成。然而機(jī)器語言、匯編語言和高級語言的程序設(shè)計(jì)語言體系仍然是計(jì)算機(jī)技術(shù)的基礎(chǔ),也是計(jì)算機(jī)技術(shù)的重要知識體系之一。對于計(jì)算機(jī)及其相關(guān)專業(yè)的學(xué)生以及計(jì)算機(jī)愛好者來說,匯編語言程序設(shè)計(jì)是需要掌握的重要專業(yè)基礎(chǔ)知識之一??捎捎趨R編語言面向機(jī)器的特點(diǎn),不僅需要硬件知識的配合,而且它有大量的語法規(guī)則需要記憶,加之上機(jī)調(diào)試單調(diào)且容易出錯(cuò),導(dǎo)致了大部分同學(xué)對于《匯編語言程序設(shè)計(jì)》課程的畏難情緒,學(xué)生初學(xué)階段普遍反映該課程難學(xué),很多學(xué)生在學(xué)習(xí)過程中感覺比較難入手。

          2 教學(xué)方法探討

          2.1 合理組織課程內(nèi)容

          教學(xué)過程中為了讓學(xué)生掌握所學(xué)知識并用于程序開發(fā),在課程教學(xué)中把握教材的難點(diǎn)和重點(diǎn)尤為關(guān)鍵。

          (1)基礎(chǔ)知識的教學(xué)。

          主要包括計(jì)算機(jī)硬件和指令系統(tǒng)的教學(xué)。對計(jì)算機(jī)硬件基礎(chǔ)知識的理解和掌握程度直接影響學(xué)生對匯編語言地理解和掌握,其中包括CPU內(nèi)部的構(gòu)成、總線的作用、寄存器的設(shè)置和用途以及內(nèi)存的使用等是較難理解的部分,在實(shí)際教學(xué)中,可將相關(guān)內(nèi)容融匯在一起來進(jìn)行教學(xué)。通過應(yīng)用如:圖片和動(dòng)畫等形象化的方法將這些比較抽象的知識以較容易理解的方式展現(xiàn)出來。作為編程的指令系統(tǒng)對匯編語言程序設(shè)計(jì)而言是很重要的一部分內(nèi)容,在進(jìn)行該部分內(nèi)容教學(xué)時(shí),可以盡量通過演示程序來進(jìn)行講解,解釋各條指令的運(yùn)用方法、效果等,同時(shí)也可以適當(dāng)應(yīng)用動(dòng)畫等方式演示指令的執(zhí)行過程。

          (2)程序控制結(jié)構(gòu)的教學(xué)。

          程序控制結(jié)構(gòu)是程序設(shè)計(jì)教學(xué)中的重點(diǎn),匯編語言中的選擇結(jié)構(gòu)和循環(huán)程序結(jié)構(gòu)程序設(shè)計(jì)則是此部分的難點(diǎn)。為了使學(xué)生更好地掌握,在教學(xué)過程中,可選擇部分典型的例題,如:解決漢諾塔問題和階乘的計(jì)算等。

          2.2 教學(xué)手段上采用傳統(tǒng)教學(xué)與多媒體教學(xué)相結(jié)合

          在教學(xué)過程中我們可以有選擇地使用多媒體教學(xué),例如:用動(dòng)畫模擬匯編語言中尋址方式、子程序調(diào)用的堆棧變化過程、中斷調(diào)用過程等。運(yùn)用多媒體教學(xué),增強(qiáng)學(xué)生的直觀感,加深對問題的。在講用匯編語言指令編程序的內(nèi)容時(shí),采用傳統(tǒng)的教學(xué)方法,教會(huì)學(xué)生如何思考、推理,如何用指令實(shí)現(xiàn)算法,培養(yǎng)學(xué)生的抽象思維、邏輯推理能力。傳統(tǒng)教學(xué)方法與多媒體教學(xué)相結(jié)合,將有助于提高學(xué)生的理解能力及綜合思維能力。

          2.3 隨堂寫一些小程序增強(qiáng)記憶

          在課堂上多加練習(xí)編寫小程序段會(huì)提高學(xué)生對指令的記憶及理解掌握。經(jīng)過幾年的教學(xué)發(fā)現(xiàn),課堂上練習(xí)少了以后,很多同學(xué)往往出現(xiàn)在編寫程序時(shí)有些指令寫不出來或不會(huì)用相關(guān)指令來組織程序。在課堂上練習(xí),使學(xué)生可以增強(qiáng)記憶,對指令的使用方法有了進(jìn)一步了解,能夠運(yùn)用自如。

          2.4 注重案例教學(xué)

          案例教學(xué)法在當(dāng)前面向各個(gè)層次學(xué)生的教學(xué)過程中已得到廣泛應(yīng)用,具體是指教師需要根據(jù)課程教學(xué)目標(biāo)與內(nèi)容的要求,選擇相關(guān)典型的實(shí)例并組織學(xué)生學(xué)習(xí)、組織學(xué)生討論從而最大程度調(diào)動(dòng)學(xué)生的創(chuàng)造性思維的教學(xué)方法。其具體執(zhí)行有兩種形式。

          (1)案例講解。

          案例講解需要在理論知識講授之后進(jìn)行,通過案例講解輔助,達(dá)到加深學(xué)生理解的目標(biāo)。

          (2)案例分析法。

          案例分析方法的重點(diǎn)在于討論和分析,其主要目的是培養(yǎng)學(xué)生的創(chuàng)造性思維。案例的選擇應(yīng)注意培養(yǎng)學(xué)生理解知識,提高學(xué)生分析問題和解決問題的能力。在匯編語言程序設(shè)計(jì)的教學(xué)中綜合運(yùn)用案例講解法和分析法,能夠使學(xué)生盡快理解匯編語言程序設(shè)計(jì)的本質(zhì)特征并迅速掌握編程方法。

          2.5 注重實(shí)驗(yàn)內(nèi)容的實(shí)用性和趣味性

          把實(shí)驗(yàn)實(shí)踐環(huán)節(jié)與理論教學(xué)相融合,用實(shí)踐教學(xué)促進(jìn)學(xué)科理論知識學(xué)習(xí),激發(fā)學(xué)生學(xué)習(xí)興趣。對于任何一門計(jì)算機(jī)語言課程來說,實(shí)驗(yàn)都是教學(xué)中非常重要的一個(gè)環(huán)節(jié),實(shí)驗(yàn)可以加深對理論知識的理解,提高學(xué)生的實(shí)踐動(dòng)手能力。為了避免傳統(tǒng)的程序三大結(jié)構(gòu)、數(shù)據(jù)組織與數(shù)值計(jì)算、代碼轉(zhuǎn)換和數(shù)制轉(zhuǎn)換等方面的枯燥無味的實(shí)驗(yàn),應(yīng)將實(shí)驗(yàn)內(nèi)容和實(shí)際應(yīng)用相結(jié)合,如將匯編語言和計(jì)算機(jī)的系統(tǒng)維護(hù)等實(shí)際相聯(lián)系,用匯編語言編寫簡單的設(shè)備驅(qū)動(dòng)程序等等,增加圖形化的實(shí)驗(yàn)內(nèi)容等方法和手段,使實(shí)驗(yàn)變得實(shí)用有趣,增強(qiáng)學(xué)生動(dòng)手的積極性和提高學(xué)生的動(dòng)手能力。

          2.6 突出重點(diǎn)和難點(diǎn)

          另外,在教學(xué)過程中,加強(qiáng)傳統(tǒng)的教學(xué)方法也是重要的,如在教學(xué)過程中要突出重點(diǎn)和難點(diǎn);課堂上多做練習(xí),課后注意答疑、輔導(dǎo)。

          如:講解指令系統(tǒng)時(shí)部分指令應(yīng)結(jié)合指令編碼(即機(jī)器指令)來介紹,這樣學(xué)生更容易理解和接受。

          例如:講解轉(zhuǎn)移指令中段間轉(zhuǎn)移直接尋址和段間轉(zhuǎn)移間接尋址問題,如果只列出樣例:

          段間直接尋址:jmp far ptr target1

          段間間接尋址:jmp dword ptr addr [bx]

          學(xué)生很難理解,具體怎么實(shí)現(xiàn)跳轉(zhuǎn)。但是如果結(jié)合指令編碼來講解上述兩條轉(zhuǎn)移指令則效果會(huì)有很大改進(jìn)。

          如:

          段間轉(zhuǎn)移直接尋址指令編碼需要5個(gè)字節(jié),如圖1所示。

          也就是說,上例中Jmp far ptr target1 的target1給出的是轉(zhuǎn)移地址,即包括段地址和偏移地址。

          而段間轉(zhuǎn)移間接尋址的指令編碼是2~4字節(jié),如圖2所示。

          篇4

          中圖分類號:G642文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2011)10-2459-03

          Research on Teaching Method of Assembly Language and Programming

          HE Li-xin, WANG Kun-lun, LIU Deng-sheng, WU Xiao-qin, TU Jing

          (Key Laboratory of Net work and Intelligent Information Processing, Hefei University, Hefei 230601, China)

          Abstract: At present,it is very hard to get a satisfied effect of teaching. This paper discusses how to get a better effect on teaching of assembly language by four facets. The four facets include that interesting the students in studying the course, and declining the difficulty of the course, and improving the teaching of experiment, and that a reasonable method of assessment is established. Practice proves the efficiency of this method.

          Key words: assembly language; case methods of teaching; methods of assessment

          《匯編語言程序設(shè)計(jì)》是高等院校計(jì)算機(jī)軟、硬件及應(yīng)用專業(yè)的專業(yè)基礎(chǔ)(核心)課,它不僅是計(jì)算機(jī)原理、接口技術(shù)及操作系統(tǒng)等其它核心課程的先行課,而且對訓(xùn)練學(xué)生掌握程序設(shè)計(jì)技術(shù)、加深對計(jì)算機(jī)工作原理的理解有非常重要的作用。 在實(shí)際應(yīng)用當(dāng)中,可以使用匯編語言進(jìn)行計(jì)算機(jī)系統(tǒng)維護(hù)、操作系統(tǒng)維護(hù)、操作系統(tǒng)分析、反病毒分析,還可以直接被用于嵌入式軟件開發(fā)之中,更為重要是在與硬件直接打交道時(shí)匯編語言是唯一的選擇。因此,搞好《匯編語言程序設(shè)計(jì)》課程的教學(xué)很重要,如何搞好該課程教學(xué)值得廣大教師們探討和總結(jié)。

          1 現(xiàn)狀分析

          目前,匯編語言課程教學(xué)存在的如下問題:

          1)絕大多數(shù)同學(xué)對匯編語言課程的目的認(rèn)識不夠,且錯(cuò)誤地認(rèn)為匯編語言已經(jīng)過時(shí),沒有用,從而對這門課程的學(xué)習(xí)沒有興趣。

          絕大多數(shù)學(xué)生把匯編語言作為一門純粹的編程語言課程來對待,這是一個(gè)較大的誤區(qū),這從思想上和意識上把匯編語言放到一個(gè)普通的程序設(shè)計(jì)軟件的位置,這樣勢必難以達(dá)到較好的教學(xué)效果。而本課程的一個(gè)主要目的就是讓學(xué)生學(xué)習(xí)與認(rèn)識基本存儲控制思想、底層設(shè)備操縱方法、系統(tǒng)輸入輸出特點(diǎn)等內(nèi)容,為學(xué)生在高層應(yīng)用與底層的系統(tǒng)結(jié)構(gòu)組織與實(shí)現(xiàn)之間架設(shè)一座橋梁,使他們能夠建立一個(gè)完整的系統(tǒng)思想體系,為將來更好地應(yīng)用和發(fā)展打下一個(gè)良好的基礎(chǔ)[1]。

          另外,目前直接用匯編語言編寫軟件的情況的確不多,所以有不少學(xué)生都錯(cuò)誤地認(rèn)為在高級語言盛行的時(shí)代匯編語言已經(jīng)過時(shí)且在企業(yè)的實(shí)際應(yīng)用中沒有用途,因此對這門課程沒有興趣。

          2)匯編語言難學(xué),挫傷了學(xué)生對該課程的學(xué)習(xí)熱情。

          由于匯編語言程序設(shè)計(jì)涉及到計(jì)算機(jī)底層硬件,學(xué)習(xí)內(nèi)容枯燥,需要記憶的內(nèi)容繁多,起步比較困難,不像計(jì)算機(jī)高級語言起步容易并在現(xiàn)在的應(yīng)用程序設(shè)計(jì)中占有絕對的優(yōu)勢,相對于匯編語言,高級語言接近人類的自然語言,易學(xué)易用,很多功能用高級語言里只要一條語句就可實(shí)現(xiàn),而用匯編語言則要好幾條甚至幾十條語句才能實(shí)現(xiàn),這在很大程度上挫傷了學(xué)生對該課程的學(xué)習(xí)熱情。

          3)實(shí)驗(yàn)內(nèi)容枯燥無味,實(shí)驗(yàn)考核方法不夠好,實(shí)驗(yàn)課效果差。

          當(dāng)前絕大多數(shù)學(xué)校的實(shí)驗(yàn)與實(shí)踐環(huán)節(jié)的組織對學(xué)生學(xué)習(xí)匯編語言沒有起到太大的幫助,匯編語言實(shí)驗(yàn)內(nèi)容仍然停留在程序三大結(jié)構(gòu)、數(shù)據(jù)組織與數(shù)值計(jì)算、代碼轉(zhuǎn)換和數(shù)制轉(zhuǎn)換等方面,這會(huì)導(dǎo)致學(xué)生對本課程實(shí)驗(yàn)和實(shí)踐環(huán)節(jié)沒有興趣,不能激發(fā)學(xué)生的學(xué)習(xí)熱情。另外,很多實(shí)驗(yàn)課基本上是學(xué)生做實(shí)驗(yàn),有問題請教老師,教師指導(dǎo),實(shí)驗(yàn)課結(jié)束就意味著同學(xué)們都通過了該實(shí)驗(yàn)這種方式進(jìn)行的。很顯然這種方式對自我要求不高的學(xué)生沒有任何監(jiān)督力,實(shí)驗(yàn)課教學(xué)效果差是很自然的事情。

          4)課程考核方法不夠完善,對學(xué)習(xí)過程的考核不夠嚴(yán)謹(jǐn)。

          傳統(tǒng)的考核方法是按照期末考試占70%,平時(shí)成績占30%來計(jì)算總評成績的,有點(diǎn)甚至直接用期末考試成績代替總評成績。顯然這些方法對學(xué)習(xí)過程的表現(xiàn)考慮不夠,這就導(dǎo)致有些平時(shí)不愛學(xué)習(xí)的同學(xué),經(jīng)常采取考試之前突擊學(xué)習(xí)、押題等臨時(shí)抱佛腳的方法來應(yīng)付,這樣的學(xué)習(xí)方式有時(shí)能僥幸通過考試,但很顯然學(xué)到的知識不牢固,不全面,考過之后很快就會(huì)忘記的。

          2 問題的解決方案

          1)引領(lǐng)學(xué)生認(rèn)識匯編語言課程的重要性,結(jié)合企業(yè)對匯編語言人才的需求和實(shí)例激發(fā)學(xué)生學(xué)習(xí)匯編語言的興趣。

          人們常說“興趣是最好的老師”,事實(shí)的確如此,當(dāng)學(xué)生們對課程產(chǎn)生了興趣時(shí)他們會(huì)很主動(dòng)地去學(xué)習(xí),遇到困難會(huì)積極思考。為了激發(fā)學(xué)生的學(xué)習(xí)興趣,作者在教學(xué)中使用了如下方法:

          第一、強(qiáng)調(diào)《匯編語言》課程的重要性。《匯編語言》是高等院校計(jì)算機(jī)軟、硬件及應(yīng)用專業(yè)的專業(yè)基礎(chǔ)(核心)課,它不僅是計(jì)算機(jī)原理、接口技術(shù)及操作系統(tǒng)等其它核心課程的先行課,而且對訓(xùn)練學(xué)生掌握程序設(shè)計(jì)技術(shù)、加深對計(jì)算機(jī)工作原理的理解有非常重要的作用。同時(shí)也是我們學(xué)習(xí)高級語言的利器[2]。

          第二、介紹匯編語言在計(jì)算機(jī)系統(tǒng)維護(hù)等方面的實(shí)際應(yīng)用,并選擇有代表性的問題現(xiàn)場演示,讓學(xué)生親身體會(huì)到匯編語言的用途。雖然目前用匯編語言編寫軟件的情況的確不多。但是在實(shí)際應(yīng)用中可以使用匯編語言進(jìn)行計(jì)算機(jī)系統(tǒng)維護(hù)、操作系統(tǒng)維護(hù)、操作系統(tǒng)分析、反病毒分析,另外在一些嵌入式軟件開發(fā)中有時(shí)還需要用到匯編語言,更為重要是在與硬件直接打交道時(shí)匯編語言是唯一的選擇。

          第三、用與生活中密切相關(guān)的實(shí)例現(xiàn)場演示,激發(fā)興趣。

          演示事先準(zhǔn)備好的用匯編語言開發(fā)的與日常生活密切相關(guān)的應(yīng)用實(shí)例,如:交通燈系統(tǒng),空調(diào)單暖溫度控制器,以及銀行排隊(duì)系統(tǒng)等等。使學(xué)生親身體會(huì)到匯編語言的用途,從而徹底扭轉(zhuǎn)學(xué)生們的編語言沒有用的思想,激發(fā)學(xué)生學(xué)習(xí)匯編語言的興趣。

          第四、強(qiáng)調(diào)企業(yè)中需要懂匯編語言的人才??湛跓o憑,可以打開百度或Google的網(wǎng)頁,輸入“匯編語言 招聘”進(jìn)行搜索就會(huì)發(fā)現(xiàn)的確有不少企業(yè)在招聘懂匯編的高級人才且待遇豐厚。親眼見到上述企業(yè)的招聘廣告,學(xué)生會(huì)深刻體會(huì)到《匯編語言程序設(shè)計(jì)》決非無用課程。

          教學(xué)的實(shí)踐表明:當(dāng)學(xué)生明白了該課程的重要性和學(xué)習(xí)該課程的目的,學(xué)生們就會(huì)覺得學(xué)好該課程是很有必要的;而當(dāng)學(xué)生們親眼見到匯編語言在計(jì)算機(jī)維護(hù)等方面的實(shí)際應(yīng)用和用匯編語言開發(fā)的與生活中密切相關(guān)的應(yīng)用實(shí)例的演示時(shí),他們就會(huì)體會(huì)到匯編語言的用途,激起他們的興趣;最后當(dāng)學(xué)生們看到網(wǎng)上不少企業(yè)在招聘懂匯編的高級人才且待遇豐厚時(shí),學(xué)生們就會(huì)真正感受到匯編語言課程的魅力,激起他們更大的學(xué)習(xí)興趣。

          2)通過合理安排教學(xué)內(nèi)容和充分利用多媒體教學(xué)的優(yōu)勢等方法降低匯編語言學(xué)習(xí)的難度,提高教學(xué)效果。

          有了學(xué)習(xí)興趣固然是好事,但如果在學(xué)習(xí)過程中遇到的困難太多或太大都會(huì)挫傷學(xué)生的學(xué)習(xí)熱情。

          而要想學(xué)習(xí)好一門課程,首先要選擇一本好的教材。我們選擇教材的原則是:結(jié)構(gòu)清晰、主線特出,內(nèi)容要有一定的深度和廣度,所選例題要有代表性。根據(jù)該原則,我們選用普通高等教育“九五” 國家教委重點(diǎn)教材(沈美明,溫冬嬋 編著.《80X86匯編語言程序設(shè)計(jì)》. 北京:清華大學(xué)出版社, 2001.7)作為本課程的教材[3],該教材也得到了全國廣大匯編語言教師的認(rèn)可。經(jīng)過多年的教學(xué)以及和學(xué)生的交流中我們發(fā)現(xiàn),如果直接按照該教材的順序教學(xué)效果不是很好。為了提高教學(xué)效果,作者在教學(xué)過程中做了如下四方面的改進(jìn)。

          第一,合理調(diào)整課程內(nèi)容的先后順序,將枯燥無味、需要大量記憶的內(nèi)容分散到多個(gè)章節(jié)中講授。例如:本書第三章 80x86的指令系統(tǒng)和尋址方式,這一章的指令太多,內(nèi)容太雜,枯燥無味,要記憶的內(nèi)容多。 若將該章中的串處理指令、控制轉(zhuǎn)移指令等放到第五章的循環(huán)與分支程序設(shè)計(jì)中結(jié)合例題講解效果更好,而將與子程序相關(guān)的指令放到第六章講更合適,因?yàn)榻?jīng)過這樣調(diào)換后,不僅避免了指令集中講解時(shí)的指令太多,太枯燥,難記憶等問題,而且剛剛講到的指令很快就能在例題中得到應(yīng)用,學(xué)生對指令的理解和掌握會(huì)更加深入。第六章的dos系統(tǒng)功能調(diào)用內(nèi)容也應(yīng)該放到第五章中穿插講授,這樣提前的目的是為了讓學(xué)生在實(shí)驗(yàn)中使用dos系統(tǒng)功能調(diào)用,因?yàn)樯系降谖逭聲r(shí)就要求學(xué)生上機(jī)動(dòng)手編寫程序并用到這些知識點(diǎn)。

          第二,充分利用計(jì)算機(jī)綜合處理教學(xué)中的文字、聲音、圖象、圖形、動(dòng)畫等教學(xué)信息,進(jìn)一步優(yōu)化《匯編語言程序設(shè)計(jì)》多媒體教學(xué)課件,從而降低匯編語言的學(xué)習(xí)難度。例如:初學(xué)者對于用匯編語言編寫程序往往較難入門,可以首先對問題進(jìn)行分析,用多媒體動(dòng)畫形式畫出流程圖,并用動(dòng)畫形式將每一步流程圖與相應(yīng)的實(shí)現(xiàn)該步驟的匯編指令一一對應(yīng)起來,教學(xué)實(shí)踐表明這樣學(xué)生入門起來就要容易得多;再如:在子程序遞歸調(diào)用的講解中,堆棧中的數(shù)據(jù)變化是學(xué)習(xí)的難點(diǎn),很多學(xué)生被搞糊涂了,此時(shí)若將指令的逐條執(zhí)行與相應(yīng)的堆棧內(nèi)數(shù)據(jù)變化情況采用動(dòng)畫的形式表現(xiàn)出來,學(xué)生就很容易理解這樣難點(diǎn)內(nèi)容了。像這樣的例子還很多,由于篇幅有限,在此就不再列舉了。

          第三,抓住匯編語言的教學(xué)主線(即存儲控制思想)進(jìn)行教學(xué)。 匯編語言不像其他程序設(shè)計(jì)語言采用抽象了的數(shù)據(jù),它采儲存取控制的方式組對數(shù)據(jù)進(jìn)行組織和操作,這既是匯編語言和其他程序設(shè)計(jì)語言的不同之處,同時(shí)也是這也體現(xiàn)出匯編語言與計(jì)算機(jī)硬件和操作系統(tǒng)之間的有著緊密聯(lián)系,因此,匯編語言課程的教學(xué)主線是存儲控制,該主線貫穿于整個(gè)教學(xué)過程。牢牢把握該主線,有利于掌握匯編語言程序設(shè)計(jì)的思想精髓和更好地抓住匯編語言面向機(jī)器的特點(diǎn)。

          第四,采用案例教學(xué)法[4]進(jìn)行教學(xué)。在教學(xué)當(dāng)中,我經(jīng)常使用案例教學(xué)法,教學(xué)效果很好。案例教學(xué)法就是教師使用與教學(xué)內(nèi)容密切相關(guān)的實(shí)際案例來解決教學(xué)中的各種問題,以提高學(xué)生思考問題、分析問題和解決問題的能力,培養(yǎng)學(xué)生濃厚的學(xué)習(xí)興趣的一種教學(xué)方法。運(yùn)用這種教學(xué)方法,關(guān)鍵在于教師要準(zhǔn)備大量與教學(xué)內(nèi)容緊密相關(guān)的案例,并有計(jì)劃、有意識、靈活地運(yùn)用到教學(xué)實(shí)踐中去,以取得預(yù)期的效果和目的。

          3)增強(qiáng)實(shí)驗(yàn)內(nèi)容的實(shí)用性和趣味性,增加匯編語言與高級語言混合編程的教學(xué)內(nèi)容,建立合理可行的實(shí)驗(yàn)制度和考核方法。

          對于任何一門計(jì)算機(jī)語言課程來說,實(shí)驗(yàn)都是教學(xué)中非常重要的一個(gè)環(huán)節(jié),實(shí)驗(yàn)可以加深對理論知識的理解,提高學(xué)生的實(shí)踐動(dòng)手能力。

          為了避免傳統(tǒng)的程序三大結(jié)構(gòu)、數(shù)據(jù)組織與數(shù)值計(jì)算、代碼轉(zhuǎn)換和數(shù)制轉(zhuǎn)換等方面的枯燥無味的實(shí)驗(yàn),我們將實(shí)驗(yàn)內(nèi)容和實(shí)際應(yīng)用相結(jié)合,如將匯編語言和計(jì)算機(jī)的系統(tǒng)維護(hù)等實(shí)際相聯(lián)系,用匯編語言編寫簡單的設(shè)備驅(qū)動(dòng)程序等等,增加圖形化的實(shí)驗(yàn)內(nèi)容等方法和手段,使實(shí)驗(yàn)變得實(shí)用有趣,增強(qiáng)學(xué)生動(dòng)手的積極性和提高學(xué)生的動(dòng)手能力。

          另外,在實(shí)驗(yàn)中還要增加匯編語言與高級語言混合編程的教學(xué)內(nèi)容。高級語言在軟件開發(fā)中比匯編語言的使用要廣泛的多,但是匯編語言有它自己獨(dú)特的優(yōu)點(diǎn):占用空間小,速度快,可以與硬件直接打交道,而且與硬件直接打交道時(shí)匯編語言也是唯一的選擇。因此要使匯編語言具有更多更好的應(yīng)用性,就必須增加匯編語言與高級語言混合編程的教學(xué)內(nèi)容,以引導(dǎo)學(xué)生在今后的實(shí)際應(yīng)用程序開發(fā)中合理使用匯編語言開發(fā)出高效率的軟件。

          實(shí)驗(yàn)制度和考核方法的建立有利于進(jìn)一步提高實(shí)驗(yàn)課的學(xué)習(xí)效果,實(shí)驗(yàn)課應(yīng)使學(xué)生做到實(shí)驗(yàn)前預(yù)習(xí),實(shí)驗(yàn)后總結(jié),實(shí)驗(yàn)中逐個(gè)通過的方法。實(shí)驗(yàn)前預(yù)習(xí)是為了讓學(xué)生在實(shí)驗(yàn)前對實(shí)驗(yàn)題目進(jìn)行分析,查找相關(guān)資料,做好充分的準(zhǔn)備以便保證學(xué)生在規(guī)定時(shí)間內(nèi)完成實(shí)驗(yàn);實(shí)驗(yàn)中逐個(gè)提高的方法是對每個(gè)完成實(shí)驗(yàn)的同學(xué)進(jìn)行單獨(dú)提3至4個(gè)問題,讓其回答,只有回答正確才算該實(shí)驗(yàn)通過,這樣做的主要目的是防止作弊和查找學(xué)生薄弱點(diǎn);實(shí)驗(yàn)后總結(jié)則是總結(jié)經(jīng)驗(yàn)和不足之處,達(dá)到進(jìn)一步加深對相關(guān)知識點(diǎn)的理解和應(yīng)用。上述三個(gè)環(huán)節(jié)在實(shí)驗(yàn)考核中分別占30%、40%和30%。教學(xué)實(shí)踐表明建立實(shí)驗(yàn)制度和考核方法可以在很大程度上促進(jìn)學(xué)生學(xué)習(xí)。

          4)建立既注重期末考試結(jié)果又注重平時(shí)學(xué)習(xí)過程的課程考核方法

          每門課程學(xué)習(xí)結(jié)束都需要對學(xué)生進(jìn)行考核,有些同學(xué)平時(shí)不愛學(xué)習(xí),經(jīng)常采取考試之前突擊學(xué)習(xí)、押題等臨時(shí)抱佛腳的方法來應(yīng)付,這樣的學(xué)習(xí)方式有時(shí)能僥幸通過考試,但很顯然學(xué)到的知識不牢固,不全面,考過之后很快就會(huì)忘記的。

          為了防止這種現(xiàn)象的產(chǎn)生,在教學(xué)中采用“N+2”的考核方法,其中的“N”是教學(xué)過程中的考核次數(shù)或項(xiàng)目數(shù),“N+2”中的“2”中的“1”是期末考試,另一個(gè)“1”是課堂筆記。針對每門課程, N不小于3且不大于5,過程考核可采用的形式有:作業(yè)、平時(shí)表現(xiàn)、單元(階段)測試、期中考試、課程論文、課程實(shí)驗(yàn)、綜合性實(shí)驗(yàn)等。一般來說課堂筆記占總分比例不得超過10%,期末考試占總分比例范圍為40%~50%,實(shí)驗(yàn)占20%,其他的根據(jù)實(shí)際需要靈活選擇。在這種考核方法下,那些臨時(shí)抱佛腳的同學(xué)即便在期末考試中考了六七十分,但也會(huì)由于平時(shí)成績不理想也無法通過該課程的考核,也就是說這種考核方法既注重期末考試結(jié)果又注重平時(shí)學(xué)習(xí)過程,因此那些原本平時(shí)不愛學(xué)習(xí)的同學(xué)在這種考核制度的要求下也不得不抓緊時(shí)間學(xué)習(xí)了。實(shí)踐表明該考核方法的確行之有效,平時(shí)學(xué)習(xí)的同學(xué)越來越多了,知識的掌握程度有了明顯的提高,補(bǔ)考的人數(shù)顯著下降,有些班級甚至沒有人需要補(bǔ)考。

          3 結(jié)束語

          本文是作者將自己在教學(xué)過程中如何激發(fā)學(xué)生學(xué)習(xí)興趣,通過適當(dāng)?shù)姆椒ê褪侄谓档驼n程學(xué)習(xí)難度,重視和嚴(yán)格要求實(shí)驗(yàn)教學(xué),建立合理可行的課程教學(xué)制度和考核方法,從而達(dá)到改善教學(xué)效果的一些方法做了初步探討,作者深知要想取得更好的教學(xué)效果還需要廣大教師付出更多的努力,進(jìn)行更多的探索和廣泛的交流。

          參考文獻(xiàn):

          [1] 陳曉東.《匯編語言》教學(xué)方法探討[J].山西農(nóng)業(yè)大學(xué)學(xué)報(bào),2006,5(6):70-71.

          篇5

          1.前言

          匯編語言是我們理解整個(gè)計(jì)算機(jī)系統(tǒng)的最佳起點(diǎn)。人們往往認(rèn)為匯編語言的應(yīng)用范圍很小,因而忽視了它的重要性。其實(shí)匯編語言對學(xué)習(xí)計(jì)算機(jī)科學(xué)與技術(shù)的人是非常重要的。所有程序,不論用何種語言進(jìn)行編制,只有轉(zhuǎn)成機(jī)器指令,運(yùn)用機(jī)器的邏輯功能,功能才得以實(shí)現(xiàn)。

          匯編語言直接a描述機(jī)器指令,比機(jī)器指令更容易記憶和理解。通過學(xué)習(xí)和使用匯編語言,我們才能夠感知、體會(huì)、理解機(jī)器的邏輯功能,這樣不僅可以為理解各種軟件系統(tǒng)的原理打下技術(shù)理論基礎(chǔ),而且可以為掌握硬件系統(tǒng)的原理打下實(shí)踐應(yīng)用基礎(chǔ)。

          2.教學(xué)中存在的問題

          當(dāng)前高級語言的發(fā)展非常迅速,各種開發(fā)工具層出不窮,其功能也越來越強(qiáng)大。高級語言進(jìn)行程序設(shè)計(jì)的可操作性越來越強(qiáng),許多非計(jì)算機(jī)專業(yè)人員在不了解計(jì)算機(jī)的結(jié)構(gòu)、沒掌握計(jì)算機(jī)相關(guān)的專業(yè)理論和各種計(jì)算機(jī)語言具體編程等情況下,同樣能很好地使用高級語言。所以,高級語言的發(fā)展弱化了匯編語言的地位,這使部分高職學(xué)生覺得匯編語言已不重要了,學(xué)不好沒有多大的關(guān)系。所以,思想認(rèn)識上的不重視,導(dǎo)致了部分學(xué)生學(xué)不好這門課程。

          《匯編語言程序設(shè)計(jì)》的學(xué)習(xí)需要一定的英語知識。高職學(xué)生的英語基礎(chǔ)普遍差,據(jù)有關(guān)職業(yè)教育方面的統(tǒng)計(jì)資料顯示:在高職高專院校中60%的學(xué)生英語基礎(chǔ)差;30%的學(xué)生有一定的基礎(chǔ),但對英語學(xué)習(xí)不感興趣;10%的學(xué)生英語基礎(chǔ)較好。實(shí)際上,普通高職高專院校學(xué)生英語的基礎(chǔ)情況比統(tǒng)計(jì)的更嚴(yán)峻。這就為他們學(xué)習(xí)這一課程帶來了一定的障礙。

          針對這一系列的情況,筆者根據(jù)教學(xué)經(jīng)驗(yàn),總結(jié)了在高職院校教《匯編語言程序設(shè)計(jì)》的一些心得,希望對大家有所幫助。

          3.注重課堂教學(xué)

          3.1優(yōu)化教學(xué)內(nèi)容。

          本課程涉及內(nèi)容較多,教師應(yīng)在講課之前先對課本內(nèi)容進(jìn)行優(yōu)化。并不是課本上所羅列的內(nèi)容都需要講,教師要有選擇性講解:對學(xué)生有用的而課本上講得不全面的要補(bǔ)充講解,而對學(xué)生用處不大的可以不講或一帶而過,爭取做到“少而精”。

          3.2讓學(xué)生充分認(rèn)識到該課程的重要性,提高學(xué)生的學(xué)習(xí)的興趣。

          “興趣是最好的老師”,如何讓學(xué)生對本課程感興趣?筆者認(rèn)為關(guān)鍵是把握好開學(xué)第一堂課。在學(xué)生剛接觸本課程時(shí),教師不要急于介紹理論知識,而是要強(qiáng)調(diào)該課程的實(shí)際應(yīng)用,通過介紹匯編語言的特點(diǎn)和匯編語言在一些典型系統(tǒng)開發(fā)中的具體應(yīng)用來激發(fā)學(xué)生的學(xué)習(xí)興趣。

          目前對單片機(jī)的靈活編程已經(jīng)應(yīng)用到各個(gè)領(lǐng)域,無論是尖端科技,如軍事、通信、能源、機(jī)器人、交通、IT,還是現(xiàn)代工業(yè)、農(nóng)業(yè),如儀器儀表、汽車電子系統(tǒng)、家用電器、玩具、個(gè)人信息終端等諸多領(lǐng)域,都離不開單片機(jī)。而單片機(jī)的編程里大部分都使用了匯編語言,匯編語言的易用和靈活的特性,使得匯編語言將繼續(xù)占有獨(dú)特的地位,其適用的領(lǐng)域要求執(zhí)行效率高、反應(yīng)快,如操作系統(tǒng)內(nèi)核、工業(yè)控制、實(shí)時(shí)系統(tǒng)、家用電器的計(jì)算機(jī)控制功能等。在講述其重要性和應(yīng)用領(lǐng)域時(shí),教師應(yīng)結(jié)合一些身邊的、具體的實(shí)例,如電梯升降的控制程序和廣場的大型噴泉的控制程序均是由匯編語言編寫的,學(xué)生的興趣會(huì)被這些實(shí)例極大地調(diào)動(dòng)起來。

          3.3注重實(shí)踐環(huán)節(jié)。

          在計(jì)算機(jī)相關(guān)專業(yè)的教學(xué)領(lǐng)域,實(shí)驗(yàn)教學(xué)是培養(yǎng)學(xué)生學(xué)習(xí)能力、實(shí)踐能力、思考能力、創(chuàng)新能力的重要環(huán)節(jié)和有效途徑。學(xué)生在學(xué)習(xí)匯編語言這門課程中產(chǎn)生的困難,來自于他們對所學(xué)知識缺乏必要的感性認(rèn)識,沒有得到充分的實(shí)踐。

          計(jì)算機(jī)在很多方面不同于其他學(xué)科,尤其是與硬件有密切關(guān)系的課程。由于匯編語言課程與硬件操作有著密切關(guān)系,因此實(shí)驗(yàn)環(huán)節(jié)在整個(gè)教學(xué)活動(dòng)中占據(jù)了舉足輕重的地位。匯編語言的實(shí)驗(yàn)對培養(yǎng)學(xué)生的動(dòng)手能力和學(xué)習(xí)興趣,提高學(xué)生閱讀、編輯和調(diào)試程序的能力,有著不可替代的重要作用。學(xué)生通過實(shí)驗(yàn)?zāi)苌钊肓私釩PU、存儲器、接口及外部設(shè)備的工作特性,對數(shù)據(jù)在計(jì)算機(jī)中的表達(dá)和傳送產(chǎn)生感性認(rèn)識,在實(shí)驗(yàn)中學(xué)生能對匯編語言有更好的理解、掌握,從感性認(rèn)識上升到理論認(rèn)識。

          4.改進(jìn)教學(xué)方法

          4.1對照教學(xué)法。

          在講匯編語言時(shí),教師可以和其它語言對照講解,比如C語言。C語言作為一門基礎(chǔ)和先驅(qū)課程,在此時(shí)起到了很好的借鑒作用,由于大部分學(xué)生對C語言掌握得較好,基于語言的相通性,在匯編語言的相關(guān)教學(xué)中教師若以C語言作為對照展開講解,將會(huì)收到很好的教學(xué)效果,也能增進(jìn)各科之間的知識和方法上的聯(lián)系。下面筆者結(jié)合教學(xué)實(shí)踐,列舉一些應(yīng)用對照教學(xué)法的實(shí)例。

          MOV指令是8088指令系統(tǒng)中首要講解的一個(gè)指令,也是匯編程序設(shè)計(jì)中使用最頻繁的指令,教師應(yīng)強(qiáng)調(diào)對操作數(shù)的要求。有幾點(diǎn)我們可以用C語言來對比解釋:

          傳送過程。其傳送過程類似于C語言中的賦值,只是在這里是給寄存器或存儲單元賦值,其實(shí)C語言中的變量名本身就是一個(gè)符號地址,匯編程度的賦值最終應(yīng)對應(yīng)到存儲器的某些存儲單元。

          兩操作數(shù)的類型匹配問題。該內(nèi)容在C語言中已作了強(qiáng)調(diào),匯編中類型匹配問題也是一個(gè)重點(diǎn)。與C語言類似,匯編語言操作數(shù)的位數(shù)要保持一致,只是在8088中常用的類型為字節(jié)和字。

          強(qiáng)制類型轉(zhuǎn)換。C語言中用到了該知識,學(xué)生也已掌握,那么匯編語言中又如何實(shí)現(xiàn)呢?很自然地我們就可以引出“BYTE PTR”和“WORD PTR”這兩個(gè)操作符。

          4.2互動(dòng)式和啟發(fā)式教學(xué)。

          高職學(xué)生的課堂氣氛一般比較活躍,他們非常喜歡教師引導(dǎo)、提問,喜歡回答問題。所以教師應(yīng)利用這一特點(diǎn)在上課過程中設(shè)計(jì)一些有意義的提問,利用提問將要講的知識點(diǎn)引出來,避免平鋪直敘地講解知識點(diǎn),這樣讓學(xué)生帶著問題來學(xué)習(xí)知識點(diǎn),會(huì)起到事半功倍的作用。例如,在講解編程部分的循環(huán)結(jié)構(gòu)時(shí),筆者先舉了這樣一個(gè)例子:求1+2+3+……+100的和。學(xué)生立刻就說出結(jié)果為5050。筆者接著問:加到1000呢?這樣很多學(xué)生饒有興趣地聽講??梢?教師所選的題目要由淺入深,要能激發(fā)學(xué)生的學(xué)習(xí)興趣,要想辦法讓學(xué)生變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí)。

          課堂練習(xí)也是互動(dòng)式教學(xué)一個(gè)非常重要的方法。在講解完某一個(gè)例題后,教師可以出一道類似的習(xí)題讓學(xué)生在課上完成,請學(xué)生上講臺在黑板上寫出解題步驟并進(jìn)行講解。例如剛學(xué)習(xí)了用循環(huán)的方法求1+2+3+……+100的和,教師可以讓學(xué)生練習(xí)一道2+4+6+……+100的和。這樣可以檢驗(yàn)學(xué)生的掌握情況,找到學(xué)生理解錯(cuò)誤的地方,從而對癥下藥。就學(xué)生理解錯(cuò)誤的知識點(diǎn)再進(jìn)行講解,這樣除了可以讓學(xué)生當(dāng)堂能夠掌握所學(xué)的知識點(diǎn),還能讓其做到舉一反三。

          4.3實(shí)例教學(xué)法。

          由于本課程是一門比較抽象的課程,因此教師在課堂講授中應(yīng)該盡量用一些通俗易懂的例子進(jìn)行教學(xué)。

          例如在講解匯編中存儲器地址分段的概念時(shí),為了便于學(xué)生理解,教師可以借助平時(shí)生活的居民樓,進(jìn)行舉例。一個(gè)小區(qū)有多個(gè)居民樓,如一號樓、二號樓等,每個(gè)樓里有多個(gè)室,如101室、102室等。我們可將樓號比作段基值,每個(gè)樓里的房間比作偏移地址,很顯然一號樓的101和二號樓的101是不一樣的。這個(gè)例子可以使學(xué)生易于理解分段的概念。

          再如在講解中斷的概念時(shí)有很多例子可舉。把教師上課比作CPU正在處理的事,門外有學(xué)生打報(bào)告,教師就暫停正在處理的事情讓學(xué)生進(jìn)來,等學(xué)生進(jìn)來后接著講課。這樣學(xué)生很容易就能掌握中斷的概念。

          教師可以將難理解的知識點(diǎn)與日常生活中的小事相聯(lián)系,這樣既可以使學(xué)生學(xué)到扎實(shí)的理論知識,又不會(huì)使學(xué)生學(xué)得吃力。

          5.充分發(fā)揮多媒體教學(xué)的作用

          匯編語言指令多、變化多,相對其他可編程語言來說源程序長而復(fù)雜,一個(gè)簡單的問題解決至少要幾十行,多則上百行,教師講解例題時(shí)如果板書,就要花去大部分時(shí)間。如何解決這個(gè)問題呢?多媒體能夠提高教學(xué)效果,擴(kuò)大教學(xué)范圍,延伸教師的教育功能。教師應(yīng)在課前準(zhǔn)備講解的程序,上課時(shí)直接操作計(jì)算機(jī),一邊講解指令的格式及算法,一邊將指令使用前后的情況、程序的效果等通過投影儀展示給學(xué)生。計(jì)算機(jī)教學(xué)還可借助網(wǎng)上豐富的資源、圖文并茂的生動(dòng)界面、多姿多彩的影像資料,這些可使教學(xué)具有感受性、新穎性、可組合性、可擴(kuò)充性,使學(xué)生的思維更加具有發(fā)散性,更容易培養(yǎng)學(xué)生的創(chuàng)新思維。

          6.結(jié)語

          筆者對匯編語言課程的教學(xué)內(nèi)容和教學(xué)方法進(jìn)行了探討,這些教學(xué)方法促進(jìn)了課程的建設(shè)與發(fā)展,為學(xué)生學(xué)好后續(xù)課程打下了一個(gè)良好的基礎(chǔ)。摸索一條適合高職學(xué)生需要的、有效的教學(xué)方法,使高職學(xué)生能更好地、更快地掌握匯編語言程序設(shè)計(jì),培養(yǎng)學(xué)生的分析問題、解決問題和實(shí)際操作能力,我們在匯編語言課程教學(xué)中需要繼續(xù)探索研究的目標(biāo)。

          篇6

          1課程的現(xiàn)狀

          匯編語言不同于其它高級語言,必須要求編程人員有一定的硬件基礎(chǔ),如對CPU的結(jié)構(gòu)、CPU與存儲器等部件的數(shù)據(jù)傳送過程必須要有基本的了解,這樣才能學(xué)好這門課程。在教學(xué)過程中,我們發(fā)現(xiàn)學(xué)生對高級語言編程學(xué)習(xí)積極性高,對匯編語言課程缺乏興趣,因?yàn)檎n程本身指令復(fù)雜,規(guī)定繁多,再加上學(xué)習(xí)匯編指令前對CPU的相關(guān)工作過程理解不透,導(dǎo)致學(xué)生厭學(xué),又由于本課程面對的低年級學(xué)生只有高級語言的基礎(chǔ),習(xí)慣于高級語言的自然表達(dá),初次接觸計(jì)算機(jī)硬件知識心理上有恐懼感,更難以適應(yīng)繁雜的低級語言。

          針對本課程的特點(diǎn),對教學(xué)內(nèi)容、環(huán)節(jié)、過程等進(jìn)行了精心設(shè)計(jì),下面就教學(xué)方法的設(shè)計(jì)、實(shí)踐教學(xué)方法、課程考核形式等方面進(jìn)行的一系列改革進(jìn)行詳細(xì)探討。

          2教學(xué)方法設(shè)計(jì)改革

          為了避免學(xué)生因指令復(fù)雜,規(guī)定繁多、難度大而對該課程產(chǎn)生畏懼的學(xué)習(xí)心理,教師有必要對教學(xué)內(nèi)容進(jìn)行合理組織,對教學(xué)過程進(jìn)行精心的設(shè)計(jì)。

          2.1利用FLASH技術(shù),使教學(xué)難點(diǎn)容易理解

          在多年的教學(xué)過程中,我發(fā)現(xiàn)學(xué)生在學(xué)習(xí)CPU結(jié)構(gòu)這章節(jié)中,對介紹的CPU由哪些寄存器(名稱、大小)構(gòu)成,各個(gè)寄存器的含義,用途,CPU與存儲器等部件的數(shù)據(jù)傳送過程,會(huì)覺得很抽象,多數(shù)同學(xué)都是采用死記硬背的方式,這章節(jié)是第二章節(jié)的內(nèi)容,也是能否學(xué)好該課程關(guān)鍵的一章,如果理解不深,這無疑為后續(xù)的學(xué)習(xí),特別是尋址方式的學(xué)習(xí)埋下了隱患。

          針對這個(gè)問題,教師有必要對教學(xué)過程進(jìn)行精心的設(shè)計(jì)。

          在這章節(jié)中我們利用FLASH技術(shù),把各種尋址方式下傳送指令的CPU與存儲器等部件的數(shù)據(jù)傳送過程以動(dòng)畫形式展現(xiàn)給學(xué)生,使得復(fù)雜,抽象的過程變得直觀,學(xué)生理解比較容易,也加深了對尋址方式的記憶。

          2.2對比法教學(xué)

          目前計(jì)算機(jī)專業(yè)的課程設(shè)置中,《匯編程序語言的程序設(shè)計(jì)》課程通常是學(xué)習(xí)完C語言課程之后開始學(xué)習(xí)的。所以在教學(xué)中可以采用對比法來講解課程,對某些語法知識點(diǎn)和程序設(shè)計(jì)過程我們可以以C語言和匯編語言對應(yīng)分析。

          例如在介紹寄存器時(shí),由于在一般的c語言程序中并沒有直接使用到寄存器。因此,我們使用vC++6.0環(huán)境下的調(diào)試工具顯示一個(gè)c語言程序及其對應(yīng)的機(jī)器碼,讓學(xué)生看到編寫匯編程序寄存器的用途,加深了學(xué)生對匯編語言程序的理解。

          int m=5,n=6,c;

          004010E8 mov dword ptr [ebp-4],5

          004010EF mov dword ptr [ebp-8],6

          c=m+n;

          004010F6 mov eax,dword ptr [ebp-4]

          004010F9 add eax,dword ptr [ebp-8]

          004010FC mov dword ptr [ebp-0Ch],eax

          在介紹語法知識時(shí),比如變量的定義:

          C語言中的變量定義形式如下:

          int c1,c2=0;

          匯編語言的變量定義形式如下:

          cl DW ?

          c2 DW 0 轉(zhuǎn)貼于

          2.3抽象概念的比喻教學(xué)法

          在對段地址和偏移地址的講解過程中,可以采用比喻法,把操作數(shù)比喻成學(xué)生,把教室的房間號比喻成段地址,教室內(nèi)每個(gè)座位編個(gè)號,編號就是偏移地址,要想到教室把某個(gè)學(xué)生找到,就要找到相應(yīng)的教室號,再到對應(yīng)的座位號找到這個(gè)學(xué)生,同理,要想把主存中的操作數(shù)找到就要找到段地址和相應(yīng)的偏移地址,另外要讓學(xué)生知道每個(gè)教室里的座位號都是從0號開始編號的,也就是每個(gè)段里的偏移地址如果不特別指定,也是從0號開始編號的。

          3實(shí)踐教學(xué)改革

          3.1增強(qiáng)實(shí)驗(yàn)環(huán)節(jié),做一些實(shí)際項(xiàng)目

          程序設(shè)計(jì)對于大多數(shù)的初學(xué)者來說有一定的難度。對于給定的一個(gè)實(shí)驗(yàn)題目,許多學(xué)生往往感到無從下手。目前的上機(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é)的再好也不會(huì)應(yīng)用。

          在實(shí)驗(yàn)設(shè)計(jì)方面可以先把一些經(jīng)典的程序提供給學(xué)生,例如分支結(jié)構(gòu)的設(shè)計(jì)、循環(huán)結(jié)構(gòu)的設(shè)計(jì)等,讓學(xué)生在寫出C語言程序之后再設(shè)計(jì)匯編程序,找出兩者編程思維的區(qū)別。這樣通過一段時(shí)間的經(jīng)驗(yàn)積累,就能夠編寫比較復(fù)雜的的程序,由于上機(jī)時(shí)間有限,可以每次實(shí)驗(yàn)課之后布置一些題目供學(xué)生選擇思考,讓學(xué)生課外分組來設(shè)計(jì)這些程序,題目的類型可以是研討型的讓學(xué)生從更多的角度去思考上機(jī)實(shí)驗(yàn)過的題目,編寫出不同的程序;另一種為編程型,

          例如可以設(shè)置這2道題目,音樂小鍵盤、貪吃蛇游戲等,以加強(qiáng)同學(xué)們的編程能力的訓(xùn)練。

          3.2采用與高級語言混合編程

          目前越來越多的場合要使用匯編語言和高級語言進(jìn)行混合編程,因此在教學(xué)時(shí)應(yīng)強(qiáng)調(diào)匯編語言和C/C++的混合編程,并且這樣也可以為今后嵌入式系統(tǒng)軟件開發(fā)的學(xué)習(xí)打下堅(jiān)實(shí)的軟硬件基礎(chǔ)。

          在實(shí)驗(yàn)課中可以借助 Visual C++開發(fā)工具,采用內(nèi)聯(lián)匯編的方式,在 C/C++源程序中嵌入?yún)R編指令序列完成一定的功能,并讓學(xué)生設(shè)置斷點(diǎn)然后跟蹤執(zhí)行,同時(shí)注意觀察寄存器的內(nèi)容和變量的值。這樣可以一方面讓同學(xué)們熟練掌握兩種語言的切換使用,另一方面讓他們感受到兩種語言各有特點(diǎn)。例如可以利用匯編語言處理高級語言中不方便處理的一些問題。

          4課程考核形式改革

          因?yàn)椤皡R編語言程序設(shè)計(jì)”是實(shí)踐性很強(qiáng)的一門課程,所以實(shí)驗(yàn)課成績應(yīng)該在總成績中占有相當(dāng)大的比重。目前大多數(shù)高校的匯編語言課程的實(shí)驗(yàn)課成績只占很小的比重,即理論知識往往占課程期末考核總成績的70%~80%,這樣往往會(huì)導(dǎo)致學(xué)生不得不將大量的精力放在理論知識的學(xué)習(xí)中,結(jié)果只會(huì)造就大批的應(yīng)試高手。在教學(xué)中,我們遇到過有的學(xué)生考試試卷能考90分以上,卻連最基本的計(jì)算機(jī)操作都不能動(dòng)手。今后這門課程的考核,實(shí)驗(yàn)課成績應(yīng)該提高到占總成績的1/2。老師在實(shí)驗(yàn)中應(yīng)該營造出互動(dòng)氣氛,檢查每個(gè)學(xué)生的完成情況同時(shí)做好記錄,根據(jù)學(xué)生的實(shí)際動(dòng)手情況給出他們的平時(shí)實(shí)驗(yàn)成績,而不是只依據(jù)交上來的實(shí)驗(yàn)報(bào)告,這樣也能杜絕抄襲之風(fēng)。

          5結(jié)束語

          通過教學(xué)改革的實(shí)踐,在一定程度上提高了他們對本課程的學(xué)習(xí)積極性,又降低了學(xué)習(xí)難度。良好的教學(xué)效果是永遠(yuǎn)追求的目標(biāo),在今后的教學(xué)中,我們還需要不斷進(jìn)行探索、研究和嘗試,不斷更新觀念,發(fā)現(xiàn)自身教學(xué)過程中的問題,找到解決辦法,提高教學(xué)效果。

          參考文獻(xiàn)

          [1] 王成耀.80x86匯編語言程序設(shè)計(jì)[M].北京:人民郵電出版社,2008(第2版).

          篇7

          社會(huì)競爭日益激烈,快速變化的社會(huì)環(huán)境對人才的綜合素質(zhì)提出更高要求,強(qiáng)調(diào)適應(yīng)能力和設(shè)計(jì)應(yīng)用能力的提高。為了提升我國高等教育的水平,盡快與國際高等教育接軌,近年來國家加大了對教育科研的投入,加強(qiáng)對高等教育的管理監(jiān)督,強(qiáng)調(diào)對學(xué)生動(dòng)手能力和創(chuàng)新能力的培養(yǎng)[1]。計(jì)算機(jī)作為現(xiàn)代工作生活必不可少的工具,人們的創(chuàng)新思想和設(shè)計(jì)理念都需要借助計(jì)算機(jī)來實(shí)現(xiàn),各個(gè)專業(yè)的學(xué)生都需要具備一定的程序設(shè)計(jì)能力,因此大多數(shù)理工科專業(yè)的學(xué)生在整個(gè)本科學(xué)習(xí)過程中會(huì)選修兩門以上程序設(shè)計(jì)方面的課程。如何合理地安排課程和實(shí)驗(yàn)內(nèi)容,提高學(xué)生的程序設(shè)計(jì)能力,對培養(yǎng)高素質(zhì)的綜合人才具有重要意義。目前大學(xué)課程的改革偏重于課程內(nèi)容以及課程設(shè)置方面的改革,而對教學(xué)實(shí)施改革的力度還不夠[2]。

          1程序設(shè)計(jì)能力的培養(yǎng)

          程序設(shè)計(jì)能力的培養(yǎng),首先是培養(yǎng)學(xué)生的設(shè)計(jì)能力,如何分析問題,提出解決方案;如何表達(dá)自己的設(shè)計(jì)思想,進(jìn)而完善設(shè)計(jì)思路。設(shè)計(jì)能力的培養(yǎng)與具體的程序?qū)崿F(xiàn)沒有太大關(guān)系,然而卻是程序設(shè)計(jì)的基礎(chǔ)。因此,程序設(shè)計(jì)能力應(yīng)該由兩大部分組成:

          第一部分,也是基礎(chǔ)部分,分析問題,表達(dá)并細(xì)化解決思路的能力。這一部分與課程內(nèi)容的聯(lián)系較為松散,卻是能力培養(yǎng)的基礎(chǔ)。

          第二部分,是與課程密切相關(guān)的編程實(shí)現(xiàn)和調(diào)試程序的能力。學(xué)生用課程中所學(xué)的某種編程語言,例如匯編語言或C語言,實(shí)現(xiàn)自己的設(shè)計(jì)思想,并實(shí)際動(dòng)手上機(jī),調(diào)試運(yùn)行程序,解決具體問題。

          目前課程內(nèi)容設(shè)置以及教師的授課均偏重于第二部分,課堂上多講授具體指令的功能及應(yīng)用,大多數(shù)例題程序只有十多條,至多幾十條指令,并且教師在課堂授課時(shí)大多直接給出正確的程序,而不是向?qū)W生演示分析問題、設(shè)計(jì)流程、編寫程序、最后調(diào)試修改程序的整個(gè)程序設(shè)計(jì)過程。其結(jié)果就是,面對程序設(shè)計(jì)題目時(shí),學(xué)生大多直接開始編寫程序,而不是整理設(shè)計(jì)思路。盲目編寫的程序往往邏輯混亂,缺乏調(diào)試經(jīng)驗(yàn)的學(xué)生無法調(diào)試得到正確結(jié)果,打擊了學(xué)生學(xué)習(xí)的自信心和積極性。因此在課堂教學(xué)活動(dòng)中,應(yīng)該強(qiáng)化對學(xué)生分析設(shè)計(jì)能力的培養(yǎng),通過例題和課堂問答,詳細(xì)演示整個(gè)分析、修改,最后完成流程設(shè)計(jì)的過程,不要直接給出答案。大多情況下,引導(dǎo)學(xué)生完成的流程與例題的答案有所不同,分析兩者,改變學(xué)生始終希望有標(biāo)準(zhǔn)答案的習(xí)慣。有了流程后,引導(dǎo)學(xué)生用所學(xué)指令編寫程序,利用多媒體教學(xué)手段,向?qū)W生演示整個(gè)調(diào)試修改程序的過程,強(qiáng)調(diào)分析問題、整理設(shè)計(jì)流程的重要性,改變學(xué)生忽略流程設(shè)計(jì),直接編寫程序的“惡習(xí)”。

          基金項(xiàng)目:重慶市高等教育教學(xué)改革研究項(xiàng)目(0634170);重慶大學(xué)教學(xué)改革項(xiàng)目(教200617)。

          作者簡介:胡青(1975-),女,重慶人,講師,碩士,研究方向?yàn)槟J阶R別和智能系統(tǒng)。

          實(shí)際應(yīng)用中,人們分析解決問題時(shí),多采用從大到小,從上到下逐漸細(xì)化的方法。然而在教學(xué)過程中,學(xué)生很難接受這種方法,面對一個(gè)稍微復(fù)雜的具體問題時(shí),學(xué)生大多無從下手,不知道如何開始分析?!皡R編語言程序設(shè)計(jì)”課程在整個(gè)本科教育體系中屬于基礎(chǔ)教育,開設(shè)時(shí)間較早,大多開設(shè)于大學(xué)二年級,這也就意味著,本課程主要面向低年級的,獨(dú)立思考能力相對較差的學(xué)生。這類學(xué)生可以解決具體的小問題,對于稍微大一點(diǎn)的問題,就不知道如何進(jìn)行分析。針對這種情況,培養(yǎng)學(xué)生思維分析能力時(shí),適宜采取從小到大的方法,逐步引導(dǎo)學(xué)生適應(yīng)分析方法,示例最好選擇學(xué)生熟悉的事務(wù),如學(xué)生成績管理等。從一個(gè)具體的小功能出發(fā),如統(tǒng)計(jì)某高考學(xué)生的總分,配合課程進(jìn)度,逐步添加功能。例如學(xué)習(xí)分支結(jié)構(gòu)及相應(yīng)指令后,就可以統(tǒng)計(jì)某個(gè)學(xué)生不及格的課程門數(shù),到課程結(jié)束時(shí)可以完成一個(gè)具有基本功能的學(xué)生成績管理系統(tǒng)。最后再引導(dǎo)學(xué)生用從大到小,從上到下的方法分析設(shè)計(jì)學(xué)生成績管理系統(tǒng)的功能,使學(xué)生了解熟悉這種分析方法。

          第二部分程序設(shè)計(jì)能力的培養(yǎng),要使學(xué)生適應(yīng)計(jì)算機(jī)的“思維”方法。計(jì)算機(jī)中使用二進(jìn)制,數(shù)據(jù)的儲存、運(yùn)算、傳輸都采用二進(jìn)制。這就需要教師耐心引導(dǎo),通過大量的例子和演示,使學(xué)生能夠切換到計(jì)算機(jī)的“思維”方法,而不是繼續(xù)停留在傳統(tǒng)的紙筆方式。貫穿整個(gè)程序設(shè)計(jì)的是數(shù)據(jù)流,從哪里得到原始數(shù)據(jù),對這個(gè)數(shù)據(jù)做何種處理,結(jié)果存放到哪里。調(diào)試驗(yàn)證程序的過程就是修改待處理數(shù)據(jù),觀察數(shù)據(jù)處理的結(jié)果是否正確,修改指令直到結(jié)果正確的過程。與其他非計(jì)算機(jī)類的課程相比,“匯編語言程序設(shè)計(jì)”課程有其特殊性,程序設(shè)計(jì)是一個(gè)調(diào)試修改錯(cuò)誤,最終得到“正確”程序的過程,而其他非計(jì)算機(jī)類的大多數(shù)課程都要求一次得到正確結(jié)果,不允許出現(xiàn)錯(cuò)誤,這就導(dǎo)致學(xué)生下意識追求直接寫出“正確”程序,而不是調(diào)試程序。教材上的例題以及教師授課時(shí)都直接給出最終的程序,省略中間的調(diào)試修改過程,在一定程度上也加深了學(xué)生的這種傾向,剛接觸程序設(shè)計(jì)的學(xué)生往往有重指令、輕數(shù)據(jù)、忽略調(diào)試的傾向。因此充分利用多媒體手段,在課堂上引導(dǎo)學(xué)生動(dòng)手編程,演示調(diào)試修改過程,通過實(shí)際的例題說明觀察數(shù)據(jù),調(diào)試修改程序的方法,對培養(yǎng)學(xué)生調(diào)試修改程序的意識和能力是及其必要和有效的。

          2教學(xué)及實(shí)驗(yàn)改革的實(shí)踐

          2.1增設(shè)習(xí)題課

          “匯編程序設(shè)計(jì)”課程是實(shí)踐性很強(qiáng)的課程,都配有一定的實(shí)驗(yàn)課程,教師對實(shí)驗(yàn)課的重要性已有了足夠的認(rèn)識,然而強(qiáng)調(diào)實(shí)驗(yàn)課程對學(xué)生動(dòng)手能力的培養(yǎng)[3],在一定程度上忽略了課堂教學(xué)對學(xué)生“動(dòng)腦”能力的鍛煉。課堂教學(xué)不能局限于程序指令或語法規(guī)則的講授,固定不變的“靜態(tài)”內(nèi)容更多需要學(xué)生記憶,而不是理解和應(yīng)用。理論教學(xué)活動(dòng)以教師為主體,而習(xí)題課應(yīng)以學(xué)生為主,教師起輔助引導(dǎo)作用,習(xí)題課側(cè)重于“動(dòng)態(tài)”思維能力的培養(yǎng)。

          例如任何一本程序設(shè)計(jì)入門的教材都將程序設(shè)計(jì)分成了3種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),掌握這3種結(jié)構(gòu)的設(shè)計(jì)調(diào)試是整個(gè)程序設(shè)計(jì)的基礎(chǔ)。介紹相關(guān)指令和程序結(jié)構(gòu)后,在習(xí)題課上,通過具體的例子,引導(dǎo)學(xué)生分析問題,提出解決問題的流程,使用所學(xué)的指令和結(jié)構(gòu)編程實(shí)現(xiàn)。利用多媒體手段,演示程序的調(diào)試修改過程,設(shè)計(jì)調(diào)試數(shù)據(jù),調(diào)試學(xué)生編寫的程序,引導(dǎo)學(xué)生自己發(fā)現(xiàn)解決錯(cuò)誤,整個(gè)過程中注意與學(xué)生的互動(dòng)。多個(gè)簡單的例子組合起來就形成了一個(gè)稍微復(fù)雜的問題,通過前面分步的分析,學(xué)生對這個(gè)問題已經(jīng)熟悉了解,不會(huì)產(chǎn)生畏難情緒,之后再通過一個(gè)類似的問題,引導(dǎo)學(xué)生自行分析實(shí)現(xiàn)一個(gè)稍具規(guī)模的程序,可以有效地增強(qiáng)學(xué)生的自信心。習(xí)題課中要注意黑板與多媒體手段的結(jié)合,強(qiáng)調(diào)以學(xué)生為主體,教師引導(dǎo)提示。通過習(xí)題課使學(xué)生對如何分析設(shè)計(jì)調(diào)試程序有了直觀認(rèn)識后,再經(jīng)過實(shí)驗(yàn)環(huán)節(jié),加深學(xué)生的理解和應(yīng)用,最終達(dá)到培養(yǎng)學(xué)生能力的目的。

          2.2實(shí)驗(yàn)內(nèi)容的改革

          實(shí)驗(yàn)環(huán)節(jié)作為理論教學(xué)的補(bǔ)充,一直處于輔助地位,一般針對理論教學(xué)的章節(jié)安排設(shè)置實(shí)驗(yàn)內(nèi)容,而理論教學(xué)中各個(gè)章節(jié)的知識點(diǎn)都是相對獨(dú)立的,這就直接導(dǎo)致實(shí)驗(yàn)內(nèi)容相互間聯(lián)系松散,甚至各自獨(dú)立。根據(jù)各章節(jié)的知識點(diǎn)安排實(shí)驗(yàn)內(nèi)容,每次實(shí)驗(yàn)都只要求學(xué)生編寫一小段程序,鍛煉檢查學(xué)生對具體知識點(diǎn)的掌握,前后實(shí)驗(yàn)之間聯(lián)系較為松散,到課程結(jié)束時(shí),學(xué)生編寫過多個(gè)實(shí)驗(yàn)程序,但每個(gè)程序都只有幾十行代碼,很難將各個(gè)知識點(diǎn)融會(huì)貫通,靈活運(yùn)用,更加無法體會(huì)模塊化設(shè)計(jì)的必要性和設(shè)計(jì)思想。因此設(shè)置實(shí)驗(yàn)內(nèi)容時(shí),應(yīng)該加強(qiáng)實(shí)驗(yàn)間的聯(lián)系,每次實(shí)驗(yàn)都給出需要綜合應(yīng)用所學(xué)知識點(diǎn)的題目,隨著課程的進(jìn)展,實(shí)驗(yàn)內(nèi)容也從簡單到復(fù)雜,到課程結(jié)束時(shí),學(xué)生應(yīng)該能夠進(jìn)行一定規(guī)模的程序設(shè)計(jì)。表1列出了本課程的綜合應(yīng)用實(shí)驗(yàn)題目,共分7次實(shí)驗(yàn),每次實(shí)驗(yàn)4學(xué)時(shí),每次實(shí)驗(yàn)均布置1~2道針對該次實(shí)驗(yàn)知識點(diǎn)的一般應(yīng)用題,外加綜合應(yīng)用前面所學(xué)知識的綜合應(yīng)用題。這樣的實(shí)驗(yàn)設(shè)置可以幫助學(xué)生融會(huì)貫通所學(xué)知識,并能有效地改變學(xué)生忽略平時(shí)學(xué)習(xí),期末集中突擊的現(xiàn)象。

          表1 “匯編語言程序設(shè)計(jì)”課程綜合實(shí)驗(yàn)設(shè)置

          實(shí)驗(yàn)名稱綜合實(shí)驗(yàn)題目

          實(shí)驗(yàn)1簡單程序?qū)嶒?yàn)編程實(shí)現(xiàn)下列無符號數(shù)運(yùn)算,結(jié)果放在變量X中,X=(84÷6+5)*7-100

          實(shí)驗(yàn)2分支程序?qū)嶒?yàn)無符號字節(jié)型變量X取值范圍為[0,200],編程實(shí)現(xiàn)如下函數(shù)f(X),結(jié)果存放在變量Y中。

          f(X)= X/20≤X≤50

          (X÷6+10)*7-1050

          5*X 100

          實(shí)驗(yàn)3循環(huán)程序?qū)嶒?yàn)無符號字節(jié)型變量X取值范圍為[0,200],編程實(shí)現(xiàn)如下函數(shù)f(X),結(jié)果存放在變量Y中。

          f(X)= 0+1+2+…+X0≤X≤50

          (X÷6+10)*7-1050

          5*X 100

          實(shí)驗(yàn)4子程序?qū)嶒?yàn)編寫一個(gè)子程序?qū)崿F(xiàn)實(shí)驗(yàn)3中綜合題的函數(shù)功能

          實(shí)驗(yàn)5DOS功能調(diào)用實(shí)驗(yàn)從鍵盤輸入X的值,并將f(X)結(jié)果顯示在屏幕上

          實(shí)驗(yàn)6圖形功能實(shí)驗(yàn)在屏幕上畫出f(X)函數(shù)的圖形

          實(shí)驗(yàn)7文件輸入輸出實(shí)驗(yàn)從鍵盤輸入X的值,共輸入10次,將f(X)的結(jié)果顯示在屏幕上,并且將X和f(X)的值寫入文本文件OUT.TXT

          2.3實(shí)驗(yàn)過程管理的改革

          同理論課相比,實(shí)驗(yàn)課的管理相對要松散一些。實(shí)驗(yàn)課中學(xué)生遲到、早退、曠課、代人簽到等現(xiàn)象屢見不鮮。近年來我們加強(qiáng)了對實(shí)驗(yàn)環(huán)節(jié)的管理和監(jiān)督,規(guī)范實(shí)驗(yàn)報(bào)告的要求,要求教師批改每份報(bào)告,并給出評分等級。然而在實(shí)際執(zhí)行過程中發(fā)現(xiàn),學(xué)生抄襲報(bào)告現(xiàn)象較為嚴(yán)重,不少學(xué)生在實(shí)驗(yàn)前并沒有完成預(yù)習(xí)工作。由于批改工作量較大,一個(gè)教師要批改幾十甚至上百學(xué)生的實(shí)驗(yàn)報(bào)告,不少教師采取“粗放式”的批改辦法,實(shí)驗(yàn)報(bào)告制度在當(dāng)前情況下形式大于實(shí)效。

          計(jì)算機(jī)類課程的實(shí)驗(yàn)有其特殊性,學(xué)生更容易復(fù)制抄襲,并且教師很難在短時(shí)間內(nèi)通過閱讀報(bào)告檢查出程序的錯(cuò)誤,發(fā)現(xiàn)抄襲報(bào)告的學(xué)生,也就很難合理公平地評定出實(shí)驗(yàn)成績,這在一定程度上打擊了學(xué)生獨(dú)立完成實(shí)驗(yàn)的積極性。實(shí)驗(yàn)成績的評定既要重視實(shí)驗(yàn)結(jié)果,更要重視實(shí)驗(yàn)過程[4],只有建立相應(yīng)的管理機(jī)制杜絕抄襲現(xiàn)象,才能促使學(xué)生踏踏實(shí)實(shí)地完成平時(shí)的實(shí)驗(yàn),進(jìn)而達(dá)到鍛煉培養(yǎng)學(xué)生動(dòng)手能力的目的。每次實(shí)驗(yàn)都布置具體的實(shí)驗(yàn)任務(wù),設(shè)定截止日期,要求學(xué)生在截止日期前將自己編寫的程序通過電子郵件發(fā)送給指導(dǎo)教師。教師直接運(yùn)行程序,檢查學(xué)生實(shí)驗(yàn)的完成情況,可以有效地提高批改速度和正確率,再利用計(jì)算機(jī)軟件比較學(xué)生提交的程序,相似度達(dá)到一定程度就可判定為抄襲,對于認(rèn)定為相互抄襲的學(xué)生,該次實(shí)驗(yàn)均判定為不合格,這樣既可以減輕教師批改報(bào)告的工作量,也可以較為客觀準(zhǔn)確地評定出學(xué)生的實(shí)驗(yàn)情況,對改變當(dāng)前抄襲報(bào)告的現(xiàn)象能起到積極作用。

          通過實(shí)際的教學(xué)活動(dòng)發(fā)現(xiàn),習(xí)題課上學(xué)生注意力比較集中,大部分同學(xué)都能跟隨教師的指導(dǎo)積極參與。同以往相比,上過習(xí)題課后,實(shí)驗(yàn)課中提問的學(xué)生人數(shù)明顯增加,不少學(xué)生詢問如何調(diào)試,而不是直接請求教師幫助解決問題。采用上述措施后,抄襲實(shí)驗(yàn)報(bào)告的現(xiàn)象依然存在,但人數(shù)有所下降。說明上述改革措施,對培養(yǎng)學(xué)生綜合應(yīng)用能力和調(diào)動(dòng)學(xué)生的學(xué)習(xí)主動(dòng)性起到了積極作用。

          3結(jié)束語

          隨著計(jì)算機(jī)技術(shù)的快速發(fā)展,計(jì)算機(jī)已經(jīng)深入人們生產(chǎn)、工作、生活的各個(gè)方面,良好的計(jì)算機(jī)應(yīng)用和設(shè)計(jì)能力是高素質(zhì)人才應(yīng)該具備的基本能力。本文針對“匯編語言程序設(shè)計(jì)”課程的特點(diǎn),對該課程的教學(xué)方法、內(nèi)容和管理模式進(jìn)行了改革實(shí)踐,這些措施對提高學(xué)生程序設(shè)計(jì)能力起到了積極作用。希望課程建設(shè)經(jīng)驗(yàn)?zāi)軌驅(qū)ζ渌嗨普n程的改革起到參考借鑒作用。

          參考文獻(xiàn):

          [1] 教育部. 國家教育事業(yè)發(fā)展“十一五”規(guī)劃綱要[Z]. 2008.

          [2] 周建平. 大學(xué)課程改革的“深度”缺失與覺醒[J]. 江蘇高教,2009(1):71-73.

          [3] 李麗濱,盧宇. 高校計(jì)算機(jī)實(shí)驗(yàn)教學(xué)改革的思考與探索[J]. 遼寧教育研究,2002(9):52-53.

          [4] 劉建英. 計(jì)算機(jī)硬件開發(fā)性實(shí)驗(yàn)教學(xué)之我見[J]. 高等理科教育,2007(4):105-107.

          Reform in Teaching and Experiments of Course “Assembly Language Program Desgin”

          HU Qing, YOU Ji-yuan, SHI Xin

          篇8

          關(guān)鍵詞:匯編語言程序設(shè)計(jì);實(shí)驗(yàn)平臺;教學(xué)改革

          中圖分類號:G642

          文獻(xiàn)標(biāo)識碼:B

          1教材系列化建設(shè)

          我們以CCC2002為依據(jù),參考IEEE-CS&ACM 制定的計(jì)算機(jī)課程指南,閱讀大量的國內(nèi)外相關(guān)優(yōu)秀教材,結(jié)合課程組科研實(shí)踐成果,按照系列化建設(shè)的思路,先后編寫完成了《Intel 80x86/Pentium匯編語言程序設(shè)計(jì)》、《匯編語言程序設(shè)計(jì)(從DOS到Windows)》、《Windows匯編語言程序設(shè)計(jì)教程》、《Windows匯編語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)》等4本教材。其中1本被評為2006年北京市高等教育精品教材,1本被列為2007年“普通高等教育“十一五”國家級教材規(guī)劃”,2本作為2007年北京高等教育精品教材建設(shè)項(xiàng)目。通過編寫、使用這些教材,為教學(xué)內(nèi)容改革奠定了堅(jiān)實(shí)的基礎(chǔ)。

          2教學(xué)內(nèi)容及教學(xué)方法改革

          在教學(xué)內(nèi)容和方法上加強(qiáng)與“微機(jī)原理與接口技術(shù)”、“計(jì)算機(jī)組織與結(jié)構(gòu)”、“操作系統(tǒng)”等課程間的聯(lián)系,有利于各門課程之間的融會(huì)貫通。教學(xué)內(nèi)容體現(xiàn)課程的時(shí)代性和先進(jìn)性,以32位匯編語言及Windows編程環(huán)境的內(nèi)容為主,從16位實(shí)模式轉(zhuǎn)換到32位保護(hù)模式,結(jié)合豐富的應(yīng)用性實(shí)例,使所學(xué)知識與目前主流的應(yīng)用環(huán)境相結(jié)合,為學(xué)生的創(chuàng)新能力奠定基礎(chǔ)。

          為實(shí)現(xiàn)教學(xué)模式從“教學(xué)型”向“研究型”的轉(zhuǎn)變,需要充分研究學(xué)生的認(rèn)知過程,掌握認(rèn)知規(guī)律。根據(jù)“匯編語言程序設(shè)計(jì)”課程本身的理論抽象性和鮮明應(yīng)用性,課程組以建構(gòu)主義理論為基礎(chǔ),探索并改進(jìn)教學(xué)方法。在教學(xué)設(shè)計(jì)中體現(xiàn)以學(xué)生為中心、以教師為主導(dǎo)的思想,采用重點(diǎn)難點(diǎn)精講、對比教學(xué)、形象教學(xué)、重視實(shí)驗(yàn)等方法,用多媒體手段、典型實(shí)例來展現(xiàn)抽象的編程概念。采用現(xiàn)代化網(wǎng)絡(luò)教育技術(shù)建立了課程網(wǎng)站及網(wǎng)絡(luò)教室,加強(qiáng)師生互動(dòng),拓展了交流空間。

          例如,在多門專業(yè)課中均涉及到“中斷”概念,在匯編語言程序設(shè)計(jì)課程中以編程實(shí)例將它具體化,使學(xué)生對抽象的理論概念有了直接的認(rèn)識,從軟件和硬件兩個(gè)角度加深了對中斷機(jī)制底層的深層次理解,提高了學(xué)習(xí)興趣。

          又如學(xué)生難于理解間接尋址方式,但學(xué)生在學(xué)習(xí)本課程時(shí)已有了C語言知識,在教學(xué)中就把間接尋址方式與C語言的指針類比,通過與先前知識的銜接,經(jīng)過對比學(xué)習(xí),使學(xué)生建構(gòu)、衍生出更深層次的信息,很容易對新知識消化。對于較難理解的程序轉(zhuǎn)移地址的形成,采用動(dòng)畫方式幫助學(xué)生理解,并通過CASE結(jié)構(gòu)程序設(shè)計(jì)實(shí)踐鞏固。把宏指令與過程及高級語言的函數(shù)對比,學(xué)生很快掌握了其設(shè)計(jì)方法,他們通過主動(dòng)對知識的處理和轉(zhuǎn)化,又總結(jié)出“宏實(shí)際更像高級語言的預(yù)定義,用到它的地方都會(huì)有它一份拷貝,所以宏可能讓你的真正代碼量劇增”。

          通過精心組織教學(xué),選擇與實(shí)際應(yīng)用密切結(jié)合的教學(xué)案例,在課堂上和網(wǎng)絡(luò)支撐平臺上增加總結(jié)和討論環(huán)節(jié),鼓勵(lì)學(xué)生主動(dòng)反思,從而調(diào)整個(gè)體的認(rèn)知,幫助學(xué)生實(shí)現(xiàn)在原有認(rèn)知基礎(chǔ)上新知識的整合,在融合了多門課程知識的基礎(chǔ)上,形成系統(tǒng)的知識觀念,提高綜合應(yīng)用和創(chuàng)新能力。

          3構(gòu)建先進(jìn)的實(shí)驗(yàn)平臺

          在微機(jī)系統(tǒng)的教學(xué)和實(shí)驗(yàn)內(nèi)容上,Windows操作系統(tǒng)及32位保護(hù)模式已成為匯編語言的發(fā)展趨勢。然而,目前Windows環(huán)境下還沒有一種專門用于匯編語言的主流開發(fā)工具,而底層匯編語言編程所面向的硬件型號和接口又存在巨大差異。為此,課程組開展了改革匯編語言程序設(shè)計(jì)實(shí)驗(yàn)環(huán)境的探索,編寫了《Windows匯編語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)》教材,構(gòu)建了新型的實(shí)驗(yàn)環(huán)境,采用Microsoft Visual C/C++集成開發(fā)工具來編寫、調(diào)試匯編程序(見下圖),使匯編程序的編輯、編譯、連接、調(diào)試等過程均與C/C++程序一致,減輕了學(xué)生學(xué)習(xí)負(fù)擔(dān),提高了C/C++與匯編混合語言編程能力。應(yīng)用虛擬機(jī)軟件技術(shù),使匯編語言編程面向虛擬的、統(tǒng)一的硬件及其接口,保證了實(shí)驗(yàn)環(huán)境的統(tǒng)一性,提高了實(shí)驗(yàn)效率。

          4開設(shè)體現(xiàn)前沿性、先進(jìn)性的匯編語言實(shí)驗(yàn)

          匯編語言程序設(shè)計(jì)是一門實(shí)踐性很強(qiáng)的課程。課程組跟蹤計(jì)算機(jī)軟硬件技術(shù)的最新發(fā)展,對國內(nèi)外的相關(guān)課程教學(xué)及實(shí)踐進(jìn)行了深入的調(diào)研,結(jié)合在科研實(shí)踐中取得的部分成果,開設(shè)出一系列具有鮮明應(yīng)用特色的驗(yàn)證型、綜合型和創(chuàng)新型的層次實(shí)驗(yàn),并寫進(jìn)《Windows匯編語言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)》教材中,進(jìn)一步鞏固理論教學(xué)內(nèi)容。

          圖 VC集成環(huán)境下的匯編語言調(diào)試

          驗(yàn)證型實(shí)驗(yàn)以掌握單元知識為目標(biāo),著重訓(xùn)練基礎(chǔ)編程能力,如數(shù)據(jù)塊操作、數(shù)據(jù)顯示、字符串排序、素?cái)?shù)判斷、有序數(shù)組合并等。

          綜合型以融合本課程知識為主,如多模塊程序設(shè)計(jì)、中斷程序設(shè)計(jì)、線程同步、文件管理等。

          創(chuàng)新型以設(shè)計(jì)具有應(yīng)用背景的實(shí)驗(yàn)為主,培養(yǎng)學(xué)生對計(jì)算機(jī)知識體系的融會(huì)貫通及創(chuàng)新能力。如數(shù)據(jù)庫管理系統(tǒng)設(shè)計(jì)、全屏幕編輯器設(shè)計(jì)、緩沖區(qū)溢出實(shí)驗(yàn)、讀取硬盤序列號、硬盤DMA等。

          基于個(gè)體的差異性,學(xué)生可以按照自己的能力和興趣選做部分或全部實(shí)驗(yàn),充分發(fā)揮了學(xué)生的主觀能動(dòng)性。這種強(qiáng)調(diào)自主學(xué)習(xí)的教學(xué)過程和方法,有效地促進(jìn)了學(xué)生自我認(rèn)知的發(fā)展和新知建構(gòu)。通過實(shí)踐環(huán)節(jié),提高了學(xué)生的程序設(shè)計(jì)能力,為學(xué)習(xí)后續(xù)專業(yè)課程,設(shè)計(jì)硬件驅(qū)動(dòng)、性能優(yōu)化、代碼對抗等底層系統(tǒng)級軟件打下堅(jiān)實(shí)基礎(chǔ),培養(yǎng)了學(xué)生的創(chuàng)新能力。

          參考文獻(xiàn)

          [l] 李未. 提高教育質(zhì)量,培養(yǎng)創(chuàng)新人才[J]. 計(jì)算機(jī)教育,2008,(1).

          篇9

          中圖分類號:TP313 文獻(xiàn)標(biāo)識碼:B 文章編號:1002-2422(2008)03-0086-02

          設(shè)計(jì)的I/O子程序庫包括16位版本和32位版本,可分別應(yīng)用于16位和32位匯編語言應(yīng)用程序,提供的子程序功能包括不同數(shù)制和字符串的輸入與顯示,狀態(tài)標(biāo)志的顯示,滿足匯編語言程序設(shè)計(jì)的通常要求。

          1 設(shè)計(jì)方案

          1.1子程序功能需求

          根據(jù)在匯編語言程序設(shè)計(jì)中的通常要求,子程序所提供的功能主要包括鍵盤輸入和顯示器顯示,輸入和顯示的內(nèi)容可以是不同的數(shù)制與字符串格式。如表1所示。

          1.2子程序庫結(jié)構(gòu)

          為了方便整個(gè)子程序庫的設(shè)計(jì),設(shè)計(jì)了一些通用予程序。在實(shí)現(xiàn)提供給用戶使用的子程序時(shí),充分利用這些通用子程序,簡化了子程序的代碼編寫,減少了子程序庫的長度。主要子程序之間的關(guān)系如圖1所示。

          字符輸入和顯示子程序READC、DISPC是整個(gè)子程序庫輸入輸出的基礎(chǔ)。利用這兩個(gè)子程序?qū)崿F(xiàn)了字符串輸入和顯示子程序READMSG和DISPMSG。子程序READMSG和DISPMSG又是不同數(shù)制數(shù)據(jù)輸入和顯示的基礎(chǔ):通過調(diào)用READMSG讀入字符串,然后調(diào)用字符串轉(zhuǎn)換子程序STRTOBIN、STRTOHEX、STRTOUI和STRTOSl分別將字符串轉(zhuǎn)換為不同數(shù)制的數(shù)據(jù),從而實(shí)現(xiàn)了不同數(shù)制輸入的子程序READBIN、READHEX、READUI、READSI等;通過調(diào)用DISPMSG顯示字符串,然后調(diào)用數(shù)據(jù)轉(zhuǎn)換字符串子程序BINTOSTR、HEXTOSTR、UITOSTR和SITOSTR分別將字符串轉(zhuǎn)換為不同數(shù)制的數(shù)據(jù),從而實(shí)現(xiàn)了顯示不同數(shù)制的子程序DISPBIN、DISPHEX、DISPUI、DISPSI等。

          設(shè)計(jì)的16位和32位的子程序庫提供的子程序功能都是相同的,區(qū)別在于16位的字符輸入子程序是利用DOS系統(tǒng)調(diào)用實(shí)現(xiàn)的,而32位的字符輸入子程序是利用WIN-DOWS API函數(shù)實(shí)現(xiàn)的。其他子程序則可以通用。

          各個(gè)子程序匯編后,由庫管理工具LIB.EXE生成16位子程序庫I/O16.LIB和32位子程序庫I/O32.LIB。

          1.3參數(shù)傳遞

          匯編語言子程序的參數(shù)傳遞可以采用寄存器傳遞,共享內(nèi)存變量和堆棧傳遞三種方法。堆棧傳遞參數(shù)時(shí),可以用MASM提供的偽指令PROTO來聲明子程序,用INVOKE來調(diào)用子程序。這兩個(gè)偽指令在聲明和調(diào)用子程序時(shí)相對于CALL指令和PROC偽指令要簡潔得多。使用堆棧傳遞參數(shù)也是高級語言通常使用的子程序傳遞參數(shù)的方法,用堆棧傳遞參數(shù)的子程序可以被高級語言調(diào)用。子程序的返回參數(shù)也遵循高級語言子程序的規(guī)范,采用寄存器EAX返回子程序的出口參數(shù)。

          1.4宏命令

          篇10

          1 匯編語言程序設(shè)計(jì)教學(xué)存在的問題

          目前,匯編語言課程教學(xué)過程中存在以下問題。

          1.1 教學(xué)內(nèi)容相對陳舊,缺乏實(shí)用性

          目前,很多高校的匯編語言教學(xué)還是基于十六位機(jī),多采用清華大學(xué)出版的沈美明《ibm pc匯編語言程序設(shè)計(jì)》一書。其中,cpu內(nèi)寄存器主要是16位,內(nèi)存空間只有1mb,且只能在實(shí)模式下進(jìn)行內(nèi)存管理。而在目前的計(jì)算機(jī)技術(shù)發(fā)展環(huán)境下,內(nèi)存空間以gb計(jì)算,傳統(tǒng)的16位匯編語言教學(xué)模式明顯滯后于現(xiàn)今的主流技術(shù),學(xué)生學(xué)習(xí)時(shí)會(huì)覺得學(xué)過即淘汰,學(xué)習(xí)積極性較低[1]。

          1.2 教學(xué)方法基本上還是采用常規(guī)的灌輸式的教學(xué)方法

          課堂講授按照書本一章一節(jié)進(jìn)行,知識點(diǎn)相對零散且枯燥乏味,難以在學(xué)生腦海中建立對語言的整體認(rèn)識。特別是對于掌握了計(jì)算機(jī)基礎(chǔ)知識和計(jì)算機(jī)語言知識的學(xué)生,在講授匯編語言程序設(shè)計(jì)時(shí)仍延用常規(guī)的方法,不利于學(xué)生掌握大型匯編語言程序設(shè)計(jì)方法。

          1.3 實(shí)驗(yàn)環(huán)節(jié)重視不夠,實(shí)驗(yàn)教學(xué)方法單一

          目前的實(shí)驗(yàn)安排都是圍繞如何消化課堂內(nèi)容展開,實(shí)驗(yàn)環(huán)節(jié)相對孤立且模仿性強(qiáng),難于鍛煉學(xué)生的綜合問題解決能力;實(shí)驗(yàn)課只是布置任務(wù)讓學(xué)生自己做,較少關(guān)注創(chuàng)新思維的培養(yǎng)。

          2 教學(xué)改革措施

          針對匯編語言程序設(shè)計(jì)教學(xué)中存在的問題,從以下方面進(jìn)行了教學(xué)改革嘗試。

          2.1 更新教學(xué)內(nèi)容

          為了適應(yīng)硬件系統(tǒng)32位大環(huán)境,讓學(xué)生學(xué)有目標(biāo),需要更新匯編語言的教學(xué)內(nèi)容。在16位匯編語言基礎(chǔ)上,適當(dāng)增加32位匯編語言程序設(shè)計(jì)內(nèi)容,具體包括:編程結(jié)構(gòu)、尋址方式和指令系統(tǒng)。編程結(jié)構(gòu)是匯編語言程序設(shè)計(jì)的著陸點(diǎn)。當(dāng)前,winxp等主流操作系統(tǒng)都工作在保護(hù)模式下,在講授實(shí)模式編程結(jié)構(gòu)基礎(chǔ)上,再介紹保護(hù)模式的編程結(jié)構(gòu),學(xué)生會(huì)感覺新穎實(shí)用。其次,32位匯編語言的尋址方式類型和操作數(shù)位數(shù)都大為增加。再次,32位匯編語言的指令系統(tǒng)多達(dá)300多條指令,其源代碼的數(shù)量、速度、占用的內(nèi)存資源都有了質(zhì)的飛躍。因此,學(xué)習(xí)32位匯編,可以深入了解操作系統(tǒng)運(yùn)行細(xì)節(jié),并增加學(xué)生的學(xué)習(xí)興趣。

          2.2 案例教學(xué)法的使用

          常規(guī)灌輸式的教學(xué)方法下,教師對語法規(guī)則和指令系統(tǒng)逐個(gè)進(jìn)行講解,學(xué)生僅僅是被動(dòng)、機(jī)械和強(qiáng)制的記憶,學(xué)習(xí)后面知識點(diǎn)時(shí),容易忘記前面相關(guān)知識點(diǎn)。而使用案例教學(xué)法,通過簡單實(shí)例引出枯燥的語法規(guī)則和指令系統(tǒng),讓學(xué)生即學(xué)即用,便于知識的前后銜接和呼應(yīng)。案例教學(xué)的主要步驟包括:(1)案例設(shè)計(jì)和準(zhǔn)備;(2)章節(jié)重點(diǎn)難點(diǎn)講解;(2)學(xué)生分析案例;(4)教師分析和總結(jié)案例;(5)上機(jī)驗(yàn)證并完善案例。在不斷變化和擴(kuò)充的案例中,使學(xué)生有充分的空間思考所學(xué)內(nèi)容,也易于引出新知識點(diǎn),使得教學(xué)內(nèi)容具有連貫性,有利于學(xué)生提高自信心并系統(tǒng)理解和掌握匯編語言。

          2.3 精心安排實(shí)驗(yàn)及實(shí)驗(yàn)教學(xué)方法[2]

          匯編語言的實(shí)驗(yàn)內(nèi)容主要包括以下內(nèi)容:調(diào)試工具debug的適用、匯編語言程序設(shè)計(jì)的上機(jī)過程、基本程序結(jié)構(gòu)設(shè)計(jì)、子程序設(shè)計(jì)和中斷調(diào)用,此外還可以讓學(xué)生了解匯編語言與高級語言的連接,時(shí)間允許的情況下,還可以設(shè)計(jì)綜合實(shí)驗(yàn)。實(shí)驗(yàn)教學(xué)中,可以采取演示法、模仿法和對比法相結(jié)合的教學(xué)模式。老師借助多媒體演示工具,將實(shí)驗(yàn)步驟從頭到尾講解一遍,學(xué)生跟著操作,可以極大提高學(xué)習(xí)效率。模仿方法下,老師將一些經(jīng)典程序介紹給學(xué)生,學(xué)生在讀懂后模仿編程,一段時(shí)間積累經(jīng)驗(yàn)后,就可以編寫較復(fù)雜的程序。另外,可以將匯編語言與c語言聯(lián)系起來,對比其異同,促進(jìn)學(xué)生對兩種語言的理解。

          篇11

          中圖分類號:G642

          文獻(xiàn)標(biāo)識碼:B

          文章編號:1672-5913(2008)06-0019-03

          1教學(xué)現(xiàn)狀及存在問題

          在目前匯編語言的教學(xué)過程中,普遍存在的問題就是主流的微型計(jì)算機(jī)已經(jīng)進(jìn)入了64位時(shí)代,多任務(wù)的操作系統(tǒng)取代了DOS,而絕大多數(shù)高校匯編語言程序設(shè)計(jì)課程仍然是單任務(wù)操作系統(tǒng)(DOS)下的8086匯編語言,給學(xué)生的印象是跟不上時(shí)展的步伐。加之,匯編語言和機(jī)器的體系結(jié)構(gòu)結(jié)合緊密,使用者需要對計(jì)算機(jī)的組成、硬件的控制和指令的解釋過程有比較清晰的掌握;程序的移植性不好;指令眾多,且同種類型的操作(算術(shù)、邏輯、轉(zhuǎn)移等)要根據(jù)操作數(shù)和狀態(tài)標(biāo)志選擇不同的指令(如無符號的運(yùn)算與帶符號的運(yùn)算、條件轉(zhuǎn)移等);運(yùn)算中要根據(jù)數(shù)據(jù)長度懸而選擇不同的寄存器;程序的編譯調(diào)試比較麻煩;編寫出吸引人們感官的程序比較困難。因此,學(xué)生在匯編語言的學(xué)習(xí)中容易產(chǎn)生厭煩情緒。有的學(xué)校減少了匯編語言的課時(shí),還有的學(xué)校甚至干脆取消了這門課程。

          2“匯編語言”課程的地位

          匯編語言機(jī)器級在高層機(jī)器和低層機(jī)器間扮演了承上啟下的角色,是計(jì)算機(jī)及相關(guān)專業(yè)學(xué)生需要掌握的重要專業(yè)基礎(chǔ)知識之一。

          從應(yīng)用場合來看,匯編語言是能夠利用計(jì)算機(jī)所有硬件資源并能直接控制硬件的唯一計(jì)算機(jī)語言,也是除機(jī)器語言之外最接近計(jì)算機(jī)硬件的編程語言。匯編語言程序產(chǎn)生的代碼精簡、運(yùn)行效率高,具有高級語言不可比的“時(shí)空”優(yōu)勢;匯編語言在一些應(yīng)用如嵌入式系統(tǒng)和工業(yè)控制中,匯編語言最最佳的甚至是唯一選擇的開發(fā)語言。在一些實(shí)際的應(yīng)用系統(tǒng)中,人們往往會(huì)用匯編語言來徹底重寫某些經(jīng)常調(diào)用的過程以期獲得更高的性能。

          匯編語言為“計(jì)算機(jī)組成原理”、“計(jì)算機(jī)接口與通信”、“操作系統(tǒng)”、“高級語言程序設(shè)計(jì)”等相關(guān)課程提供了必要的基礎(chǔ)知識,如圖1所示。

          圖1 匯編語言和其它課程的關(guān)系

          從人才培養(yǎng)方面來看,計(jì)算機(jī)專業(yè)的學(xué)生不應(yīng)僅僅滿足于利用他人開發(fā)的軟件和工具來解決實(shí)際問題,還應(yīng)具備分析、研究原有軟件系統(tǒng),改進(jìn)、完善、提高原有系統(tǒng)功能的能力。匯編語言的教學(xué)將使學(xué)生受到更嚴(yán)密、更系統(tǒng)的程序設(shè)計(jì)及思維方法的訓(xùn)練,為深入分析、研究、開發(fā)軟件系統(tǒng)打下良好基礎(chǔ)。

          3加強(qiáng)實(shí)踐教學(xué)

          為了提高匯編語言教學(xué)的效果,筆者認(rèn)為應(yīng)該從以下幾個(gè)方面入手。

          (1) 清理認(rèn)識上的誤區(qū)。在上第一堂課時(shí),用一個(gè)課

          時(shí)來講匯編語言的特點(diǎn)及其應(yīng)用場合、它和高級語言區(qū)別、其難點(diǎn)在哪里、本課程該如何展開等內(nèi)容,從而打消學(xué)生畏難和輕視的思想。

          (2) 要充分利用好計(jì)算機(jī)輔助教學(xué)(CAI)的優(yōu)勢,要讓課件“動(dòng)”起來。目前普通本科計(jì)算機(jī)專業(yè)的教學(xué)大都采用了CAI教學(xué),但大都是播放課件(如PPT),實(shí)質(zhì)上是用鼠標(biāo)代替了粉筆、屏幕代替了黑板。而且由于播放的速度遠(yuǎn)快于板書,學(xué)生反映根本來不及仔細(xì)理解有關(guān)內(nèi)容,效果反而不如板書。多媒體教學(xué)提供了視覺、聲音的特殊效果,在對重點(diǎn)、難點(diǎn)問題的講授中要充分利用多媒體教學(xué)的優(yōu)勢。如講授指令A(yù)DD AX,[2000H],如果是靜態(tài)的課件,就是一句“這是一條加法指令,把累加器的內(nèi)容和邏輯地址為2000H存儲單元的內(nèi)容相加,運(yùn)算結(jié)果送回累加器”。而動(dòng)態(tài)的課件會(huì)先畫出一個(gè)模型計(jì)算機(jī),然后演示該指令解釋的全過程:從CPU內(nèi)存中取出指令、譯碼、數(shù)據(jù)尋址(從寄存器和內(nèi)存中取得操作數(shù))、啟動(dòng)ALU運(yùn)算、保存結(jié)果到累加器和影響狀態(tài)標(biāo)志寄器。每一步都要圖示化出數(shù)據(jù)的變化和走向以及相應(yīng)的控制時(shí)序。在聲音和顯示控制的程序設(shè)計(jì)教學(xué)中,更應(yīng)展示多媒體教學(xué)的風(fēng)采。多媒體教學(xué)豐富的動(dòng)感效果能極大地增加學(xué)生對指令的感性認(rèn)識,增強(qiáng)他們學(xué)習(xí)的興趣。當(dāng)然,制作這樣的課件耗時(shí)耗力,學(xué)校應(yīng)該切實(shí)加大對CAI教學(xué)的支持力度。

          (3) 在匯編語言的教學(xué)中要加強(qiáng)和高級語言的比較教學(xué)。在學(xué)習(xí)匯編語言時(shí),學(xué)生一般都具有了C語言程序設(shè)計(jì)的知識。在匯編語言程序設(shè)計(jì)的教學(xué)過程中,應(yīng)該比較這兩種語言的編程特點(diǎn)、程序代碼空間、運(yùn)行速度等,以加深學(xué)生對這兩種語言的理解。如在講授基址變址尋址方式中,可以用C語言和匯編語言分別實(shí)現(xiàn)對數(shù)組運(yùn)算的實(shí)例來闡述。要加強(qiáng)高級語言(C語言)和匯編語言的混合編程的教學(xué),充分闡述C語言結(jié)構(gòu)化設(shè)計(jì)和匯編語言對機(jī)器低層(存儲器、寄存器、中斷處理、I/O)控制的優(yōu)點(diǎn)。這樣即可充分調(diào)動(dòng)學(xué)生的學(xué)習(xí)積極性,也可以培養(yǎng)學(xué)生解決具體應(yīng)用的能力。

          (4) 加強(qiáng)操作系統(tǒng)相關(guān)知識的滲透和虛擬模式下的編程教學(xué)。目前操作系統(tǒng)的核心部分是用匯編語言來實(shí)現(xiàn)的,如對CPU本身的初始化(包括定時(shí)器、中斷、I/0端口等的初始化);系統(tǒng)引導(dǎo)啟動(dòng)程序的完成;在處理器的控制下從實(shí)模式進(jìn)入保護(hù)模式,實(shí)現(xiàn)虛擬存儲器的管理和多任務(wù)的調(diào)度。將該部分引入到教學(xué)中是有必要的,能加強(qiáng)學(xué)生對操作系統(tǒng)中內(nèi)核引導(dǎo)啟動(dòng)與駐留、保護(hù)模式和實(shí)模式的切換、多任務(wù)的調(diào)度等知識的理解。在講授操作系統(tǒng)對程序的引導(dǎo)和進(jìn)程的調(diào)用時(shí),適當(dāng)介紹計(jì)算機(jī)病毒的機(jī)理,以提高學(xué)生的學(xué)習(xí)興趣并擴(kuò)展知識面。

          (5) 要切實(shí)抓好實(shí)驗(yàn)教學(xué)環(huán)節(jié)。課堂主體教學(xué)和一般作業(yè)很難讓學(xué)生真正領(lǐng)會(huì)本課程涵蓋的概念、原理、方法和技巧等。經(jīng)驗(yàn)表明,學(xué)習(xí)并真正掌握匯編語言程序設(shè)計(jì)的最好方式是充分實(shí)踐。實(shí)驗(yàn)教學(xué)和課堂主體教學(xué)“兩手都要硬”,在課時(shí)分配上達(dá)到1:1。

          4建立實(shí)驗(yàn)教學(xué)平臺

          傳統(tǒng)的匯編語言上機(jī)實(shí)驗(yàn)一般是在DOS環(huán)境下的進(jìn)行,如圖2所示。而DOS逐步被淘汰,目前流行使用Windows操作系統(tǒng)平臺,學(xué)生對DOS的使用相對陌生。盡管Windows保留了DOS的工作方式,可以切換到DOS提示符下操作,但是對建立文件夾(目錄)、進(jìn)入文件夾(目錄)、刪除文件等操作,學(xué)生們常返回到Windows環(huán)境中來完成,顯然會(huì)影響上機(jī)的效率和增加編程的繁瑣,同時(shí)也不利于WIN32虛擬模式下的教學(xué)。

          圖2 匯編語言程序開發(fā)的傳統(tǒng)操作過程

          因此,必須建立基于Windows操作系統(tǒng)的W32匯編語言集成實(shí)驗(yàn)環(huán)境,該環(huán)境是一個(gè)集編輯、編譯、連接、程序調(diào)試和幫助于一體的實(shí)驗(yàn)平臺。筆者主持的課題組經(jīng)過系統(tǒng)的調(diào)研、編程和測試已開發(fā)出一個(gè)匯編語言集成編譯系統(tǒng),該系統(tǒng)已成功應(yīng)用到本課程的實(shí)驗(yàn)教學(xué)中,效果較好。系統(tǒng)的運(yùn)行界面如圖3所示。

          其次,要精心編寫實(shí)驗(yàn)指導(dǎo)書和安排實(shí)驗(yàn)內(nèi)容,組織好課程設(shè)計(jì)。結(jié)合目前廣泛使用的PC機(jī)的Intel 80x86指令系統(tǒng)來開展教學(xué),通過在集成環(huán)境下匯編語言的上機(jī)實(shí)訓(xùn),加深學(xué)生對指令系統(tǒng)和匯編語言程序設(shè)計(jì)的認(rèn)識和理解。實(shí)驗(yàn)的內(nèi)容可以組織如下:

          (1) 指令系統(tǒng)。用DEBUG調(diào)試工具來熟悉指令功能和尋址方式,掌握簡單程序的調(diào)試。通過實(shí)驗(yàn)了解CPU的組成,熟悉8086/8088寄存器組、8086/8088存儲器組織、8086/8088標(biāo)志位的意義。

          (2) 匯編語言程序設(shè)計(jì)。包括順序程序設(shè)計(jì)、循環(huán)程序設(shè)計(jì)、分支程序設(shè)計(jì)、子程序設(shè)計(jì)和宏匯編程序設(shè)計(jì)等實(shí)驗(yàn)。掌握各種程序結(jié)構(gòu)的設(shè)計(jì)方法,了解宏匯編、條件匯編和模塊化程序設(shè)計(jì)等匯編語言程序的概念,掌握宏匯編程序設(shè)計(jì)的基本方法。

          (3) 輸入輸出與中斷。包括輸入輸出程序設(shè)計(jì)、中斷處理程序編寫、常用系統(tǒng)中斷(如時(shí)鐘顯示、鍵盤和顯示器、使用鼠標(biāo)的程序設(shè)計(jì))控制等實(shí)驗(yàn)。

          (4) Win32匯編語言程序設(shè)計(jì)。包括32位微處理器與32位指令、保護(hù)模式下的32位匯編語言程序設(shè)計(jì)等實(shí)驗(yàn)。

          (5) 匯編語言與C/C++的混合編程。主要包括C/C++程序與匯編語言程序的連接、嵌入?yún)R編與模塊調(diào)用等。

          圖3 匯編語言集成開發(fā)環(huán)境

          參考文獻(xiàn)

          [1] 沈美明. IBM-PC匯編語言程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2001.

          [2] KIP R. IRVINE. Assembly Language for the IBM-PC[M]. Prentic Hall INC,1993.

          [3] 李學(xué)干. 計(jì)算機(jī)系統(tǒng)的體系機(jī)構(gòu)[[M]. 北京:清華大學(xué)出版社,2006.

          [4] 金海溶. 用實(shí)驗(yàn)方法改革匯編語言的教學(xué)[J]. 計(jì)算機(jī)教育,2006,(1):36-37.