彙編程式設計實驗指導書

2021-03-04 01:20:10 字數 4389 閱讀 3095

仰恩大學電子工程系實驗教材系列

8086/8088組合語言程式設計

實驗指導書

電子工程系編

2023年1月

安全用電是實驗中始終需要注意的重要問題。為了做好實驗,確保人身和

裝置的安全,實驗時,必須嚴格遵守下列安全用電規則:

(1) 接線、改接、拆線都必須在切斷電源的情況下進行,即「先接線後通

電,先斷電再拆線「。

(2) 在電路通電情況下,人體嚴禁接觸電路不絕緣的金屬導線或連線點等

帶電部位。萬一遇到觸電事故,應立即切斷電源,進行必要的處理。

(3) 實驗中,特別是裝置剛投入執行時,要隨時注意儀器裝置的運**況,

如發現有超量程、過熱、異味、異聲、冒煙、火花等,應立即斷電,並請老師

檢查。 (4) 實驗時應精神集中,同組者必須密切配合,接通電源前須通知同組同

學,以防止觸電事故。

(5) 電機轉動時,防止導線、髮辮、圍巾等物品捲入。

(6) 了解有關電器裝置的規格、效能及使用方法,嚴格按額定值使用。注

意儀表的種類、量程和連線使用方法,例如,不得用電流錶或萬用表

的電阻檔,電流檔去測量電壓;電流錶、功率表的電流線圈不能併聯

在電路中等等。

(7) 請穿絕緣膠鞋進入實驗室。

第一部分 8088/8086組合語言上機實驗指導

一、上機實驗目的1

二、上機前的準備1

三、用「記事本」編輯彙編的源程式1

四、ma**.exe編譯程式的執行1

五、link.exe 生成可執行檔案的執行2

六、debug.exe 除錯程式的執行2

七、ma** for windows整合實驗環境3

第二篇組合語言程式設計上機實驗

實驗一:執行乙個簡單的組合語言源程式4

實驗二:debug命令的使用6

實驗三:變數的屬性8

實驗四:dos功能的呼叫與延時程式11

實驗五: 綜合實驗14

實驗六:串操作實驗19

實驗七:子程式設計實驗23

第一部分 8088/8086組合語言上機實驗指導

一、上機實驗目的

1.初步了解8086/8088匯程式設計序的基本結構,利用windows xp附件的記事本編輯簡單的

組合語言源程式,形成擴充套件名為 .a** 的文字檔案格式(即彙編源程式)。

2. 學習巨集匯程式設計序ma**.exe ,連線程式link.exe,除錯程式 debug .exe的使用。

3. 在微機上、在「ma** for windows整合實驗環境」下,執行並除錯8086/8088彙編源程式。

二、上機前的準備

1. pc機的作業系統可以是windoes98,也可以是windows xp等作業系統。

2.硬碟上安裝「ma** for windows整合實驗環境」軟體。或者含有ma**、link、debug等

檔案的ma**5資料夾。(windows xp自帶debug檔案,因此應刪除ma**5資料夾中的debug

檔案,否則會產生衝突。)

3. 學習ma**、link、debug三個檔案的使用方法。

4. 準備好上機的源程式,並認真去讀懂它。

(注:下面介紹的不是「ma** for windows整合實驗環境」軟體的使用方法,而是直接在dos狀態下,使用ma**、link、debug三個檔案的方法。首先應將ma**5資料夾安裝在c盤或d盤的根目錄下)

三、用「記事本」編輯彙編的源程式

1. 用「記事本」編輯好原始檔lh, lh假設為李華同學的源程式檔名(下同),則檔名是

lh.a** ,檔案的副檔名一定要用.a**。然後儲存在c:\ma**5>的資料夾中。

2.編輯源程式時,注意不要有空行、游標也不要超過最後一行。

四、ma**.exe編譯程式的執行

ma**.exe編譯程式主要目的是生成擴充套件名為.obj的目標檔案。

在dos狀態下,進入ma**5資料夾中,即螢幕顯示c:\ma**5>。此時鍵入ma**,回車後螢幕顯示:

source filename[.a**]:

鍵入.a**檔案的檔名,如下:

source filename[.a**]:lh (回車)

object filename[lh.obj]: (回車)

source listing [nul.lst]:lh(回車)

如果lh.a**檔案正確,會生成目標檔案(lh.obj)與列表檔案(lh.

obj)。彙編的目的是要形成目標檔案,即機器**檔案,也就是lh.obj檔案。

該檔案不是文字檔案,因此用編輯軟體是看不到的,看到的只是一些亂碼。

列表檔案(lh.obj)是非常重要的乙個檔案,它將一條彙編語句指令與一條機器碼指令對應起來,並且給出了這條指令偏移位址的首位址。它對程式的分析非常有用,而且有助於組合語言的學習。

五、 link.exe 連線程式的執行

link.exe 連線程式的主要目的是生成擴充套件名為.exe可執行程式。在c:\ma**5>子目錄下,鍵入link,回車後螢幕顯示:

