公務員期刊網(wǎng) 精選范文 匯編程序范文

匯編程序精選(九篇)

前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的匯編程序主題范文,僅供參考,歡迎閱讀并收藏。

匯編程序

第1篇:匯編程序范文

關鍵詞:匯編語言程序設計; 教學方法; 內聯(lián)編程

1課程的現(xiàn)狀

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

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

2教學方法設計改革

為了避免學生因指令復雜,規(guī)定繁多、難度大而對該課程產生畏懼的學習心理,教師有必要對教學內容進行合理組織,對教學過程進行精心的設計。

2.1利用FLASH技術,使教學難點容易理解

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

針對這個問題,教師有必要對教學過程進行精心的設計。

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

2.2對比法教學

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

例如在介紹寄存器時,由于在一般的c語言程序中并沒有直接使用到寄存器。因此,我們使用vC++6.0環(huán)境下的調試工具顯示一個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 轉貼于

2.3抽象概念的比喻教學法

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

3實踐教學改革

3.1增強實驗環(huán)節(jié),做一些實際項目

程序設計對于大多數(shù)的初學者來說有一定的難度。對于給定的一個實驗題目,許多學生往往感到無從下手。目前的上機實驗時間往往很短,常常是學生才剛剛有點入門,實驗環(huán)節(jié)就結束了;且課外實踐環(huán)節(jié)幾乎沒有,導致學生即使課內學的再好也不會應用。

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

例如可以設置這2道題目,音樂小鍵盤、貪吃蛇游戲等,以加強同學們的編程能力的訓練。

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

目前越來越多的場合要使用匯編語言和高級語言進行混合編程,因此在教學時應強調匯編語言和C/C++的混合編程,并且這樣也可以為今后嵌入式系統(tǒng)軟件開發(fā)的學習打下堅實的軟硬件基礎。

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

4課程考核形式改革

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

5結束語

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

參考文獻

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

[2] 卜登立,彭嵩松,唐衛(wèi)東,龍侃.“匯編語言程序設計”課程教學改革研究與探討[J].井岡山學院學報,2009,30(10):124-127.

第2篇:匯編程序范文

“微機原理與接口技術”是電子電氣信息類專業(yè)中一門非常重要的專業(yè)基礎課程,其內容包括微處理器基本結構與工作原理、匯編語言指令系統(tǒng)、常用接口芯片的基本原理與編程方式、通過系統(tǒng)總線與外設接口進行連接的基本方法等,具備軟件與硬件緊密結合的顯著特點。該課程幫助學生從根本上認識和理解計算機的底層工作原理[1],培養(yǎng)學生綜合運用模擬電子技術、數(shù)字電子技術和匯編語言、C語言等相關知識,理解接口電路工作原理,設計接口電路及對接口電路進行初始化編程的能力。其中,匯編語言的編程能力對學生理解硬件工作原理及對接口芯片進行初始化編程具有非常重要的意義。筆者在實驗教學中利用Debug[2-3]調試程序引導學生對匯編語言程序的執(zhí)行過程進行詳細跟蹤分析,幫助學生理解計算機底層[4]工作的實質,取得了顯著的效果。

1 主要命令簡介

2.1 排序前內存中數(shù)據(jù)的存儲情況

閱讀此段程序可知,子程序disp用以顯示字符串“Hello World!”,將disp子程序定義為中斷處理子程序,分配的中斷類型號為67H,利用指令“int 67h”實現(xiàn)中斷調用顯示字符串。子程序init_int將67H號中斷原來的中斷向量從中斷向量表中取出來加以保存,將disp子程序的入口地址填寫至中斷向量表中把原來的中斷向量替換掉。子程序restore_int用以恢復原來的中斷向量。對程序調試過程如下。

4.1 查找原中斷向量和數(shù)據(jù)段的值

5 結束語

利用Debug調試程序的主要命令,結合實例闡述了匯編程序執(zhí)行過程的跟蹤方法,展示了Debug調試程序強大的功能。在教學中,要充分利用Debug調試程序的幾個主要命令,對課程內容做層次化設計[8],引導學生對匯編語言程序的執(zhí)行過程加以詳細跟蹤和比較分析,從而深入理解計算機底層工作的實質,這種方法不僅適用于“微機原理與接口技術”課程,對于其他微處理器和高級語言的學習都是有價值的。

參考文獻:

