国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

匯編語言在大學(xué)生能力培養(yǎng)中的研究與探索

2017-04-10 13:40任旭虎
關(guān)鍵詞:匯編語言電子設(shè)計(jì)C語言

陳 璨,李 林,任旭虎

談到匯編語言,可能很多人首先想到的就是它的缺點(diǎn):語句抽象、編程效率低,晦澀難懂、調(diào)試?yán)щy、不易維護(hù)[1-2];可移植性差,語法規(guī)則非常復(fù)雜、指令繁多不易記憶、學(xué)起來枯燥無味;是一門實(shí)際應(yīng)用中已被諸如C、C++、JAVA及其他可視化編程語言所取代的 “低級(jí)”語言。而對(duì)于匯編語言的優(yōu)點(diǎn)卻很少有人提及,提到的僅僅是:匯編語言實(shí)時(shí)性強(qiáng)、代碼效率高、運(yùn)行速度快、節(jié)約內(nèi)存空間[3-5]。因此,業(yè)界許多學(xué)者和 “專家”認(rèn)為學(xué)習(xí)匯編語言沒有用,從而形成了匯編語言已是“明日黃花”不再滿足現(xiàn)在編程需要的印象。

與之相應(yīng)的是隨著高等教育改革步伐的加快和受 “就業(yè)率”這個(gè)指揮棒的驅(qū)使,許多高校大大縮減匯編語言學(xué)時(shí),有的高校甚至直接取消匯編語言這門課程,將C語言作為計(jì)算機(jī)、電子、自動(dòng)化等電類專業(yè)的一門專業(yè)基礎(chǔ)課程,更有許多教師單純地強(qiáng)調(diào)C語言是一門最接近底層的語言,是一門 “硬件編程語言”。然而結(jié)合自身的成長(zhǎng)經(jīng)歷和多年的實(shí)踐教學(xué)經(jīng)驗(yàn),本文認(rèn)為此舉真是 “得不償失,毀人不倦”!匯編語言不但不能被拋棄、壓縮學(xué)時(shí),反而應(yīng)當(dāng)作為一門非常重要的專業(yè)基礎(chǔ)課程,尤其是對(duì)于電類專業(yè)的學(xué)生來說,匯編語言就像高等數(shù)學(xué)、大學(xué)英語等課程一樣重要。正因?yàn)檎J(rèn)識(shí)到匯編語言在培養(yǎng)學(xué)生實(shí)踐動(dòng)手能力和宏觀思維能力方面具有先天的優(yōu)勢(shì),本文在電子設(shè)計(jì)競(jìng)賽賽前培訓(xùn)過程中創(chuàng)造性地引入?yún)R編語言學(xué)習(xí)和訓(xùn)練,取得了一定的成績(jī)。

1 匯編語言的特點(diǎn)和優(yōu)勢(shì)

匯編語言是介于硬件和軟件之間的一門編程語言,在電類專業(yè)學(xué)生掌握專業(yè)技能、提高實(shí)踐動(dòng)手能力等方面具有明顯的優(yōu)勢(shì)[6-8],主要表現(xiàn)在以下幾個(gè)方面。

1)匯編語言向下能夠直接操作硬件。

匯編語言是一種符號(hào)化的機(jī)器語言,一條匯編指令就對(duì)應(yīng)一個(gè)機(jī)器碼,每一步執(zhí)行什么動(dòng)作都很清楚[4]。匯編語言可以直接操作處理器的內(nèi)部寄存器、各個(gè)外設(shè)、外部I/O端口以及各種外圍電路,編程者能夠徹底理解和感受到 “數(shù)字邏輯”里面的 “0”“1”和電路課程里面的電平電壓之間的對(duì)應(yīng)關(guān)系。通過匯編語言的學(xué)習(xí)使用,能夠讓學(xué)生將以前所學(xué)課程貫穿起來,建立自身的知識(shí)體系。

2)匯編語言向上可以理解軟件。

