仰恩大學電子工程系實驗教材系列
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,...