[1] 曹玉波.Debug軟件在微機原理課程教學中的應用與實踐[J].吉林化工學院學報,2010.27(5):21-24

[2] 龍祖強,梁昔明,楊利容.匯編語言程序調試工具DEBUG淺析[J].衡陽師范學院學報,2008.29(6):33-35

[3] 董潔.淺談DEBUG程序的主要命令用法[J].赤峰學院學報,2007.23(5):61-62

[4] 孫丹嶺,蔣方炎.匯編語言和微機接口技術實驗教學探討[J].計算機教育,2011.17:43-45

[5] 錢曉捷.匯編語言程序設計[M].電子工業(yè)出版社,2000.

[6] 羅萬鈞.田立炎,馮子綱,馮世蔚.匯編語言程序設計[M].西安電子科技大學出版社,1998.

第3篇:匯編程序范文

匯編語言傳送指令是匯編語言中使用的一些操作符和助記符,還包括一些偽指令。

用于告訴匯編程序如何進行匯編的指令,它既不控制機器的操作也不被匯編成機器代碼,只能為匯編程序所識別并指導匯編如何進行。

(來源:文章屋網(wǎng) )

第4篇:匯編程序范文

關鍵詞 仿真技術 微機原理 EMU8086

隨著信息科學的發(fā)展,高校課程體系也在改革,微機原理的教學課時不斷被壓縮,這提高了實際講授和學習的難度,學生普遍反映難度大且不容易理解,教學效果一般。為了提高教學效率,并在一定程度上降低學習難度,本文依據(jù)筆者的教學經驗,借助多媒體教室的平臺優(yōu)勢,發(fā)揮CAD仿真工具直觀形象的功能特點,對微機原理課程的重點和難點部分做了課堂同步仿真演示,并對仿真過程和結果做出分析,取得了較好的教學效果,同時也調動了學生的積極性。

目前,計算機在高校圖書館和學生中相當普及,課下學生可在教師課件和仿真文件的幫助下,對課程的教學內容做仿真分析,這調動了學生學習積極性的同時也培養(yǎng)了獨立分析和解決問題的能力。在電子設計分析領域中,CAD仿真工具眾多,本文以EMU8086為仿真工具,結合實例介紹將仿真技術引入微機原理課堂教學中所體現(xiàn)的優(yōu)勢。

一、EMU8086軟件介紹

EMU8086是一款基于Windows平臺的8086微處理器仿真軟件,內部集成了匯編程序、連接器和調試器,并提供了豐富的設計例程和參考資料。該軟件可模擬真實微處理器運行程序的過程,也可單步執(zhí)行并顯示寄存器、存儲器、堆棧、標志寄存器以及變量的值,對數(shù)值的修改通過鼠標操作即可完成。另外,通過EMU8086還可模擬IO接口及顯示器、直流步進電機、交通紅綠燈和LED等外設。

二、EMU8086仿真在課堂教學中的運用

(一)源程序的輸入和編譯。在EMU8086環(huán)境下,系統(tǒng)提供了四套模板com/exe/bin/boot,分別用于簡單程序段、完整匯編程序、二進制源碼和啟動程序的高效輸入編寫。結合微機原理課程特點,本文選擇exe模板,輸入?yún)R編程序代碼如下:

data segment

x dd 11111111h

y dd 2222F222h

z dd ?

ends

stack segment

dw 128 dup(0)

ends

code segment

assume cs: code, ds:data, ss:stack

start:

mov ax, data

mov ds, ax

mov si, offset x

mov di, offset y

mov bx, offset z

mov ax, [si]

mov cx, [di]

add ax, cx

mov [bx], ax

mov ax, [si+2]

mov cx, [di+2]

adc ax,cx

mov [bx+2], ax

mov ah, 4ch

int 21h

ends

end start

該程序采用完整匯編程序結構編寫,用于完成存儲器中兩個32位二進制數(shù)的加法操作,并將結果送存儲器保存;其中涉及數(shù)據(jù)傳送指令、加法指令和中斷調用指令的使用。將源文件存盤后進行編譯,并根據(jù)系統(tǒng)提示修改可能出現(xiàn)的錯誤,編譯通過后即可進行模擬仿真。

(二)仿真分析。點擊工具欄emulate按鈕,即可對編譯得到的可執(zhí)行文件進行仿真,并出現(xiàn)如圖1所示的仿真界面:

仿真界面同時以窗口形式顯示了:源程序代碼、機器碼、反匯編代碼、通用寄存器值和段寄存器值等信息,方便使用者對照分析;底部擴展按鈕可用于查看標志寄存器、變量、堆棧段、存儲器、ALU數(shù)據(jù)。工具欄按鈕實現(xiàn)程序控制功能,如:reload可重新加載程序,run可運行程序,single back和single step可分別控制程序向后與向前單步執(zhí)行。在程序執(zhí)行中,各通用寄存器的值同步更新。

對本程序單步執(zhí)行“add ax, cx”指令后,寄存器AX的值更新為0333H,進位標志為1,實現(xiàn)了變量x和y的低16數(shù)據(jù)相加。在仿真界面也可得到如下信息:指令“add ax, cx”對應的機器碼為“07222:03H, 07223:C1H”,對應的反匯編指令為“add ax, cx”。

此仿真過程可以直觀形象地向學生展示CPU工作的狀態(tài)變化和工作原理,以及匯編和反匯編的對應信息。在實際課程教學的相關章節(jié)中適當添加EMU8086的仿真演示,可獲得較好的教學效果。

三、結束語

本文針對《微機原理》課程的特點,提出了將仿真技術引入課程教學的方法,并結合實例給出了仿真過程介紹和分析,提高了教學效率,調動了學生的積極性,是一種較好的教學方式,取得了較好的實際教學效果。

參考文件:

第5篇:匯編程序范文

李娜娜(1981-),女,商丘市人,本科,助理實驗師,研究方向:計算機教學與研究。

摘要:C語言和匯編語言原本各自獨立,在單片機程序設計中各具優(yōu)勢。為減輕程序開發(fā)難度,并提高程序的效率,將兩種設計語言混合是最好的方式。主要對混合編程機理以及函數(shù)的混合調用進行了分析。

關鍵詞:C語言;匯編語言;混合編0.引言

當前的單片機系統(tǒng)程序設計多依靠兩種設計語言完成,一是C語言,它具有良好的可讀性和較強的可移植性,不足之處在于難以精確控制程序的運行時間,而且編碼效率較低;二是匯編語言,其編碼效率高,但是可讀性并不理想,且數(shù)據(jù)運算處理函數(shù)設計極為復雜。在提高運行效率的同時,為了能降低開發(fā)難度,將C語言和匯編語言混合使用成了研究重點。

1.原理

設計人員在利用純匯編語言設計程序時,常會出現(xiàn)代碼重疊的情況,這就要求綜合代碼長度、代碼段的起始地址等因素加以考慮;設計中斷服務函數(shù)時,需保證代碼定位的準確性;使用數(shù)據(jù)段時,需合理分配寄存器空間,為提高對空間的利用率,通常還會涉及數(shù)據(jù)生存期等問題。如果使用純C語言進行編程,則無需考慮這些問題,可將其交由編譯器和連接器完成?;贑語言的程序最終經編譯器轉換,會形成包含有代碼段定位、寄存器使用狀況等信息的匯編語言文件。因此,在今后可以此匯編文件規(guī)范進行匯編程序的編寫工作,從而使得編譯器和連接器將C語言代碼和匯編代碼相結合。

2.函數(shù)的混合調用機制

2.1 函數(shù)特征及命名規(guī)則

在編寫函數(shù)時通常要考慮很多因素,如有無參數(shù)傳遞、有無返回值、是否是公共函數(shù)等。只有這些條件成立,才能成為函數(shù)。函數(shù)都有名稱,如在A51中 利用ACALL、LCALL兩個指令調用函數(shù),就以指令的操作函數(shù)作為函數(shù)名稱,在程序體內具有唯一性。匯編時調用C函數(shù),如果C函數(shù)無需依靠寄存器傳遞函數(shù),則ACALL的參數(shù)就是C函數(shù)的名稱;反之,ACALL的參數(shù)需要在C函數(shù)名稱前面加一個下劃線“_”。在編寫匯編函數(shù)時,需在利用寄存器傳遞參數(shù)的匯編函數(shù)名稱以下劃線開始。

2.2 參數(shù)傳遞方式

通常依靠以下兩種方式傳遞函數(shù)參數(shù):

①工作寄存器