匯編語言能夠讓編程者更好地理解高級(jí)語言,尤其是高級(jí)語言中的C語言。例如匯編語言對(duì)于內(nèi)存的操作都是基于內(nèi)存地址的,而C語言的難點(diǎn)就是指針概念。指針應(yīng)用中最難以理解的就是指針這個(gè)抽象概念和實(shí)際內(nèi)存單元之間邏輯映射關(guān)系是如何建立的,而這些恰恰是在匯編語言學(xué)習(xí)中容易理解和掌握的一件事情。同樣,對(duì)于C語言中的數(shù)據(jù)類型、形參和實(shí)參、函數(shù)調(diào)用、全局變量、局部變量等概念及操作,都可以用匯編語言中的一些操作建立聯(lián)系。把這些抽象概念和過程通過匯編語言形成一個(gè)具體的映像,深度剖析,這樣才能真正地學(xué)會(huì)、學(xué)好和用好C語言。有了匯編語言的基礎(chǔ),那些面向?qū)ο蟮木幊陶Z言學(xué)習(xí)起來就更加得心應(yīng)手。

3)建立軟硬結(jié)合的編程體系、遵循循序漸進(jìn)的學(xué)習(xí)規(guī)律。

如前所述,在使用匯編語言的時(shí)候,能夠感知計(jì)算機(jī)的運(yùn)行過程和原理,從而能夠?qū)τ?jì)算機(jī)硬件和應(yīng)用程序之間的聯(lián)系形成一個(gè)清晰的認(rèn)識(shí),即向上理解軟件,向下直接操作硬件[8]。這也是最能夠鍛煉編程者編程思維邏輯的,只有這樣,學(xué)習(xí)者才能形成一個(gè)軟硬兼?zhèn)涞木幊讨R(shí)體系,這是學(xué)習(xí)任何高級(jí)語言都無法完成和實(shí)現(xiàn)的,相對(duì)于復(fù)雜的高級(jí)語言,匯編語言的指令操作更為直接,從匯編開始學(xué)習(xí)計(jì)算機(jī)相關(guān)知識(shí)更符合循序漸進(jìn)的學(xué)習(xí)規(guī)律。因此,對(duì)于電類專業(yè)的學(xué)生,學(xué)習(xí)和掌握匯編語言是非常重要的。

2 匯編語言在學(xué)生能力培養(yǎng)方面的探索

用匯編語言編寫實(shí)際應(yīng)用程序,需要編程者徹底掌握以下5個(gè)方面內(nèi)容:1)系統(tǒng)的硬件資源;2)軟件的功能需求;3)實(shí)現(xiàn)軟件功能所需要的子程序模塊;4)軟件的執(zhí)行流程 (例如,系統(tǒng)啟動(dòng)后第一步干啥、第二步干什么……;系統(tǒng)會(huì)在什么時(shí)候產(chǎn)生中斷,中斷服務(wù)程序應(yīng)該做些什么工作……);5)程序的執(zhí)行效率。經(jīng)過以上5個(gè)方面的鍛煉,編程者的宏觀思維能力會(huì)在無形中得以提升,這些是其他高級(jí)語言所不具備的。本文認(rèn)為用匯編語言編寫過大的應(yīng)用程序的人做任何事情都會(huì)顯得思路清晰、條理分明[9-10]。在此列舉兩個(gè)在教學(xué)中發(fā)現(xiàn)的比較典型的例子。

1)2012年山東省大學(xué)生電子設(shè)計(jì)競(jìng)賽,其中測(cè)量電參數(shù)的題目需要用到FFT運(yùn)算,某團(tuán)隊(duì)的學(xué)生采用了C8051F120單片機(jī)作為控制核心,并用C51語言編寫控制程序。學(xué)生在程序里開辟了4個(gè)2 KB的int型數(shù)組作為FFT運(yùn)算處理的緩存,程序編寫完通過keil環(huán)境編譯后沒有發(fā)現(xiàn)任何語法錯(cuò)誤,但實(shí)際運(yùn)行時(shí)程序就 “跑飛”,就這個(gè)錯(cuò)誤該隊(duì)學(xué)生整整調(diào)試了一天卻找不出任何問題,從而放棄了最終比賽。用過這款單片機(jī)的都知道C8051F120單片的RAM空間只有8 448 Byte,而該隊(duì)學(xué)生僅用于FFT運(yùn)算的緩存就有4×2 K×2=16 KB。如果有過匯編語言的編程經(jīng)驗(yàn),在最初做方案時(shí)把這些底層的硬件資源和軟件需求一并考慮進(jìn)去,適當(dāng)?shù)匕丫彺婵臻g改小,問題就可迎刃而解。

