匯編語言程序設計(精選5篇)
匯編語言程序設計范文第1篇
關鍵詞:匯編語言 教學 改革
匯編語言程序設計是計算機硬件、軟件及計算機應用專業(yè)必修的基礎核心課程。通過本課程的學習,學生掌握程序設計的基本技能,提高編程及用匯編語言解決實際問題的能力,進一步了解80386、80483、Pentium CPU的工作模式及擴充功能,以便跟蹤微機新技術的發(fā)展和應用水平。
一、匯編語言程序設計課程的特點
匯編語言比機器語言有了很大的進步,但仍是面向機器的一個非常低級的語言,非常冗長單調(diào)、易出BUG并且調(diào)試困難、代碼不易維護、兼容性不好、與硬件關系非常緊密,所以匯編語言的通用性較差。但匯編語言除了保持機器語言的編程質(zhì)量高、執(zhí)行速度快、占用內(nèi)存少的優(yōu)點外,還具有易記憶、易理解、書寫調(diào)試較方便等優(yōu)點。
二、教學中存在的問題
1.傳統(tǒng)教學內(nèi)容的缺點
傳統(tǒng)的匯編語言教學一般按照教材的編寫順序,教師先講CPU的功能結(jié)構(gòu)知識,然后講存儲器與尋址方式知識,最后講匯編語言指令系統(tǒng)和程序編寫。在講CPU的功能結(jié)構(gòu)的時候,因缺少實踐,大多數(shù)學生感到所學知識非常抽象,難以理解,逐漸感到匯編語言課程枯燥無味,對匯編語言學習失去興趣,嚴重影響了后續(xù)章節(jié)的學習。
2.實驗設備配置不合理
匯編語言課程作為一門實踐性很強的課程,必須進行大量的實踐,但這恰恰是大多中等職業(yè)學校所缺乏的環(huán)節(jié),主要有以下原因。
(1)實驗設備昂貴,這對于資金并不充裕的中等職業(yè)學校來說,很難為了一門課程而購買足夠數(shù)量的實驗設備。實驗設備的缺乏,嚴重影響了學生的實驗教學質(zhì)量。
(2)學校計算機室的計算機不敢讓學生進行實驗練習,因為匯編語言是針對硬件編寫程序的,學生在實驗的時候如果出一點差錯就有可能對計算機設備造成永久性的破壞。這就使得學生無法完全理解匯編語言程序設計與硬件的聯(lián)系,達不到匯編語言實驗目的,無法驗證學生編寫程序的正確性。
3.“雙師型”教師數(shù)量不足
在中等職業(yè)學校,由于多方面的原因,學校對于既懂理論,又能實踐的雙師型教師十分缺乏。很多匯編語言教師,只注重理論教學,忽視了教師自身實踐能力的提高,只會按照教材講課,不會編寫匯編語言程序的現(xiàn)象非常常見。只側(cè)重匯編語言理論教學,必然嚴重阻礙匯編語言實踐教學質(zhì)量的提高,無法滿足當今社會對匯編語言程序設計人才的培養(yǎng)要求。
三、教學改革的探索
1.打亂常規(guī)教學順序,激發(fā)學生學習興趣
初次教授匯編語言課程,教師先不要講解教材上關于CPU的功能結(jié)構(gòu)和存儲器及尋址方式部分內(nèi)容,而應采取與實際應用相結(jié)合的一體化教學方式。教師可以先讓學生看一段機器語言設計的小程序。給學生講講早期的程序員是怎樣使用機器語言進行編程的,接下來把上段機器碼用匯編指令寫出來給大家看,讓同學們感覺到使用匯編語言程序設計比機器語言設計既簡單又容易記憶,這就為激發(fā)學生的學習興趣奠定了第一步的工作基礎。在后續(xù)的課程中,教師可以與教材相結(jié)合,在講解程序例題的過程中講解用到的CPU的功能結(jié)構(gòu)和存儲器及尋址方式部分知識,讓學生逐個理解和掌握這些抽象的知識,不至于一次把學生講蒙,也不會因此影響學生學習這門課的興趣。
2.注重培養(yǎng)“雙師型”教師
雙師型教師既要具備理論教學的素質(zhì),也應具備實踐教學的素質(zhì)。匯編語言作為一門實踐課,只有既懂理論知識,又懂實踐經(jīng)驗的老師才能最大限度地把匯編語言課程教好。所以,中等職業(yè)學校應加強雙師型教師的培訓,努力把教師培養(yǎng)為雙師型教師。同時,教師也應該注重自身的培養(yǎng),不斷地充實自己,俗話說,要想給學生一碗水,自己必須有一桶水。在新技術不斷發(fā)展的今天,只有教師本身掌握了前沿技術,才能更好地服務于學生。
匯編語言程序設計范文第2篇
關鍵詞:課程改革;匯編語言;課程建設
中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2007)12-21735-02
A Study on College Course Reform of the Assembly Language Programming
WU Guang-yu, CHEN You-xuan
(Zengcheng College of South China Normal University, Guangzhou 511363, China)
Abstract:By analyzing educational actualities of Assembly Language Programming course,a course reform project is proposed. This paper points out the main problems remained in the course practice. Finally, the author proposes a series of reform solutions to the teaching materials, experiment designing and course testing of Assembly Language Programming. The paper also extracts experience from educational reform and practice.
Key words:course reform; assembly language; course developments
1 引言
匯編語言是計算機能提供給用戶的最快而又最有效的語言,也是能夠利用計算機所有硬件特性并能直接控制硬件的唯一語言,因而在對于程序的空間和時間要求很高的場合,匯編語言是必不可少的。因此,各院校的計算機及相關專業(yè)均開設了“匯編語言程序設計”。在以往的教學中,學生普遍反映這門課程難學。究其原因有:(1)學習匯編語言需要具備計算機的硬件知識配合,需要比較堅實的程序語言設計基礎;(2)匯編語言和高級語言相比有大量的語法規(guī)則需要記憶,較瑣碎,沒有高級語言的完整結(jié)構(gòu)化語句,程序結(jié)構(gòu)不是很明顯;(3)上機調(diào)試結(jié)果不直觀且容易出錯;(4)再加上近年來較易掌握的高級語言的快速發(fā)展,使得匯編語言的角色逐漸在淡化。在教與學的過程中,初學者首先從外界接受到的是匯編語言難學,從主觀上就對該課程產(chǎn)生了畏懼心理;而另一方面初學者又受自身的知識面所限,認為匯編語言在應用開發(fā)中很少用到,結(jié)果給該課程下難又沒用的結(jié)論。因此,針對現(xiàn)狀,糾正學生對課程的認識,改進教學方法已經(jīng)刻不容緩。
2 教學改革措施
2.1 糾正學生認識,調(diào)整教學內(nèi)容,注重實例教學
糾正學生對課程難學而又沒用的認識,才能使課程的教學得以順利開展。而另一方面畢業(yè)生又面臨較大的就業(yè)壓力,其中很大一部分原因就是能培養(yǎng)出人才與社會需求脫節(jié),沒用按照市場真正需求確定目標,專業(yè)領域緊缺的技能應用型人才存在很大的缺口。因此,加強包括匯編語言在內(nèi)的硬件體系課程的教學很有必要。
清華大學出版社出版的沈美明等編寫的《 匯編語言程序設計》第3章的指令系統(tǒng)的時候,按照傳統(tǒng)的教學順序,把所有的指令講完,過多的指令在缺乏實際應用實踐的支撐下,枯燥乏味。所以在介紹這章的指令的時候。先把基本的數(shù)據(jù)傳送指令、算術運算指令、邏輯運算指令、移位指令講完。對于控制轉(zhuǎn)移指令、串處理指令、循環(huán)指令、中斷調(diào)用等其它指令分散到分支、循環(huán)程序設計,中斷調(diào)用,I/O程序設計等相應的章節(jié)去。讓學生能夠切身體會學以致用,更能夠在指令的應用中加深理解,達到更好的教學效果。
而在程序設計方法的章節(jié)里,改變以往一節(jié)一個(多個)例子的做法,把程序設計方法設計在一系列有前后關聯(lián)的例子里,通過每一次課逐步擴充例子的功能,程序設計方法也逐步展示出來。這一系列的例子從把BX的內(nèi)容以十六進制形式輸出,到統(tǒng)計BX中二進制1的個數(shù)并輸出,到從鍵盤輸入一個十六進制數(shù)到BX,到把BX中的內(nèi)容以十進制形式輸出(分無符號數(shù)和帶符號數(shù)),一直擴展到從鍵盤接受一個數(shù)組并排序輸出。把最后的例子介紹完后,已基本覆蓋課程的基本內(nèi)容,包括程序格式,三個基本結(jié)構(gòu),子程序的應用,宏的使用,輸入輸出程序設計等。通過這樣處理課程的連貫性大大增強,很多相關的內(nèi)容都串聯(lián)起來,學生也能在較為熟悉的例子中盡快的接收新的知識,從逐步擴展的例子找到程序設計方法之間的差異,方法的適應范圍等。
2.2 靈活應用輔助教學手段
利用CAI課件開展課堂教學,對教學的直觀性和可視性,提高課堂教學效率都有很大好處。對課程中的重點難點,比如尋址方式及其物理地址計算,堆棧操作指令,子程序調(diào)用的堆棧變化等知識點,用動圖形式演繹。既可以增加趣味性,又可以達到事半功倍的效果。
2.3 實踐環(huán)節(jié)的教學
針對程序設計課程實踐性極強的特點,引入新的編程調(diào)試工具TurboDebugger(TD),并編寫相關的實驗指導書。TD工具相對DOS的Debug,提供的較好的圖形界面,同屏能顯示所有寄存器,標志位,代碼段,數(shù)據(jù)段還有堆棧段的內(nèi)容,為調(diào)試和理解提供更多的便利。同時,也體現(xiàn)了“機器”和“程序”相結(jié)合這一思想,使學生對“計算機”的認識更為深入。
理論課教學有機地和實踐環(huán)節(jié)教學結(jié)合。在實驗課中,繼續(xù)沿用理論教學的例子作為基礎再進行擴展功能,使學生在熟悉的例子練習中實踐,便于把所學知識快速應用于實踐中,不但有利于其程序設計能力的提高,也提高了學生對匯編語言的興趣。
2.4 完善課程的考核方法
任何的教學都需要評價,教學評價在教學過程起激勵和監(jiān)督作用,使教師和學生在評價中受到鼓舞和鞭策,促進教師的技能,激發(fā)學生的學習動力。所以考試上的改革也不可或缺。
在考試方面大膽采用開卷考試的形式,重點突出“程序設計”,考核利用語言解決問題并設計程序能力,也就是程序的“讀”(分析)和“寫”(設計)的能力,為此在題型上,我們放棄了以往的選擇題,采用簡答題問答題的形式,要求作答時必須寫出關鍵問題的分析或者關鍵的步驟。以下是我們設計的一份試題(表1)。
在總評成績的比例上調(diào)整平時成績和期末考試成績的比例,期末考試成績50%,平時(包括實踐環(huán)節(jié))50%。通過調(diào)整更注重平時成績的評定,調(diào)動了學生平時學習的積極性,避免他們只靠考試周“沖刺”蒙混過關。
3 其他一些必須注意的問題
3.1 該課程與其他相關課程的關系
與《匯編語言程序設計》相關的有計算機專業(yè)的多門主干課程《C程序設計》、《計算機組成原理》、《接口技術》和《單片機》等,在授課時要特別注意前后課程的聯(lián)系,比如C語言的變量和函數(shù)與該課程的數(shù)據(jù)定義和子程序作比對進行學習,高級語言和匯編語言進行程序設計時思路的異同,還有對和后繼課程有縱向聯(lián)系的匯編指令要重點講解。
表1 試題的設計
3.2 因材施教,積極引導
對于基礎和學習能力不同的學生,可以嘗試布置不同梯度的編程題目(項目)以供選擇。興趣濃厚的學生還可以組成活動小組,分析設計更高層次的程序課題。不搞“一刀切”,學生自身根據(jù)學習情況選擇難度合適的題目,使其能真正去思考,避免抄襲。
3.3 階段性的檢查反饋尤為重要
階段性的檢查如作業(yè),模塊測試和實驗項目,通過這些手段了解學生的相關知識點與程序設計技能的掌握情況。可以針對教學中一些比較抽象的、容易混淆的基本概念,算法的理解,寄存器的使用和程序的編制等方面進行。發(fā)現(xiàn)問題集中以習題課的形式組織學生討論,進行集體學習,在這個過程中不斷會有多種解決方案的提出、已有問題的解決以及新的問題產(chǎn)生,這樣,學生的獨立思考能力就能得到鍛煉和提高。通過學生對習題實驗的完成情況的了解,及時發(fā)現(xiàn)問題,并采取適當?shù)姆椒ㄟM行補救,以達到階段性的教學目標。
4 實際教學效果
在將近3年的教學實踐中,以上一系列措施的實施,首先課題教學氣氛活躍,師生互動得到有效加強;其次實驗課中,學生提出的問題質(zhì)量有所提高;再次,從后續(xù)課程《接口技術》等反映,學生匯編語言基礎扎實,對機器原理理解較為透徹。
5 結(jié)束語
已有高校對該課程進行“以教授Win32匯編語言程序設計為主要內(nèi)容的Win32匯編語言程序設計”教學改革。而我們根據(jù)學校學生的實際情況,主要是教學方法,實踐教學和考核方法的整套教學改革措施,課程的主要內(nèi)容如何進一步改革,還值得同行一起探討。
參考文獻:
[1]沈美明,溫冬嬋.IBM-PC匯編語言程序設計[M].北京:清華大學出版社,2001.
[2]何克抗, 等. 教學系統(tǒng)設計[M]. 北京:北京師范大學出版社,2002.
[3]譚浩強.C語言程序設計 [M].北京:清華大學出版社,1999.
[4]劉爽. 匯編語言[M]. 北京:清華大學出版社, 2003.
匯編語言程序設計范文第3篇
關鍵詞:匯編語言程序設計; 教學方法; 內(nèi)聯(lián)編程
1課程的現(xiàn)狀
匯編語言不同于其它高級語言,必須要求編程人員有一定的硬件基礎,如對CPU的結(jié)構(gòu)、CPU與存儲器等部件的數(shù)據(jù)傳送過程必須要有基本的了解,這樣才能學好這門課程。在教學過程中,我們發(fā)現(xiàn)學生對高級語言編程學習積極性高,對匯編語言課程缺乏興趣,因為課程本身指令復雜,規(guī)定繁多,再加上學習匯編指令前對CPU的相關工作過程理解不透,導致學生厭學,又由于本課程面對的低年級學生只有高級語言的基礎,習慣于高級語言的自然表達,初次接觸計算機硬件知識心理上有恐懼感,更難以適應繁雜的低級語言。
針對本課程的特點,對教學內(nèi)容、環(huán)節(jié)、過程等進行了精心設計,下面就教學方法的設計、實踐教學方法、課程考核形式等方面進行的一系列改革進行詳細探討。
2教學方法設計改革
為了避免學生因指令復雜,規(guī)定繁多、難度大而對該課程產(chǎn)生畏懼的學習心理,教師有必要對教學內(nèi)容進行合理組織,對教學過程進行精心的設計。
2.1利用FLASH技術,使教學難點容易理解
在多年的教學過程中,我發(fā)現(xiàn)學生在學習CPU結(jié)構(gòu)這章節(jié)中,對介紹的CPU由哪些寄存器(名稱、大小)構(gòu)成,各個寄存器的含義,用途,CPU與存儲器等部件的數(shù)據(jù)傳送過程,會覺得很抽象,多數(shù)同學都是采用死記硬背的方式,這章節(jié)是第二章節(jié)的內(nèi)容,也是能否學好該課程關鍵的一章,如果理解不深,這無疑為后續(xù)的學習,特別是尋址方式的學習埋下了隱患。
針對這個問題,教師有必要對教學過程進行精心的設計。
在這章節(jié)中我們利用FLASH技術,把各種尋址方式下傳送指令的CPU與存儲器等部件的數(shù)據(jù)傳送過程以動畫形式展現(xiàn)給學生,使得復雜,抽象的過程變得直觀,學生理解比較容易,也加深了對尋址方式的記憶。
2.2對比法教學
目前計算機專業(yè)的課程設置中,《匯編程序語言的程序設計》課程通常是學習完C語言課程之后開始學習的。所以在教學中可以采用對比法來講解課程,對某些語法知識點和程序設計過程我們可以以C語言和匯編語言對應分析。
例如在介紹寄存器時,由于在一般的c語言程序中并沒有直接使用到寄存器。因此,我們使用vC++6.0環(huán)境下的調(diào)試工具顯示一個c語言程序及其對應的機器碼,讓學生看到編寫匯編程序寄存器的用途,加深了學生對匯編語言程序的理解。
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
在介紹語法知識時,比如變量的定義:
C語言中的變量定義形式如下:
int c1,c2=0;
匯編語言的變量定義形式如下:
cl DW ?
c2 DW 0 轉(zhuǎn)貼于
2.3抽象概念的比喻教學法
在對段地址和偏移地址的講解過程中,可以采用比喻法,把操作數(shù)比喻成學生,把教室的房間號比喻成段地址,教室內(nèi)每個座位編個號,編號就是偏移地址,要想到教室把某個學生找到,就要找到相應的教室號,再到對應的座位號找到這個學生,同理,要想把主存中的操作數(shù)找到就要找到段地址和相應的偏移地址,另外要讓學生知道每個教室里的座位號都是從0號開始編號的,也就是每個段里的偏移地址如果不特別指定,也是從0號開始編號的。
3實踐教學改革
3.1增強實驗環(huán)節(jié),做一些實際項目
程序設計對于大多數(shù)的初學者來說有一定的難度。對于給定的一個實驗題目,許多學生往往感到無從下手。目前的上機實驗時間往往很短,常常是學生才剛剛有點入門,實驗環(huán)節(jié)就結(jié)束了;且課外實踐環(huán)節(jié)幾乎沒有,導致學生即使課內(nèi)學的再好也不會應用。
在實驗設計方面可以先把一些經(jīng)典的程序提供給學生,例如分支結(jié)構(gòu)的設計、循環(huán)結(jié)構(gòu)的設計等,讓學生在寫出C語言程序之后再設計匯編程序,找出兩者編程思維的區(qū)別。這樣通過一段時間的經(jīng)驗積累,就能夠編寫比較復雜的的程序,由于上機時間有限,可以每次實驗課之后布置一些題目供學生選擇思考,讓學生課外分組來設計這些程序,題目的類型可以是研討型的讓學生從更多的角度去思考上機實驗過的題目,編寫出不同的程序;另一種為編程型,
例如可以設置這2道題目,音樂小鍵盤、貪吃蛇游戲等,以加強同學們的編程能力的訓練。
3.2采用與高級語言混合編程
目前越來越多的場合要使用匯編語言和高級語言進行混合編程,因此在教學時應強調(diào)匯編語言和C/C++的混合編程,并且這樣也可以為今后嵌入式系統(tǒng)軟件開發(fā)的學習打下堅實的軟硬件基礎。
在實驗課中可以借助 Visual C++開發(fā)工具,采用內(nèi)聯(lián)匯編的方式,在 C/C++源程序中嵌入?yún)R編指令序列完成一定的功能,并讓學生設置斷點然后跟蹤執(zhí)行,同時注意觀察寄存器的內(nèi)容和變量的值。這樣可以一方面讓同學們熟練掌握兩種語言的切換使用,另一方面讓他們感受到兩種語言各有特點。例如可以利用匯編語言處理高級語言中不方便處理的一些問題。
4課程考核形式改革
因為“匯編語言程序設計”是實踐性很強的一門課程,所以實驗課成績應該在總成績中占有相當大的比重。目前大多數(shù)高校的匯編語言課程的實驗課成績只占很小的比重,即理論知識往往占課程期末考核總成績的70%~80%,這樣往往會導致學生不得不將大量的精力放在理論知識的學習中,結(jié)果只會造就大批的應試高手。在教學中,我們遇到過有的學生考試試卷能考90分以上,卻連最基本的計算機操作都不能動手。今后這門課程的考核,實驗課成績應該提高到占總成績的1/2。老師在實驗中應該營造出互動氣氛,檢查每個學生的完成情況同時做好記錄,根據(jù)學生的實際動手情況給出他們的平時實驗成績,而不是只依據(jù)交上來的實驗報告,這樣也能杜絕抄襲之風。
5結(jié)束語
通過教學改革的實踐,在一定程度上提高了他們對本課程的學習積極性,又降低了學習難度。良好的教學效果是永遠追求的目標,在今后的教學中,我們還需要不斷進行探索、研究和嘗試,不斷更新觀念,發(fā)現(xiàn)自身教學過程中的問題,找到解決辦法,提高教學效果。
參考文獻
[1] 王成耀.80x86匯編語言程序設計[M].北京:人民郵電出版社,2008(第2版).
[2] 卜登立,彭嵩松,唐衛(wèi)東,龍侃.“匯編語言程序設計”課程教學改革研究與探討[J].井岡山學院學報,2009,30(10):124-127.
匯編語言程序設計范文第4篇
摘要:本文從教材建設、課程教學內(nèi)容改革、教學方式手段改革、實驗平臺創(chuàng)新、實驗改革等方面介紹了我院在“匯編語言程序設計”課程的教學改革實踐。
關鍵詞:匯編語言程序設計;實驗平臺;教學改革
中圖分類號:G642
文獻標識碼:B
1教材系列化建設
我們以CCC2002為依據(jù),參考IEEE-CS&ACM 制定的計算機課程指南,閱讀大量的國內(nèi)外相關優(yōu)秀教材,結(jié)合課程組科研實踐成果,按照系列化建設的思路,先后編寫完成了《Intel 80x86/Pentium匯編語言程序設計》、《匯編語言程序設計(從DOS到Windows)》、《Windows匯編語言程序設計教程》、《Windows匯編語言程序設計實驗指導》等4本教材。其中1本被評為2006年北京市高等教育精品教材,1本被列為2007年“普通高等教育“十一五”部級教材規(guī)劃”,2本作為2007年北京高等教育精品教材建設項目。通過編寫、使用這些教材,為教學內(nèi)容改革奠定了堅實的基礎。
2教學內(nèi)容及教學方法改革
在教學內(nèi)容和方法上加強與“微機原理與接口技術”、“計算機組織與結(jié)構(gòu)”、“操作系統(tǒng)”等課程間的聯(lián)系,有利于各門課程之間的融會貫通。教學內(nèi)容體現(xiàn)課程的時代性和先進性,以32位匯編語言及Windows編程環(huán)境的內(nèi)容為主,從16位實模式轉(zhuǎn)換到32位保護模式,結(jié)合豐富的應用性實例,使所學知識與目前主流的應用環(huán)境相結(jié)合,為學生的創(chuàng)新能力奠定基礎。
為實現(xiàn)教學模式從“教學型”向“研究型”的轉(zhuǎn)變,需要充分研究學生的認知過程,掌握認知規(guī)律。根據(jù)“匯編語言程序設計”課程本身的理論抽象性和鮮明應用性,課程組以建構(gòu)主義理論為基礎,探索并改進教學方法。在教學設計中體現(xiàn)以學生為中心、以教師為主導的思想,采用重點難點精講、對比教學、形象教學、重視實驗等方法,用多媒體手段、典型實例來展現(xiàn)抽象的編程概念。采用現(xiàn)代化網(wǎng)絡教育技術建立了課程網(wǎng)站及網(wǎng)絡教室,加強師生互動,拓展了交流空間。
例如,在多門專業(yè)課中均涉及到“中斷”概念,在匯編語言程序設計課程中以編程實例將它具體化,使學生對抽象的理論概念有了直接的認識,從軟件和硬件兩個角度加深了對中斷機制底層的深層次理解,提高了學習興趣。
又如學生難于理解間接尋址方式,但學生在學習本課程時已有了C語言知識,在教學中就把間接尋址方式與C語言的指針類比,通過與先前知識的銜接,經(jīng)過對比學習,使學生建構(gòu)、衍生出更深層次的信息,很容易對新知識消化。對于較難理解的程序轉(zhuǎn)移地址的形成,采用動畫方式幫助學生理解,并通過CASE結(jié)構(gòu)程序設計實踐鞏固。把宏指令與過程及高級語言的函數(shù)對比,學生很快掌握了其設計方法,他們通過主動對知識的處理和轉(zhuǎn)化,又總結(jié)出“宏實際更像高級語言的預定義,用到它的地方都會有它一份拷貝,所以宏可能讓你的真正代碼量劇增”。
通過精心組織教學,選擇與實際應用密切結(jié)合的教學案例,在課堂上和網(wǎng)絡支撐平臺上增加總結(jié)和討論環(huán)節(jié),鼓勵學生主動反思,從而調(diào)整個體的認知,幫助學生實現(xiàn)在原有認知基礎上新知識的整合,在融合了多門課程知識的基礎上,形成系統(tǒng)的知識觀念,提高綜合應用和創(chuàng)新能力。
3構(gòu)建先進的實驗平臺
在微機系統(tǒng)的教學和實驗內(nèi)容上,Windows操作系統(tǒng)及32位保護模式已成為匯編語言的發(fā)展趨勢。然而,目前Windows環(huán)境下還沒有一種專門用于匯編語言的主流開發(fā)工具,而底層匯編語言編程所面向的硬件型號和接口又存在巨大差異。為此,課程組開展了改革匯編語言程序設計實驗環(huán)境的探索,編寫了《Windows匯編語言程序設計實驗指導》教材,構(gòu)建了新型的實驗環(huán)境,采用Microsoft Visual C/C++集成開發(fā)工具來編寫、調(diào)試匯編程序(見下圖),使匯編程序的編輯、編譯、連接、調(diào)試等過程均與C/C++程序一致,減輕了學生學習負擔,提高了C/C++與匯編混合語言編程能力。應用虛擬機軟件技術,使匯編語言編程面向虛擬的、統(tǒng)一的硬件及其接口,保證了實驗環(huán)境的統(tǒng)一性,提高了實驗效率。
4開設體現(xiàn)前沿性、先進性的匯編語言實驗
匯編語言程序設計是一門實踐性很強的課程。課程組跟蹤計算機軟硬件技術的最新發(fā)展,對國內(nèi)外的相關課程教學及實踐進行了深入的調(diào)研,結(jié)合在科研實踐中取得的部分成果,開設出一系列具有鮮明應用特色的驗證型、綜合型和創(chuàng)新型的層次實驗,并寫進《Windows匯編語言程序設計實驗指導》教材中,進一步鞏固理論教學內(nèi)容。
圖 VC集成環(huán)境下的匯編語言調(diào)試
驗證型實驗以掌握單元知識為目標,著重訓練基礎編程能力,如數(shù)據(jù)塊操作、數(shù)據(jù)顯示、字符串排序、素數(shù)判斷、有序數(shù)組合并等。
綜合型以融合本課程知識為主,如多模塊程序設計、中斷程序設計、線程同步、文件管理等。
創(chuàng)新型以設計具有應用背景的實驗為主,培養(yǎng)學生對計算機知識體系的融會貫通及創(chuàng)新能力。如數(shù)據(jù)庫管理系統(tǒng)設計、全屏幕編輯器設計、緩沖區(qū)溢出實驗、讀取硬盤序列號、硬盤DMA等。
基于個體的差異性,學生可以按照自己的能力和興趣選做部分或全部實驗,充分發(fā)揮了學生的主觀能動性。這種強調(diào)自主學習的教學過程和方法,有效地促進了學生自我認知的發(fā)展和新知建構(gòu)。通過實踐環(huán)節(jié),提高了學生的程序設計能力,為學習后續(xù)專業(yè)課程,設計硬件驅(qū)動、性能優(yōu)化、代碼對抗等底層系統(tǒng)級軟件打下堅實基礎,培養(yǎng)了學生的創(chuàng)新能力。
參考文獻
[l] 李未. 提高教育質(zhì)量,培養(yǎng)創(chuàng)新人才[J]. 計算機教育,2008,(1).
[2] 肖川. 主體參與:自主學習的要義[J]. 人民教育,2003,(22).
匯編語言程序設計范文第5篇
關鍵詞:匯編語言,C語言
單片機的開發(fā)離不開單片機的開發(fā)語言,對于一個開發(fā)者來說,選擇適合的語言是非常重要的一個開發(fā)環(huán)節(jié)。
目前的單片機的編程語言主要有匯編和高級語言兩種,每一種類型的單片機都有自己的匯編語言,軟件可移植性不是很好。而高級語言有C 語言,PLM 語言,PASCAL 語言,BASIC語言等幾種。BASIC 語言主要應用在MCS51 系列單片機上,但效果不是很理想,現(xiàn)在已經(jīng)基本上不用。PLM 語言主要應用在MCS51 和MCS96 系列單片機中,對硬件的控制能力和代碼效率都很好,PLM51語言是介于C語言和匯編語言之間的一種高級語言, 是由一種曾經(jīng)用于大中型計算機的高級語言 PLM 語言移植來的。PLM 的程序書寫格式相當靈活,其說明語句寫在輸入行的位置不受限制,而且程序的元素之間可以隨意插入空格。PASCAL語言在MOTOROLA 單片機中有應用。C語言是現(xiàn)代單片機開發(fā)中較常用的高級語言,其程序的可讀性,可移植性都很好,對硬件的控制能力也很強,唯一不足的是其代碼效率較低,在程序量較大時需使用大容量的程序存儲器。下邊本文就主流的匯編語言與C語言的語言結(jié)構(gòu)和特點進行研究。
首先是匯編語言的結(jié)構(gòu)及特點。
匯編語言是一種采用助記符來編寫程序的語言,它由操作符和操作數(shù)兩個部分組成,其中操作數(shù)又分為源操作數(shù)和目的操作數(shù)。匯編語言比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。論文大全,匯編語言。。匯編語言的特點是用符號代替了機器指令代碼,而且助記符與指令代碼一一對應,基本保留了機器語言的靈活性。使用匯編語言能面向機器并較好地發(fā)揮機器的特性,得到質(zhì)量較高的程序。
由于匯編語言中使用了助記符,用匯編語言編制的程序必須通過預先放入計算機的'匯編程序'的加工和翻譯,才可以變成能被計算機識別和處理的二進制代碼程序。用匯編語言等非機器語言書寫好的符號程序稱為源程序,運行時匯編程序要將源程序翻譯成目標程序。目標程序是機器語言程序,它一經(jīng)被安置在內(nèi)存的預定位置上,就能被計算機的CPU處理和執(zhí)行。
匯編語言像機器指令一樣,是硬件操作的控制信息,因而仍然是面向機器的語言,使用起來還是比較繁瑣費時,通用性也差。但是,匯編語言用來編制系統(tǒng)軟件和過程控制軟件,其目標程序占用內(nèi)存空間少,運行速度快,有著高級語言不可替代的用途。
其次是C語言的結(jié)構(gòu)及特點。
C語言是一種通用的計算機程序設計語言,在國際上十分流行,它既可用來編寫計算機的系統(tǒng)程序,也可用來編寫一般的應用程序。以前計算機的系統(tǒng)軟件主要使用匯編語言編寫的,對于單片機應用系統(tǒng)來說更是如此。由于匯編語言程序的可讀性和可移植性都較差,采用匯編語言編寫單片機應用系統(tǒng)程序的周期長,而且調(diào)試和排錯也比較困難。而一般效率高的高級語言難以實現(xiàn)匯編語言對于計算機硬件直接進行操作(如對內(nèi)存地址的操作移位操作等)的功能。而C語言既具有一般高級語言的特點,又能直接對計算機的硬件進行操作,并且采用C語言編寫的程序能夠很容易地在不同類型的計算機之間進行移植,因此許多以前只能采用匯編語言來解決的問題現(xiàn)在可以改用C語言來解決。
C語言可以用來編寫科學計算或其他應用程序,但它更適合于編寫計算機的操作系統(tǒng)程序以及其他一些需要對機器硬件進行操作的場合,有的大型應用軟件也采用C語言進行編寫,這主要是因為C語言具有很好的可移植性和硬件控制能力,表達和運算能力也較強。
概括來說,C語言具有以下一些特點:
1.語言簡潔緊湊,使用方便靈活 :C語言一共只有32個關鍵字,9個控制語句,主要用小寫字母表示,壓縮了一切不必要的成分;C語言程序書寫形式自由,可以用簡單的方法構(gòu)造出復雜的數(shù)據(jù)類型和程序結(jié)構(gòu)。
2.運算符豐富 :C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理,從而使C的運算類型極其豐富,共有34 種運算符。C表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)其他高級語言難以實現(xiàn)的運算。
3.數(shù)據(jù)結(jié)構(gòu)類型豐富 :C的數(shù)據(jù)結(jié)構(gòu)類型豐富,根據(jù)需要可以采用:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等多種數(shù)據(jù)類型來實現(xiàn)復雜數(shù)據(jù)結(jié)構(gòu)的運算,尤其是指針類型數(shù)據(jù)使用起來非常靈活多樣。
4.可進行結(jié)構(gòu)化程序設計 :C語言是以函數(shù)作為程序設計的基本單位的,用函數(shù)作為程序模塊以實現(xiàn)程序的模塊化,是結(jié)構(gòu)化的理想語言。
5.語法限制不嚴格,程序設計自由度大 :C語言的語法規(guī)則不太嚴格,程序設計的自由度比較大,限制和靈活是一對矛盾。C語言放寬了語法檢查,所以程序員應當仔細檢查程序,而不要過分依賴C編譯程序去查錯。
6.C語言允許直接訪問物理地址 :C語言允許直接訪問物理地址,能進行位(bit )操作,能實現(xiàn)匯編語言的大部分功能,可以直接對硬件進行操作,這樣它可以對單片機的內(nèi)部寄存器和I/O口進行操作,可以直接訪問片內(nèi)或片外存儲器。
7.生成目標代碼質(zhì)量高 :眾所周知,匯編語言程序目標代碼的效率是最高的,但統(tǒng)計表明,C語言編 寫的程序生成代碼的效率僅比匯編語言低10~20%。
8.程序可移植性好 :匯編語言完全依賴于機器硬件,因而不具有可移植性,C語言是通過編譯來得到可執(zhí)行代碼的。C語言的編譯程序便于移植,基本上不作修改就能用于各種機器和操作系統(tǒng)。
盡管C語言具有許多的優(yōu)點,但和其他任何一種程序設計語言一樣,也有其自身的缺點。但總的來說,C語言的優(yōu)點遠遠超過了它的缺點。論文大全,匯編語言。。
因此我們在使用中通常將匯編語言和C語言相結(jié)合,利用共同的優(yōu)點來完成開發(fā)工作。那在C語言中如何使用匯編語言呢?這個問題在不同的編譯器中,具體實現(xiàn)方法是不同的。不過在實現(xiàn)大方上也不過就是有兩種,而且各種編譯器的實現(xiàn)方法也是大同小異。論文大全,匯編語言。。通常的方法是:一、對C語言程序編譯后形成的匯編程序進行手工修改與優(yōu)化;二、在C語言程序中直接嵌人匯編語句;三、分別編寫C語言程序和匯編語言程序,然后獨立編譯成目標代碼模塊,再進行鏈接。第一種編程方式要求對匯編與C語言都極其熟悉,并且這樣的編程方式對程序的可讀性和擴展性的負面影響比較大,一般不建議使用。第二種方法適用于語句執(zhí)行頻率非常高,并且C編程與匯編編程效率差異較大的情況,例如進入中斷的通用中斷子程序等。第三種方式是混合編程最常用的方式之一,在這種方式下,C語言程序與匯編語言程序均可使用另一方定義的函數(shù)與變量。通過這樣的方法就可以使二者結(jié)合起來,達到混合使用的目的。
以上就是本文對多種單片機的開發(fā)語言特點進行的研究。
參考文獻:
[1]陳建鐸.單片機原理于應用.北京:科學出版社,2005.2
[2]劉守義.單片機應用技術.西安:西安電子科技大學出版社,2007.8
[3]李平,杜濤,羅和平.單片機應用開發(fā)與實踐.北京:機械工業(yè)出版社,2008.7
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關法律責任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 yyfangchan@163.com (舉報時請帶上具體的網(wǎng)址) 舉報,一經(jīng)查實,本站將立刻刪除