對參數(shù)數(shù)量有限制,如果參數(shù)過多,則盡量選擇另一種方式。Keil編譯環(huán)境將工作寄存器作為默認的傳遞方式,若不能傳遞所有參數(shù),剩余的參數(shù)需要借助數(shù)據(jù)緩沖區(qū)完成。是否使用工作寄存器傳遞函數(shù)參數(shù),可通過編譯器人為地控制,如#pragma noregparms為禁止使用,#pragma regparms則表示開啟。指令與C函數(shù)的名稱也有關,因為不使用這種方式,那么就無需在C函數(shù)前面加下劃線。

雖然51單片機安裝有4個工作寄存器組,但一次只能使用一組。在C語言中常借助using n(n=0,1,2,…,n)來表示參與參數(shù)傳遞的寄存器組,n是其序號。應注意的是,若兩個參與參數(shù)傳遞的函數(shù)使用的寄存器組不是同一個,那么函數(shù)參數(shù)就無法正確地傳遞。這意味著在函數(shù)調用時盡量不要改變寄存器組。這4個寄存器組中有一個8字節(jié)的,最多只能傳遞3個參數(shù)。函數(shù)中傳遞參數(shù)最多的數(shù)量為4個。

②數(shù)據(jù)緩沖

在C函數(shù)中調用匯編函數(shù),因為全部細節(jié)在匯編函數(shù)內部都進行了處理,所以采用兩種方式的操作具有一致性。在匯編中處理C函數(shù)參數(shù)表的難度較大,尤其是訪問參數(shù)寄存器時。利用寄存器傳遞參數(shù)時,寄存器的地質具有固定性,可以直接訪問。然而采用數(shù)據(jù)緩沖的傳遞方式時,參數(shù)地址是由編譯器和連接器自動分配的,需采用偏移地址的方法才能確定參數(shù)具置。其實在這兩種傳遞方式中,參數(shù)都歸為函數(shù)的局部變量,但只有對數(shù)據(jù)緩沖區(qū)的參數(shù)才能通過偏移地址的方法訪問。

利用偏移地址訪問C函數(shù)的參數(shù)時,需在匯編中將調用的數(shù)據(jù)段首地址?fuc_name?BYTE通過extrn data(?func_name?BYTE)加以說明,然后通過MOV?func_name?BYTE+n,A等賦值指令進行訪問。

2.3 函數(shù)的聲明與定位

C語言程序中函數(shù)體的聲明為:void c_func(void)。這是一個名稱為c_func且沒有參數(shù)傳遞及返回值的函數(shù)??砂凑找韵路绞綄崿F(xiàn)函數(shù)體的定義:

Void c_func(void)

{

/*c_func()函數(shù)體*/

}

匯編語言包括有傳遞參數(shù)及無傳遞參數(shù)的兩種函數(shù),一般匯編程序設計時無需區(qū)分,但混合編程需要給編譯器一個函數(shù)是否有參數(shù)傳遞的標志,即函數(shù)名稱之前是否有下劃線。若有說明有參數(shù)傳遞,反之則沒有參數(shù)傳遞。

為提高程序的可移植性,需要對中斷項量表精確定位,其它函數(shù)則完全有連接器進行定位。不過這種情況并不絕對,比如需要給程序加密時應將某段代碼精確定位于一個固定的地址,此時便需要絕對定位。設計時可利用ORG、AT任意一個關鍵詞對代碼段進行定位,但若是數(shù)據(jù)段定位,只能選擇后者。

3.混合編程的應用分析

某類測量儀器主要用于檢測物體表面的污染程度,主控制器使用的是uPSD芯片psd3224,具有控制外設及處理數(shù)據(jù)等功能。在開發(fā)時需要對時間和時序進行嚴格控制,這就對匯編語言提出了較高的要求。另外,有大量數(shù)據(jù)需要處理,匯編語言難以完成,此時應選擇C語言編寫。最后將這兩種設計語言混合使用,既有利于提高代碼使用效率,又能夠起到簡化系統(tǒng)設計的作用。

因篇幅有限,在此只給出了部分程序,程序包含main.asm和file_c.c兩個文件。前者為匯編程序文件,里面包括主程序main和一個有參數(shù)傳入和傳出的控制函數(shù)char control(char);后者為C語言文件,包括一個8b與8b乘法的處理函數(shù)int process(char)。

ACALL_PROCESS

MOV A,R7;處理process()函數(shù)的返回值的低位

MOV B,R6;處理process()函數(shù)的返回值的高位

AJMP MAIN

;char control(char i);

PUBLIC_CONTROL;聲明control()為public型