object modules[.obj]:

鍵入obj檔名,如下:

object modules[.obj]:lh (回車)

run file [lh.exe回車)

list file [nul.map]:lh (回車)

擴充套件名為.exe程式是在dos狀態下的可執行程式。你只要鍵入lh.exe檔案的檔名lh就可以執行程式。 擴充套件名為.map的lh.map程式是映像檔案。

六、debug.exe 除錯程式的執行

debug是除錯程式,它是可以對exe可執行程式進行除錯。在dos狀態下,鍵入:

c:\ma**5>debug lh.exe

回車後螢幕顯示:

-上面的『-』是debug狀態下的提示符,表示目前系統在debug的控制之下。我們主要學習

debug的q,r,u,g,d,e,f,t 命令。這些命令的使用方法是在『-』提示符後鍵入相應

命令的字母,如:

-q回車後就立即返回dos狀態。上面各命令分別解釋如下:

1. -q 表示退出debug狀態。

2. -r 顯示cpu中除flag暫存器外的14個暫存器的內容,對於flag暫存器只顯示它的of,

df,if,sf,zf,af,pf,cf的狀態。它是用兩個字母來表示是0還是1的。表示的字母

如下: 如想檢視某一暫存器的內容,可在-r後鍵入暫存器名,如:

-r ax

ax 2b6f

: 1200

上面第二行2b6f為ax中的內容,第三行冒號後的1200為你鍵入的要修改的內容。

3. -u 它是反彙編除錯命令。(選看)

因為被除錯的程式lh.exe是機器碼語言,必須翻譯成組合語言程式人們才好讀懂。注意反彙編的範圍是在本段內。該命令有下面三種格式:

-u它是將當前cs:ip所指的位址開始的機器碼反彙編32個位元組指令。)

-u位址位址是反彙編開始的位址,可以是偏移位址也可以是邏輯位址。如:

-u 2a002a是反彙編開始的偏移位址]

-u 11d0:0100 [11d0:0100是反彙編開始的邏輯位址] )

-u 位址1 位址2 -----(從位址1反彙編到位址2,如:

u 10 5f [從當前段的偏移位址0010反彙編到005f]

u 01f5:10 5f [從01f5段的0010偏移位址開始反彙編到本段

的005f為止]

4. -g 它是設定斷點及啟動程式執行命令。它有三種格式:

-g斷點是程式結束,它從當前cs:ip所指位址開始直到程式結束。)

-g=位址從指定的位址開始直到程式結束)

-g=位址1 位址2 ----(從指定的位址1開始執行到位址2結束)

5. -d 它是顯示記憶體單元內容命令。它有兩種格式:

-d位址 -----(顯示從當前位址開始的記憶體128個位元組的內容,如:

d ds:00 [顯示從ds所表示的資料段段位址,偏移位址0000開始

的128個位元組的內容])

-d位址1 位址2 -----(顯示從位址1開始到位址2所有單元的內容,如:

d ds:00 ff

[顯示從ds所表示的資料段段位址,偏移位址0000開始到

偏移位址為00ff結束的所有單元的內容])

6. -e 一次修改乙個記憶體單元內容命令。格式為:

-e 位址命令輸入後顯示該位址所指示單元的內容,此時可鍵入要修改的

內容。修改後可按回車鍵或空格鍵,按回車鍵為結束修改,按空

格鍵可繼續修改下一單元的內容)

7. -f 將記憶體中若干個連續單元賦與同一數值,也就是修改。常用該命令給記憶體某一區域清零。如:

-f ds:00 3f 00 -----(將位址為ds:0000~ds:003f的64個單元內容設為00h,也就是對這64個單元清零)

組合語言程式設計實驗指導書

計算機工程教研室 實驗課程 組合語言程式設計 適用專業 電腦科學與技術專業 上海應用技術學院 2012年3月 目錄目錄 i 前言 1 上機實驗的要求和步驟 1 實驗報告的要求 2 組合語言上機操作簡介 3 編輯 3 彙編 3 連線 5 執行和除錯 5 實驗一資料定義和資料傳送 8 實驗二多項式運算 ...

程式設計 實驗指導書

實驗的總體要求與方法 實驗是鞏固課堂所學知識 掌握視覺化程式設計的方法 提高分析問題和解決問題能力的最重要的途徑。因此明確實驗目的 內容與要求 實驗步驟及實驗規則,一方面有助於實驗任務的順利完成,另一方面也有利於養成嚴謹科學的作風。每個實驗都要遵循認真預習準備 認真做好實驗 認真寫好實驗報告三個階段...

彙編實驗指導書

實驗一 熟悉上機過程 分支與迴圈程式設計 一 實驗目的 1 熟悉tdpit 整合環境的使用和除錯軟體的方法 2 熟悉指令在程式中的使用 3 迴圈和分支程式設計與除錯練習 二 實驗內容 1 在程式的資料區定義變數,觀察並記錄反彙編後的顯示,注意並思考資料在記憶體中是如何存放的。buf1 db 1,2,...