- 相關(guān)推薦
匯編語言程序設(shè)計(jì)教學(xué)方法分析論文
摘要:“匯編語言程序設(shè)計(jì)”是我國高校計(jì)算機(jī)專業(yè)一門重要的專業(yè)課程,是一門軟硬件并重的課程。該課程在學(xué)習(xí)上存在著一定的難度,如何調(diào)動學(xué)生對匯編語言的學(xué)習(xí)興趣,提高學(xué)習(xí)的效果,在文章中總結(jié)一些心得體會,希望與大家共同探討。
關(guān)鍵詞:匯編語言;教學(xué)方法;實(shí)踐
“匯編語言程序設(shè)計(jì)”課程是計(jì)算機(jī)及相關(guān)專業(yè)開設(shè)的一門重要的專業(yè)課程,許多大學(xué)都開設(shè)此課程。匯編語言還是學(xué)習(xí)“編譯原理”“微機(jī)原理”“操作系統(tǒng)”等課程的前序課程。當(dāng)今,越來越廣泛地使用高級程序語言,導(dǎo)致許多學(xué)生沒有學(xué)習(xí)匯編語言的積極性和動力,因?yàn)閷W(xué)生普遍認(rèn)為學(xué)習(xí)匯編語言沒有用武之地。其實(shí),匯編語言是一種能夠充分發(fā)揮計(jì)算機(jī)硬件特性的高效語言,會經(jīng)常出現(xiàn)在一些特殊的場合,比如數(shù)據(jù)加密、解密、分析和防患病毒攻擊等。而且,學(xué)習(xí)匯編語言可以有助于學(xué)生更好地掌握計(jì)算機(jī)工作的原理,可以提高學(xué)生分析、解決實(shí)際問題的能力。匯編語言是面向機(jī)器的低級語言,是離計(jì)算機(jī)硬件最近的編程語言,具有執(zhí)行效率高的特點(diǎn)[1]。但由于匯編語言是面向機(jī)器的,必須對計(jì)算機(jī)有相當(dāng)深入的了解,才能使用匯編語言進(jìn)行程序設(shè)計(jì)。匯編語言由于指令多,有近百條指令,語法規(guī)則嚴(yán)格,同時(shí)還要熟悉硬件結(jié)構(gòu),學(xué)習(xí)過程抽象,學(xué)生普遍反映匯編語言難學(xué),難以產(chǎn)生學(xué)習(xí)興趣。如何較好地解決這些問題呢?在多年的實(shí)踐教學(xué)過程中,我們總結(jié)、實(shí)施了一些教學(xué)方法,取得了較好的效果。
1學(xué)會使用Debug調(diào)試工具
Debug調(diào)試工具是Windows操作系統(tǒng)自帶的調(diào)試工具。在Debug調(diào)試工具中,根據(jù)逐條執(zhí)行每條匯編指令,大家可以看到每條指令的執(zhí)行結(jié)果,以及對各個(gè)標(biāo)志寄存器的影響以及存儲器單元的變化,學(xué)生因此清楚了解指令下的執(zhí)行步驟和作用。學(xué)會使用Debug調(diào)試工具執(zhí)行程序段,通過依靠Debug提供的指令來查看存儲單元的變化[2]。例如,執(zhí)行以下指令后AX寄存器的內(nèi)容是什么?TABLEDW20,30,40,50,60...MOVAX,[BX]在得到答案后,我們怎么才能確定自己的答案是否正確呢?我們可以在Debug調(diào)試工具中執(zhí)行完這幾條指令,然后通過查看AX寄存器中的內(nèi)容就可以知道自己所得的答案是否正確了。問題的重點(diǎn)是在于調(diào)試工具Debug不能直接表示符號地址,那么如何表示出符號地址呢,我們可以通過替換的方式來實(shí)現(xiàn),先換為具體的存儲器的地址,等執(zhí)行完對應(yīng)的指令之后,去具體的存儲器查看數(shù)據(jù),從而判斷出答案對錯(cuò)與否。通過以上步驟,學(xué)生可以充分掌握匯編語言的直接尋址和寄存器間接尋址之間的區(qū)別以及操作數(shù)和地址之間的關(guān)系[3]。
2通過植入錯(cuò)誤,提高調(diào)試經(jīng)驗(yàn)
由于匯編語言采取英文助記符的形式,與高級語言相比可讀性較差,因此,匯編語言源程序的調(diào)試比高級語言程序調(diào)試更加困難。在調(diào)試程序的時(shí)候,雖然系統(tǒng)會給出錯(cuò)誤提示,但是由于錯(cuò)誤提示是英文提示,很多同學(xué)由于缺乏專業(yè)英語的基礎(chǔ),不明白這些提示的含義,更不知道如何處理這些錯(cuò)誤。因此,為了讓學(xué)生積累調(diào)試程序的經(jīng)驗(yàn),我們采用植入錯(cuò)誤的方法。寫一個(gè)簡單的程序,在里面設(shè)置一些典型的語法或邏輯錯(cuò)誤,讓學(xué)生對其進(jìn)行調(diào)試和修改。通過逐步引導(dǎo)學(xué)生對一些典型的錯(cuò)誤建立良好的認(rèn)知,讓學(xué)生在錯(cuò)誤中不斷積累調(diào)試經(jīng)驗(yàn),并通過成功調(diào)試而獲得成就感,從而激發(fā)學(xué)生的學(xué)習(xí)興趣[4]。
3從細(xì)節(jié)入手,不放過一個(gè)細(xì)節(jié)
例如,當(dāng)教師講授匯編語言程序設(shè)計(jì)課程中地址的概念的時(shí)候,由于匯編語言使用分段編程,每個(gè)存儲空間對應(yīng)一個(gè)20位的物理地址,用邏輯地址表示實(shí)際尋址中20位的物理地址,把它分為段地址和偏移地址。當(dāng)段地址和偏移地址形成物理地址時(shí),段地址向左移位4位,即乘以16后加上偏移地址。這導(dǎo)致兩個(gè)段彼此最接近,并且段地址僅相差一個(gè),然而實(shí)際物理地址上是相差16,也就是說,段的兩個(gè)最近段首地址之間的最小距離也是16個(gè)字節(jié)。每個(gè)段的大小應(yīng)該是16的整數(shù)倍,最小的段是16個(gè)字節(jié)。有些老師在講解這個(gè)知識點(diǎn)時(shí)都是一帶而過,沒有詳細(xì)地講述,學(xué)生在學(xué)習(xí)時(shí)會感到比較抽象,難以理解。因此,教師不能輕易放過這些細(xì)節(jié),而應(yīng)該只用1個(gè)字節(jié)定義一個(gè)數(shù)據(jù)段,然后在學(xué)生的調(diào)試命令中向?qū)W生展示該數(shù)據(jù)段實(shí)際占用的空間,學(xué)生可以明確地看到,雖然只有1個(gè)字節(jié)的數(shù)據(jù)段也要占用內(nèi)存空間的16個(gè)字節(jié)。講授內(nèi)容可以繼續(xù)引申,空間為17個(gè)字節(jié),實(shí)際占用的空間應(yīng)該為多少字節(jié)?學(xué)生應(yīng)該不難得出結(jié)論17等于16加1,額外的1字節(jié)也占用16個(gè)字節(jié)的空間。因此,該段占用的實(shí)際空間應(yīng)為16加16,即32字節(jié)。
4重視實(shí)踐,加強(qiáng)實(shí)驗(yàn)考核
要想學(xué)習(xí)好一門編程語言,盡可能多的編程實(shí)戰(zhàn)是必由之路。學(xué)習(xí)匯編語言也是這樣,作者認(rèn)為編程應(yīng)用有兩個(gè)層次,比較低的層次是在學(xué)校實(shí)驗(yàn)室中應(yīng)用的匯編語言,指的是匯編語言課程中經(jīng)典的編程項(xiàng)目和實(shí)驗(yàn)環(huán)節(jié);較高的層次是匯編語言在日常工作生活中的應(yīng)用,主要是指利用匯編語言解決實(shí)際生活中遇到的問題。匯編語言由于貼近硬件,對中斷以及外部設(shè)備的控制部分感覺很抽象,我們可以通過設(shè)置一些相關(guān)實(shí)驗(yàn),讓學(xué)生逐步對這一問題建立起較好的認(rèn)知。比如。模擬紅綠燈的實(shí)驗(yàn),先在計(jì)算機(jī)中編好匯編控制程序,然后在計(jì)算機(jī)的端口連接好8255等外部芯片,通過執(zhí)行匯編程序來控制外接燈的開關(guān)以及開關(guān)的時(shí)間,從而實(shí)現(xiàn)對紅綠燈的控制。通過設(shè)計(jì)這些實(shí)驗(yàn),學(xué)生不僅能清楚了解匯編語言對硬件的控制方式,還能產(chǎn)生學(xué)習(xí)匯編語言的濃厚興趣。再者,將“匯編語言程序設(shè)計(jì)”與“單片機(jī)”“微機(jī)原理”等課程相結(jié)合開發(fā)出綜合性、設(shè)計(jì)性實(shí)驗(yàn)也有非常好的效果。加強(qiáng)實(shí)驗(yàn)考核也是一個(gè)很有效的方法。通過學(xué)生的反饋以及多年積累的教學(xué)經(jīng)驗(yàn)來看,通過加強(qiáng)實(shí)驗(yàn)考核,對提高學(xué)生掌握好匯編語言很有效果。實(shí)踐考核考查的是比較理論和基本的內(nèi)容,通過實(shí)驗(yàn)考核使學(xué)生學(xué)會用盡可能多的方法去解決問題,開拓思路[5-6]。
5對比學(xué)習(xí),聯(lián)系記憶,歸類總結(jié)
匯編語言編程的特點(diǎn)是簡短而精確,程序的執(zhí)行效率非常高,源程序可以直接對應(yīng)于以前的機(jī)器語言,高級語言是不同的,并且在將其源程序編譯成可執(zhí)行文件之后,會生成冗余機(jī)器代碼。以最常用的“helloworld!”程序?yàn)槔肅語言和匯編語言單獨(dú)編寫,再生成可執(zhí)行文件。相比之下,學(xué)生可以清楚地了解上述特征,從而對匯編語言有直觀和感性的理解,這可以激發(fā)學(xué)生學(xué)習(xí)匯編語言的興趣。學(xué)習(xí)匯編語言時(shí),學(xué)生已經(jīng)具備了高級語言編程的良好基礎(chǔ),使用兩種語言比較方法。針對匯編語言指令多、規(guī)則多、不宜于記憶的特點(diǎn),采用聯(lián)系記憶法和歸類總結(jié)法[7-8]。例如,把幾個(gè)工作寄存器的使用方法與寄存器的英文聯(lián)系起來記憶,將具有類似功能的指令一起記憶等。通過對比學(xué)習(xí)方式和歸類總結(jié)法,可以直觀地看出匯編語言的特點(diǎn),從而幫助學(xué)生學(xué)習(xí)匯編語言課程。
6結(jié)語
總的來說,我們一直在不斷地探索和研究“匯編語言程序設(shè)計(jì)”課程的教學(xué)改革,學(xué)校也是大力支持、提供方便條件,在培養(yǎng)方案制定、教學(xué)大綱修訂上給予足夠的權(quán)限和自由。即使學(xué)生學(xué)習(xí)匯編語言有一定難度,但如果在教師講授過程中,通過改進(jìn)教學(xué)方法,調(diào)整教學(xué)內(nèi)容,提高學(xué)生的學(xué)習(xí)興趣,降低課程的學(xué)習(xí)難度、培養(yǎng)學(xué)生的編程能力、調(diào)試能力、實(shí)踐動手能力,能夠幫助學(xué)生順利渡過入門關(guān),那么學(xué)生掌握好這門編程語言就并非難事,從而提高整體教學(xué)效果,來適應(yīng)計(jì)算機(jī)技術(shù)的發(fā)展。無線互聯(lián)科技技術(shù)應(yīng)用
[參考文獻(xiàn)]
[1]沈美明,溫冬嬋.IBM-PC匯編語言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2002.
[2]王成耀.匯編語言程序設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2003.
[3]解志堅(jiān),張引瓊,陳剛.匯編語言程序設(shè)計(jì)教學(xué)方法的探討[J].電腦知識與技術(shù),2015(32):89-91.
[4]曾韻,王立新,司彬彬,等.匯編語言教學(xué)改革的思考與探索[J].計(jì)算機(jī)教育,2015(13):60-62.
[5]張曉亞,唐東成,黎鈺珍,等.匯編語言程序設(shè)計(jì)的重要性[J].電子技術(shù),2017(6):70-71.
[6]劉明,蘇靜.“匯編語言程序設(shè)計(jì)”課程教學(xué)探討[J].福建電腦,2011(11):34.
[7]龐新法.如何輕松學(xué)好匯編語言[J].價(jià)值工程,2014(19):193-194.
[8]葉劍芯,彭華林.高職院校匯編語言課程教學(xué)改革的探討[J].科技資訊,2012(3):211.
【語言程序設(shè)計(jì)教學(xué)方法分析論文】相關(guān)文章:
淺談C語言程序設(shè)計(jì)的教學(xué)方法04-29
高職《C語言程序設(shè)計(jì)》課程教學(xué)方法的實(shí)踐與探索04-29
軟件工程C語言程序設(shè)計(jì)初探的論文04-27
《程序設(shè)計(jì)課程》教學(xué)方法的探索與實(shí)踐04-29
探討VB程序設(shè)計(jì)課程的教學(xué)方法04-29
中職學(xué)校VB程序設(shè)計(jì)的教學(xué)方法探索05-01
改革地理教學(xué)方法,培養(yǎng)學(xué)生分析問題的能力論文05-01