?PR?_CONTROL;FILE_ASM SEGMENT CODE AT 0100H;control()函數(shù)的代碼段聲明

RSEG?PR?_CONTROL?FILE_ASM;control()函數(shù)代碼段的開始

{

int result;

result=i*100;

i=control(i);//調用匯編控制程序

Return result;

}

4.結束語

該儀器在程序設計時采用C語言和匯編語言混合的方法,使得程序設計更加簡單,開發(fā)周期有所縮短。測試結果表明,系統(tǒng)性能穩(wěn)定可靠,驗證了函數(shù)混合調用的安全性。可見,C語言和匯編語言混合編程能取得更好的效果,值得推薦應用。(作者單位:商丘職業(yè)技術學院)

參考文獻:

[1]張開便.C語言與匯編混合編程機理探析與應用[J].電腦開發(fā)與應用,2010,22(4):109-110

[2]袁靜萍.C與匯編混合編程技術及其應用實例[J].江蘇技術師范學院學報,2012,24(2):143-145

第6篇:匯編程序范文

二、怎么學習匯編:

1、匯編的調試環(huán)境總的來說比較少,也很少有非常好的編譯器。

2、設計的輕松匯編是一款非常適合初學者的匯編編譯器。輕松匯編是一個匯編語言集成開發(fā)環(huán)境,主要面向匯編語言初學者,也可以用它進行開發(fā)。

第7篇:匯編程序范文

關鍵詞:微機原理;接口技術;教學改革

作者簡介:王昊(1985-),男,江蘇泰州人,南京理工大學泰州科技學院,助教。(江蘇 泰州 225300)

中圖分類號:G642.0?????文獻標識碼:A?????文章編號:1007-0079(2012)31-0084-02

“微機原理與接口技術”是電子信息類專業(yè)的一門必修專業(yè)基礎課程。課程內容涉及8086CPU工作原理及匯編語言設計、存儲器工作原理及擴展設計、接口電路工作原理及應用設計三大方面,是一門兼有軟件設計與硬件電路設計的綜合應用性課程。[1]隨著計算機科學的發(fā)展,微機的應用也愈加廣泛,“微機原理與接口技術”課程在整個專業(yè)課程體系中也占據(jù)著越來越重要的地位,課程的教學質量好壞將直接影響學生后續(xù)課程的學習及畢業(yè)就業(yè)。因此,如何把握學生學習現(xiàn)狀,激發(fā)學生學習熱情,開拓學生思維,挖掘學生動手實踐能力,成為教學工作的重中之重。

一、“微機原理與接口技術”教學現(xiàn)狀

依據(jù)筆者所在學院“微機原理與接口技術”課程教學大綱安排,設定學分數(shù)為3,學時數(shù)為48,其中理論教學40學時,實驗教學8學時。教材選用彭虎、周佩玲編著,電子工業(yè)出版社出版的《微機原理與接口技術》,并配以其編著的《微機原理與接口技術學習指導》作為參考書。課程需要學生掌握匯編語言、8086微處理器與接口電路,目的旨在培養(yǎng)學生軟硬件開發(fā)能力。針對獨立學院學生特點,并結合兩屆學生的教學效果分析,發(fā)現(xiàn)傳統(tǒng)的教學過程中存在一些問題。

1.學生學習動力匱乏

現(xiàn)今微處理器已發(fā)展至64位,而本課程主講16位的8086/8088微處理器。部分學生認為課程學習16位微處理器缺少實際意義,沒有實際用處,從而導致學習能動性薄弱。

2.課程概念性強,記憶量大

“微機原理與接口技術”課程概念多、專用名詞多、接口芯片多、內容抽象,相互之間缺少必要的關聯(lián)和體系。學生面對大量的抽象概念,難以記牢,從而增加學習畏難情緒。

3.課程涉及軟硬件,難度較高

“微機原理與接口技術”是學生學習的第一門涵蓋軟件設計與硬件設計兩大方面的課程,其中軟件設計采用匯編語言。匯編語言與C語言風格差異較大,編程復雜。硬件設計電路接口豐富,對數(shù)電、模電相關知識應用要求較高。學生往往很難真正掌握微機與其接口電路的內部結構,很難形成匯編程序設計的思維方式,對教學內容似懂非懂,更不用說軟硬件開發(fā)能力的培養(yǎng)。同時,“微機原理與接口技術”也是一門教學難度較大的課程,存在學生基礎差異大的問題,教師很難把握教學的進度與深度。

