酷知百科網

位置:首頁 > 母嬰教育 > 學習交流

彙編語言程序的上機過程

本處文檔結合大學階段《微機原理與接口技術》,彙編語言也是大學階段重要的計算機語言,希望借實驗說明讓大家更好理解彙編語言這一塊。

彙編語言程序的上機過程

操作方法

(01)一、 建立彙編語言的工作環境爲執行彙編語言程序至少要在磁盤上建立以下檔案:1、 編輯程序,如2、 彙編程序,如3、 連接程序,如4、 調試程序,如必要時,還可建立如,等檔案。

彙編語言程序的上機過程 第2張

(02)二、在計算機上執行彙編語言的步驟1、 用編輯程序建立ASM源檔案,以ASM作爲副檔名2、 用匯編程序把ASM檔案轉換成OBJ檔案3、 用連接程序把OBJ檔案轉換成可執行檔案4、 在DOS提示符下直接鍵入可執行檔案名即可執行該程序

彙編語言程序的上機過程 第3張

(03)三、 建立ASM檔案建立ASM檔案的編輯程序可以是DOS自身帶的編輯程序,在DOS提示符下鍵入EDIT命令即可出現EDIT介面,其操作如下:D:>edit源程序輸入完後,以ASM作爲副檔名進行儲存,假設所儲存的檔案名爲:。ASM源檔案的格式1:;定義數據段,如果需要的話,其中segment和ends是一對僞操作,表示段的開始和結束data segment ;數據段開始;定義數據段的主體,如定義變量data ends ;數據段結束;定義附加段,如果需要的話extra segment ;附加段開始;定義附加段的主體,如定義變量extra ends ;附加段結束;定義代碼段,必須的code segment ;代碼段開始main proc far ;程序的主體部分,proc和endp這一對僞操作表示一個程序模組的開始和結束assume ds:data, es:extra, cs:code ;assume 僞操作指定某個段分配給哪個段寄存器start: ;程序的入口地址push ds ;儲存原數據段sub ax,ax ;ax寄存器清零,作爲數據段0偏移地址push ax ;數據段0偏移地址壓入堆棧中mov ax,datamov ds,ax ;把數據段地址裝入數據段寄存器dsmov ax,extramov es,ax ;把附加段地址裝入附加段寄存器es;自己所要實現的功能原始碼在此添加ret ;程序結束後返回DOSmain endp  ;程序的主體部分結束code ends ;代碼段結束end start  ;彙編程序的結束,程序在start處開始執行ASM源檔案的格式2:;定義數據段,如果需要的話,其中segment和ends是一對僞操作,表示段的開始和結束data segment ;數據段開始;定義數據段的主體,如定義變量data ends ;數據段結束;定義附加段,如果需要的話extra segment ;附加段開始;定義附加段的主體,如定義變量extra ends ;附加段結束;定義代碼段,必須的code segment ;代碼段開始main proc far ;程序的主體部分,proc和endp這一對僞操作表示一個程序模組的開始和結束assume ds:data, es:extra, cs:code ;assume 僞操作指定某個段分配給哪個段寄存器start: ;程序的入口地址mov ax,datamov ds,ax ;把數據段地址裝入數據段寄存器dsmov ax,extramov es,ax ;把附加段地址裝入附加段寄存器es;自己所要實現的功能原始碼在此添加mov ax,4c00h ;程序結束後返回DOSint 21hmain endp  ;程序的主體部分結束code ends ;代碼段結束end start  ;彙編程序的結束,程序在start處開始執行該步以及以下幾步在電腦上一邊講解,一邊演示給同學們看。

彙編語言程序的上機過程 第4張
彙編語言程序的上機過程 第5張
彙編語言程序的上機過程 第6張
彙編語言程序的上機過程 第7張
彙編語言程序的上機過程 第8張

(04)四、 用MASM程序產生OBJ檔案源檔案建立後,就要用匯編程序對源檔案彙編,彙編後產生二進制目標檔案(以OBJ作爲副檔名),其操作如下:D:>masm 彙編程序輸入的是ASM檔案,其輸出檔案可以是3個,第一個是OBJ檔案,這是我們彙編的主要目的。第二個是LIST檔案,稱爲列表檔案,這個檔案列出源程序和機器語言程序清單,並給出符號表,因而可使程序調試更加方便,這個檔案可有可無,如果不需要,則可對[]直接按回車鍵。LST清單的最後部分爲段名錶和符號表,表中分別給出段名、段的大小及有關屬性,以及用戶定義的符號名、類型和屬性。第三個是CRF檔案,這個檔案用來產生交叉引用表REF,對於一般程序不需要建立此檔案。爲了建立交叉引用表,必須調用CREF程序。至此,彙編過程已經完成了。但是,彙編程序還有另一個重要功能,可以給出源程序的出錯資訊。警告資訊(warning errors)指出彙編程序所認爲的一般性錯誤,嚴重警告錯誤(severe errors)則指出彙編程序認爲已使彙編程序無法進行正確彙編的錯誤。除給出錯誤的個數外,彙編程序還給出出錯資訊,包括出錯的行和錯誤類型。當然彙編程序只能給出程序中的語法錯誤,至於程序的算法或編制程序中的其他錯誤則程序的調試時去解決。

彙編語言程序的上機過程 第9張

(05)五、 用LINK程序產生EXE檔案在DOS提示符下鍵入LINK命令即可,具體的操作如下:D:>link INK程序有兩個輸入檔案OBJ和LIB。OBJ是我們需要連接的目標檔案,LIB則是程序中需要用到的庫檔案,如果程序中沒有用到庫檔案,則直接按回車健。LINK程序有兩個輸出檔案EXE和MAP檔案,EXE檔案就是可執行檔案,MAP檔案是連接程序的列表檔案,又稱爲連接映像,它給出每個段在存儲器中的分配情況。

彙編語言程序的上機過程 第10張
彙編語言程序的上機過程 第11張

(06)六、 程序的執行在DOS提示符下直接鍵入可執行的檔案名即可,具體的操作如下:D:>ex

彙編語言程序的上機過程 第12張

(07)七、 舉例下面這個原始碼的功能是在屏幕上顯示一個字元串“This is my first ASM program.”。data segmentstring db 'This is my first ASM program.',13,10,'$'  ;字元串以’$’符號結尾,以單引號括起來data endscode segmentmain proc farassume cs:code,ds:data ;assume 僞操作指定某個段分配給哪個段寄存器,但它不能把段地址裝入段寄存器中start: ;程序的入口地址push ds ;save old data segmentsub ax,ax ;ax寄存器清零,作爲數據段0偏移地址push ax ;零偏移地址入棧mov ax,datamov ds,ax ;把數據段地址裝入數據段寄存器dslea dx,string ;把字元串首地址裝入dx寄存器,或寫成mov dx, offset stringmov ah,9 ;DOS功能調用,在屏幕上顯示字元串int 21h ;DOS中斷ret ;return to DOSmain endpcode endsend start ;彙編的結束,程序在此執行

彙編語言程序的上機過程 第13張
標籤:彙編語言 上機