2)2013年全國(guó)大學(xué)生電子設(shè)計(jì)競(jìng)賽賽前培訓(xùn)期間,指導(dǎo)老師要求學(xué)生用單片機(jī)測(cè)量一個(gè)直流電壓,并通過液晶顯示器把測(cè)量結(jié)果顯示出來,同時(shí)指導(dǎo)老師給出了AD和液晶顯示器的程序例程。某團(tuán)隊(duì)學(xué)生在搭建好硬件電路后,分別利用指導(dǎo)老師給的例程進(jìn)行測(cè)試,AD和液晶顯示器工作正常;但將兩個(gè)例程整合到一起后,調(diào)試不成功,要么只有AD工作,要么是液晶顯示器上顯示亂碼。后來發(fā)現(xiàn)學(xué)生將指導(dǎo)老師的兩個(gè)例程都導(dǎo)進(jìn)了自己新建立的工程里面,把原來例程的主函數(shù) (main函數(shù))分別改為 “main1” 和 “main2”并在自己的主函數(shù)里面調(diào)用main1和main2。用匯編語言編寫過單片機(jī)應(yīng)用程序的人都很清楚單片機(jī)主程序其實(shí)是在不停地循環(huán)執(zhí)行,上述改動(dòng)后其實(shí)就只有一個(gè)函數(shù)一直在循環(huán)執(zhí)行。如果學(xué)生有匯編語言設(shè)計(jì)基礎(chǔ),就不容易犯這樣的低級(jí)錯(cuò)誤[11-12]。

基于此,在2014年山東省大學(xué)生電子設(shè)計(jì)競(jìng)賽賽前培訓(xùn)的單片機(jī)訓(xùn)練部分,本文改變了以往一開始就讓學(xué)生利用C51開發(fā)C8051F120單片機(jī)程序的培訓(xùn)方法,改為先由指導(dǎo)教師集中講解MCS51單片機(jī)結(jié)構(gòu)和指令集 (只講知識(shí)點(diǎn));然后讓學(xué)生利用兩周的時(shí)間去熟悉各條指令,并用匯編語言編寫并調(diào)試了數(shù)碼管動(dòng)態(tài)顯示、直流電壓信號(hào)采集、矩陣鍵盤掃描并利用串口傳輸鍵碼、方波信號(hào)頻率測(cè)量等幾個(gè)功能相對(duì)復(fù)雜的程序;最后再由指導(dǎo)教師講解C8051F120單片機(jī)和C51程序開發(fā)。經(jīng)過一個(gè)暑假的訓(xùn)練,指導(dǎo)教師反映效果良好,學(xué)生有了匯編語言和原有計(jì)算機(jī)C語言基礎(chǔ)后,C51入門較快,對(duì)C8051F120單片機(jī)內(nèi)部資源了解清楚,編寫的程序思路清晰。在接近培訓(xùn)尾聲的實(shí)戰(zhàn)訓(xùn)練中,學(xué)生對(duì)題目的理解程度、軟硬件設(shè)計(jì)方案及題目的完成度明顯高于往年。同時(shí)在2014年山東省大學(xué)生電子設(shè)計(jì)競(jìng)賽中中國(guó)石油大學(xué) (華東)學(xué)生的獲獎(jiǎng)級(jí)別、獲獎(jiǎng)率明顯高于往年,學(xué)校的參賽質(zhì)量名列山東省大學(xué)生電子設(shè)計(jì)競(jìng)賽的前茅。

3 對(duì)匯編語言的重新認(rèn)識(shí)和定位

經(jīng)過前面的論述,可知匯編語言在培養(yǎng)學(xué)生實(shí)踐動(dòng)手能力、邏輯思維能力、宏觀思維能力以及其他方面的能力都具有十分重要的作用,因此有必要重新認(rèn)識(shí)匯編語言并給予準(zhǔn)確定位[13-16]。