4.課程實驗缺乏挑戰(zhàn)性

課程實驗基本為驗證性實驗。由教師給出匯編程序,給出電路接線圖,學生只需要將程序燒入微處理器,按照接線圖連接好各種線路,點擊調試運行按鈕,記錄實驗現(xiàn)象并撰寫實驗報告就可。整個實驗過程中,學生只是處于一個低級的操作工角色,很難激發(fā)學生的動手熱情。

二、“微機原理與接口技術”教學改革

針對上述教學現(xiàn)狀中存在的問題,本文從理論教學、實驗教學以及考核評價體系方面進行改革探索。

1.理論教學改革

“微機原理與接口技術”內容比較枯燥難懂,講課過程中經常出現(xiàn)學生聽課精神萎靡的現(xiàn)象。為了激發(fā)學生的學習興趣,達到預期的教學效果,在講課內容和講課方法上進行改革,充分調動學生學習的積極性和主動性。

(1)講解課程體系,提升學生課程認識。微機課程既是數(shù)電、模電的后續(xù)課程,又是單片機原理與應用、數(shù)字信號處理及嵌入式系統(tǒng)等課程的學習基礎,具有極強的承接作用。課堂教學中,講述微處理器從16位到64位的發(fā)展過程,梳理微機原理與接口技術、單片機、嵌入式系統(tǒng)的脈絡關系。例如,講述8086處理器結構,強調對單片機等處理器架構的影響;講述8086匯編語言,強調匯編語言在單片機、嵌入式課程中的應用;講述接口電路,復習數(shù)電、模電相關知識,同時涉及相同接口電路在單片機、嵌入式課程中的使用。通過對課程體系的講解,加強學生對課程意義的認識,改變認為微機課程無用的錯誤觀念。

(2)弱化抽象概念,突出重點、難點。微機課程只有40理論學時。在如此短的學時之內,要將各個知識點都講到,做到面面俱到,顯然是不現(xiàn)實的。因此,教學過程中,將概念進行篩選,舍去抽象、較冷僻的概念,只求學生重點掌握核心概念,從而消減其記憶量,將較多的課時安排到匯編程序編寫、接口電路的設計章節(jié)中。

(3)運用多媒體動畫,豐富講課形式。講課過程中,采用多媒體課件、FLASH動畫等現(xiàn)代化教學手段進行教學,將圖形、文字、動畫有機地結合在一起,豐富講課形式,增加學生學習興趣。例如,在8086尋址方式的教學過程中,8086的尋址方式共有8種,并且每種尋址方式都涉及到8086內部存儲器的相應操作,包括存儲器地址的形成和存儲器的讀寫,學生對此較難理解。為此,課堂上,利用FLASH,將存儲器地址的形成以及數(shù)據(jù)在存儲器中存入與取出的過程做成動畫,動態(tài)演示,富有感染力,使學生得到更多的視覺與聽覺的刺激,加速知識理解的過程。

第8篇:匯編程序范文

程序文件。org是游戲系統(tǒng)里自己調用的文件,一般除了本游戲,無法另外將其打開。org在匯編語言中是一條指令。其作用是告訴匯編程序,在開始執(zhí)行的時候,將某段機器語言裝載到內存中的哪個地址。如果沒有它,有些指令就不能正確地翻譯和執(zhí)行。由于這條指令不是機器語言中的直接指令,所以又被稱之為偽指令。另外,某些指令符號的含義也隨之變化。例如::RESB 0x1fe-$這條指令的含義是從現(xiàn)在開始,填寫0x00,直到0x001fe,而有了ORG指令后,美元符“$”的含義也隨之變化。它不再是指輸出文件的第幾個字節(jié),而是代表將要讀入的的內存地址。

文件格式(或文件類型)是指電腦為了存儲信息而使用的對信息的特殊編碼方式,是用于識別內部儲存的資料。比如有的儲存圖片,有的儲存程序,有的儲存文字信息。每一類信息,都可以一種或多種文件格式保存在電腦存儲中。每一種文件格式通常會有一種或多種擴展名可以用來識別,但也可能沒有擴展名。擴展名可以幫助應用程序識別的文件格式。對于硬盤機或任何電腦存儲來說,有效的信息只有0和1兩種。所以電腦必須設計有相應的方式進行信息-位元的轉換。對于不同的信息有不同的存儲格式。

(來源:文章屋網(wǎng) )

第9篇:匯編程序范文

關鍵詞:Keil;編程;調試;仿真

年來,隨著社會對人才素質要求的不斷提高和MCU51單片機的廣泛應用,社會已形成的學習單片機的熱潮,單片機在各行業(yè)中已經發(fā)揮了重要的作用,相適應的單片機軟件開發(fā)工具也種類繁多,在高校和業(yè)界最廣泛應用的是德國Keil Software公司的8051單片機軟件開發(fā)工具,它可用于眾多的8051及派生MCU以實現(xiàn)嵌入式應用開發(fā)。

一、系統(tǒng)要求

Keil運行的系統(tǒng)要求相對于現(xiàn)代計算機的主流配置來說是相當之低的,通常為了保證編譯器和工具的正常工作的Windows系統(tǒng)必須滿足軟件和硬件的最低配置為: 100 IBM 兼容386 或以上PC、Windows3.1 版或以上、至少4M 內存、硬盤至少有6MB 磁盤空間。

二、軟件開發(fā)流程

當使用Keil Software工具時的項目開發(fā)流程和其它軟件開發(fā)項目的流程極其相似:

1.創(chuàng)建一個項目從器件庫中選擇目標器件配置工具設置 ;2.用C語言或匯編語言創(chuàng)建源程序;3.用項目管理器生成你的應用;4.修改源程序中的錯誤;5.測試連接應用。

三、開發(fā)工具

(一)µVision集成開發(fā)環(huán)境

µVision IDE(目前使用的版本一般為µVision2或µVision3)是一個基于Windows的開發(fā)平臺包含一個高效的編輯器、一個項目管理器和一個MAKE工具。µVision有兩種操作模式:1.創(chuàng)建模式讓你編譯應用中所有的文件以產生執(zhí)行程序; 2.調試模式提供一個非常強勁的調試器你可以用它來調試你的程序。

(二)C51優(yōu)化的C語言交叉編譯器

Keil C51交叉編譯器是一個基于ANSI C標準的針對8051系列MCU的C編譯器,生成的可執(zhí)行代碼快速、緊湊,在運行效率和速度上可以和匯編程序得到的代碼相媲美。

(三)A51宏匯編器

A51是一個8051MCU系列的宏匯編器,它把匯編語言翻譯成機器代碼。該匯編器的宏特性讓公共代碼只需要開發(fā)一次從而節(jié)約了開發(fā)和維護的時間源。

(四)BL51具有代碼分段功能的連接/重定位器

BL51是具有代碼分段功能的連接/重定位器,它組合一個或多個目標模塊成一個8051的執(zhí)行程序。此連接器處理外部和全局數(shù)據(jù),并將可重定位的段分配到固定的地址上。

(五)LIB51庫管理器

該庫管理器讓用戶建立和維護庫文件。一個庫文件是格式化的目標模塊(由編譯器或匯編器產生)的集合。庫文件提供了一個方便的方法來組合和使用大量的連接程序可能用到的目標模塊,利用µVision項目管理器的Options for Target Output Create Library選項可以建造一個庫,也可以從命令行運行LIB51程序命令行參數(shù)。

(六)OH51 目標代碼到HEX文件的轉換器

此轉換器為絕對目標模塊創(chuàng)建Intel HEX格式的文件。

四、應用舉例

下面依托武漢偉福賽思電子有限公司的LabMCU51-X08(KF)單片機實驗板,通過設計數(shù)碼管的0-9每隔1秒跳動循環(huán)顯示來詳細分析Keil編輯源程序、調試、運行、仿真的各功能模塊。

(一)算法分析

為了更好實現(xiàn)源代碼的編寫,在具體編寫之前要整理好設計問題的核心算法。該設計涉及3個方面:定時器實現(xiàn)1s計時、數(shù)碼管顯示、0-9的數(shù)據(jù)查表,通過分析得出該設計的算法流程圖:(見圖1)

由于現(xiàn)在設計分析處理問題均應有工程理念,所以程序編寫第一步應新建工程項目,新建的工程項目名建議能準確描述項目含義,例如該設計問題可命名為DigitalDisplay,工程保存的后綴名為.uv2,接下來Keil環(huán)境要求為該工程進行單片機的芯片選型,我們選擇Atmel公司的89C51系列,然后工程建立完畢。