1)匯編語言在電類專業(yè)中的基礎(chǔ)地位不可輕易動(dòng)搖。

匯編語言是培養(yǎng)學(xué)生理解硬件資源的語言,是學(xué)習(xí)和理解其他高級(jí)程序設(shè)計(jì)語言的基礎(chǔ),是計(jì)算機(jī)組成原理、接口與通信技術(shù)、計(jì)算機(jī)控制技術(shù)和數(shù)據(jù)采集等許多專業(yè)課的前導(dǎo)課程,是必要的基礎(chǔ)知識(shí),起著承上啟下的作用。匯編語言課程,依然應(yīng)該是高校計(jì)算機(jī)及其相關(guān)專業(yè)學(xué)生的必修課[8]。說匯編語言是 “低級(jí)”語言,并不意味著匯編語言會(huì)被更高級(jí)語言所取代,相反,這里的 “低級(jí)”應(yīng)該當(dāng) “基礎(chǔ)”講[7],在學(xué)生能力培養(yǎng)中的 “基礎(chǔ)”地位是不能輕易動(dòng)搖的。

2)要拋棄匯編語言無用之說。

雖然隨著半導(dǎo)體技術(shù)、編程技術(shù)的不斷發(fā)展,在實(shí)際工程應(yīng)用中確實(shí)很少看到匯編語言的身影,但這并不能說明匯編語言沒用,已被其他高級(jí)語言所取代。嵌入式系統(tǒng)的底層驅(qū)動(dòng)、計(jì)算機(jī)的BIOS不都還是用匯編語言來實(shí)現(xiàn)的嗎?如果匯編語言真的沒用,為什么每年的雙選會(huì)場(chǎng)上還是有那么多知名企業(yè)要求應(yīng)聘者掌握匯編語言和用匯編語言編程呢?匯編語言有用,只是熟練掌握的人太少。

匯編語言的教學(xué)模式和教學(xué)態(tài)度需要盡早改變。目前各高校普遍反映匯編語言教學(xué)存在 “教師難教、學(xué)生難學(xué)”的現(xiàn)象,但不能因此而放棄匯編語言教學(xué)和學(xué)習(xí),動(dòng)搖其基礎(chǔ)地位。相反,應(yīng)當(dāng)積極尋找有效途徑來改變這種現(xiàn)狀。例如,在教學(xué)模式上拋棄以往那種單純的、枯燥無味的指令講解,相應(yīng)的利用動(dòng)畫形式來展示指令在CPU中的執(zhí)行過程,同時(shí)以功能相對(duì)完善、具有一定實(shí)用價(jià)值、貼近生活實(shí)際的程序片段作為案例進(jìn)行分析,以此來活躍課堂氣氛;同樣,作為理論課教師需要改變匯編語言的教學(xué)觀念和態(tài)度,不要把自己的興趣愛好和個(gè)人價(jià)值取向貫穿于教學(xué)中,要告訴學(xué)生學(xué)習(xí)匯編語言的目的不是用它去找工作,而是通過匯編語言的系統(tǒng)學(xué)習(xí)和應(yīng)用能夠提高其自身的各方面能力,就像我們學(xué)習(xí)了高等數(shù)學(xué),在實(shí)際工作中并不一定需要你天天去做微積分,但是它在我們各方面能力培養(yǎng)中奠定的基礎(chǔ)是不容忽視的。

4 結(jié)束語

匯編語言是一門直接操作底層硬件的編程語言,在計(jì)算機(jī)的發(fā)展歷程中有著不可磨滅的貢獻(xiàn)。本文認(rèn)為雖然不能倡導(dǎo)學(xué)生天天用匯編,但要讓學(xué)生會(huì)用匯編,理解匯編,知道匯編的精華。在高等教育中,匯編語言是計(jì)算機(jī)、通信、電子和自動(dòng)化等電類專業(yè)的一門非常重要的基礎(chǔ)課程,起到承上啟下的作用,在學(xué)生實(shí)踐動(dòng)手能力、邏輯思維能力、宏觀思維能力的培養(yǎng)方面有著舉足輕重的地位。