接下來新建一個源程序文件,這里我們選用匯編程序代碼,保存為文件的后綴名為DisplayLoop.asm(如選用C51程序代碼,后綴名為.c)。利用編輯器進行代碼編寫,編輯器有語法分析功能,不同的語言成分會程序不同的顏色,可幫助用戶及時發(fā)現(xiàn)錯誤。代碼編寫完畢后將源文件添加到項目目錄下,具體操作為: 鼠標右鍵點擊 “Source Group 1”,在彈出的菜單中選“Add Files to Group ‘Source Group 1’”:,選擇編寫的源文件,這樣文件就添加到了工程中。

(三)程序運行

源程序編寫完成之后,利用Keil的編譯器進行編譯運行,具體操作為:點擊Project->Build Target 或者 點擊工具欄的圖標。如若程序無語法錯誤,在Keil的Build Window 會顯示 “DigitalDisplay ― 0 Error(s),0 Warning(s)”。由于要將程序最終寫入單片機芯片中,所以我們要生成HEX(16進制)文件或BIN(2進制)文件,Keil也提供了這一便利:右鍵點擊“Target 1”,在彈出的菜單中選擇“Option for Target 1”,在打開的對話框中選擇“Output”選項卡,在選項卡中的“Create HEX File”選項前打勾,Rebuild all target files之后匯編、連接、創(chuàng)建HEX文件一氣呵成,在工程中會生成與工程名相同的一些文件,如:DigitalDisplay.hex,這是我們燒入芯片所需要的文件。

(四)調試仿真

如若編寫的源程序有語法錯誤或者寫入芯片后,硬件顯示出來的效果與預期設計的不一樣,即邏輯錯誤時,我們就需要應用Keil的第二種操作模式:調式模式。點擊工具欄的圖標或者在菜單欄選擇“Start Debug Session”。

而且在實際應用中,如果每次將程序寫入芯片來進行操作會增加操作成本,比如我們所使用的AT89S52的重復燒寫次數(shù)為1000次左右,芯片的批發(fā)單價在7.5元/片,當程序較長邏輯較復雜時,重復燒寫是不經濟的,所以利用Keil的仿真功能是很重要的。Keil中可仿真的設備有:Interrupt System(中斷系統(tǒng))、I/O-Ports(I/O口)、Serial(串口)、Timer(定時器)。仿真可分為軟件模擬仿真和硬件仿真,兩者區(qū)別在于前者不需要外接任何硬件,只是在PC機上用純軟件的形式模擬目標程序的運行,后者需要外接仿真器和目標系統(tǒng)。µVision可提供的調試手段有:CPU程序計數(shù)器復位(Reset CPU)、連續(xù)運行直到斷點或程序結束(Go)、停止運行(Stop Running)、單步運行(Step)、單步跨越(Step Over)等。以本項目為例,進入調試模式后(如圖5),調出“Memory Window”和Peripherals中的“Timer-Timer 0”,接著單步運行程序,首先可通過存儲器窗口觀察到查表存數(shù)據(jù)的過程,同時關注左邊寄存器窗口各所用到的寄存器值的變化是否符合自身事先的設計變化思路;接下來程序依次選擇了定時器0的工作方式、設置定時器初值、開啟中斷后開始計數(shù)、進入等待中斷。我們可以來觀看Timer/Counter窗口,當定時器開始計數(shù)后,“TR0”被選中,“Status”中內容由“Stop”轉變?yōu)椤癛un”,T0由4C00H計數(shù)到達FFFFH,再經過1個機器周期,計數(shù)溢出,“TF0”被置1,選項被選中(我們也可手動選中該項,使T0的中斷請求位TF0置1),產生中斷信號,程序從定時器0的中斷向量入口地址000BH進入,執(zhí)行顯示的中斷服務子程序。由此可見Keil在模擬仿真設備的優(yōu)越性和對于程序調試的便利性。

五、結語:

本文通過Keil在單片機系統(tǒng)中的具體應用實例將其功能模塊做了較詳細的介紹,將其把單片機原理的學習和實踐可以很好的貫穿起來,充分發(fā)揮“理論指導實踐,實踐帶動理論”的教育教學方式。

參考文獻:

[1]陳濤.單片機應用及C51程序設計[M].機械工業(yè)出版社,2008.

[2]潘永雄.新編單片機原理與應用實驗[M].西安:西安電子科技大學出版社,2005

精選范文推薦