[1]張富貴,黃海松,呂敬堂,等.單片機(jī)設(shè)計(jì)性實(shí)驗(yàn)與工程實(shí)踐能力的培養(yǎng)[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(2):135-138.

[2]趙月靜,陳繼榮,張永弟.單片機(jī)原理及應(yīng)用課程創(chuàng)新實(shí)踐教學(xué)改革[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(1):176-179.

[3]穆洪偉.匯編語言魅力不減當(dāng)年——MCU匯編語言的“工程”化[J].電子世界,2012(8):77-79.

[4]黃勤,李楠,胡青,等.計(jì)算機(jī)硬件技術(shù)基礎(chǔ)課程體系優(yōu)化及實(shí)踐[J].實(shí)驗(yàn)室研究與探索,2011,30(10):290-292.

[5]龐新法.匯編語言授課方法[J].價(jià)值工程,2014(22):200-201.

[6]熊書明,王良民,曾宇,等.基于程序設(shè)計(jì)的 “匯編語言”課程教學(xué)方法[J].電氣電子教學(xué)學(xué)報(bào),2013,35(6):66-68.

[7]王志軍.微機(jī)原理教學(xué)中幾個(gè)問題的探討[J].計(jì)算機(jī)教育,2010(7):64-66.

[8]許家瑞.構(gòu)建創(chuàng)新實(shí)驗(yàn)教學(xué)體系的探索與實(shí)踐[J].實(shí)驗(yàn)技術(shù)與管理,2009(5):1-4.

[9]張雪蘭.匯編語言程序設(shè)計(jì)[M].北京:北京理工大學(xué)出版社,2001.

[10]陳依依.計(jì)算機(jī)匯編語言特點(diǎn)分析[J].山東大學(xué)學(xué)報(bào),2013(5):67-69.

[11]陳國(guó)良,董榮勝.計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J].中國(guó)大學(xué)教學(xué),2011(1):7-11,32.

[12]于慶梅,毛镠,馮國(guó)富,等.匯編語言程序設(shè)計(jì)課程微實(shí)驗(yàn)教學(xué)模式探討[J].計(jì)算機(jī)教育,2014(22):111-114.

[13]刁紅軍,楊季文.匯編語言實(shí)驗(yàn)教學(xué)與實(shí)踐[J].計(jì)算機(jī)教育,2015(15):97-99.

[14]安楊,趙波.“匯編語言程序設(shè)計(jì)”課程教學(xué)改革的研究[J].電氣電子教學(xué)學(xué)報(bào),2007,29(6):7-9.

[15]劉道文.高校非計(jì)算機(jī)專業(yè)計(jì)算思維能力培養(yǎng)策略研究與實(shí)踐[J].計(jì)算機(jī)教育,2013(13):39-43.

[16]劉光蓉.以計(jì)算思維能力培養(yǎng)為導(dǎo)向的C程序設(shè)計(jì)實(shí)驗(yàn)教學(xué)[J].實(shí)驗(yàn)技術(shù)與管理,2013,30(1):154-156.

猜你喜歡
匯編語言電子設(shè)計(jì)C語言
高職機(jī)電專業(yè)學(xué)生電子設(shè)計(jì)競(jìng)賽心理問題調(diào)查與分析
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
高等學(xué)校計(jì)算機(jī)專業(yè)課程教學(xué)改革實(shí)踐——以匯編語言與接口技術(shù)課程為例
匯編語言與C語言的混合程序設(shè)計(jì)技術(shù)研究
基于Multisim仿真軟件的三人表決器電子設(shè)計(jì)制作——以中學(xué)生創(chuàng)新能力培養(yǎng)為例
基于C語言的計(jì)算機(jī)軟件編程
提高《匯編語言程序設(shè)計(jì)》教學(xué)效率的思考與實(shí)踐
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
降壓型直流開關(guān)穩(wěn)壓電源——2016江蘇省大學(xué)生電子設(shè)計(jì)競(jìng)賽A題解析
關(guān)于電子設(shè)計(jì)自動(dòng)化技術(shù)的研究