




已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
匯編語言程序設計實驗講義(第二版)電子信息教研室 編楚雄師范學院物理與電子科學系2007年9月 前 言本講義根據物電系電子信息科學與技術專業(yè)匯編語言程序設計教學大綱編寫,適用于電子信息科學與技術、計算機及電類有關專業(yè)。本講義由徐衛(wèi)華編寫,其第一版完成于2003年3月,供我系電信04級使用。根據使用情況,經過修訂,現在印刷第二版,供我系電信專業(yè)使用。編者目 錄實驗一匯編語言程序的建立和執(zhí)行1實驗二調試程序的使用3實驗三數據傳送、算術運算、位操作類指令4實驗四轉移、循環(huán)和子程序類指令5實驗五中斷指令及功能調用6實驗六串操作類指令7實驗七分支結構、循環(huán)結構程序設計8實驗八子程序設計9實驗九綜合性/設計性實驗(小論文)10附錄調試程序CodeView的使用及DEBUG常用命令11附錄2ASCII碼表14附錄3常用的DOS系統(tǒng)功能調用15實驗一匯編語言程序的建立和執(zhí)行一、實驗目的構建匯編語言的編程環(huán)境。熟悉在PC機上建立、匯編、連接、調試和運行匯編語言程序的過程。了解一個完整的匯編語言源程序的格式,包括常用的指令、偽指令的使用。二、實驗內容構建匯編語言的編程環(huán)境解壓MASM615.EXE自解壓軟件包:DOS-MASM615.EXE,自動建立文件夾D:ML615,該文件夾下已包含匯編語言編程時所需的匯編程序、連接程序、調試程序,見MASM615.EXE軟件包說明文件readme.txt??截愇募AUltraEdit至D:ML615下,UltraEdit文件夾下包含編輯器Uedit32.exe。編輯源程序打開Uedit32.exe,錄入教材lt301a.asm源程序:.model small.stack.datastring db hello!,0dh,0ah,$.code.startupmov dx,offset stringmov ah,9int 21h.exit 0end以lt301a.asm命名并保存該文件于文件夾D:ML615下。匯編連接源程序進入WindowsXP的DOS方式,進入D:ML615,運行:ML lt301a.asm若有語法錯誤,返回第2步,直至無錯誤。此時,可產生可執(zhí)行文件lt301a.asm.exe。將lt301a.asm.exe調入CodeView,進行常用的操作。6錄入教材lt301b.asm源程序,重復第2、3、4、5步,進一步熟悉在PC機上建立、匯編、連接、調試和運行匯編語言程序的過程。三、實驗報告記錄實驗過程及程序運行結果。實驗二調試程序的使用一、實驗目的掌握調試程序CodeView的使用方法。二、實驗內容利用模板文件啟動CodeView。利用命令窗口的匯編A命令匯編第一章尋址方式中的各個示例指令。通過設置參數、單步執(zhí)行、觀察執(zhí)行結果,加強對各種尋址方式的理解;同時熟悉CodeView的基本操作。三、實驗報告記錄實驗過程及程序運行結果。實驗三數據傳送、算術運算、位操作類指令一、實驗目的掌握常用的數據傳送類、算術運算類、位操作類指令的使用方法。二、實驗內容調試例題2.1、例題2.6、例題2.8,正確理解MOV、XCHG、XLAT指令的用法;單步執(zhí)行、觀察運行結果并與自己的判斷進行比較,寫出正確結果。調試例題2.17a、例題2.18a、例題2.19,例題2.26,正確理解加法、減法指令及其對狀態(tài)標志位的影響。調試例題2.28、例題2.29、例題2.30、例題2.33,掌握邏輯指令和移位指令的用法,注意它們對狀態(tài)標志位的影響。三、實驗報告記錄實驗過程及程序運行結果。實驗四轉移、循環(huán)和子程序類指令一、實驗目的掌握常用的轉移、循環(huán)和子程序類指令的使用方法。二、實驗內容調試例題2.38、例題2.43、例題2.45,注意CS、IP、CX寄存器及其有關狀態(tài)標志的變化,掌握轉移、循環(huán)和子程序指令的用法。上機完成習題2.25、習題2.29,寫出正確結果。三、實驗報告記錄實驗過程及程序運行結果。實驗五中斷指令及功能調用一、實驗目的掌握中斷指令的使用方法。掌握系統(tǒng)功能調用方法二、實驗內容調試例題2.46、例題2.47、例題2.50,觀察運行結果,熟悉系統(tǒng)功能調用的步驟。注意單步執(zhí)行中斷指令時,用P命令(不要用T命令)。上機完成習題2.36,執(zhí)行并寫出正確結果。三、實驗報告記錄實驗過程及程序運行結果。實驗六串操作類指令一、實驗目的掌握串操作類指令的使用方法。二、實驗內容1調試例題2.52、例題2.54、例題2.55,觀察內存數據的變化以及SI、DI和CX寄存器內容的變化,掌握串操作類指令的用法。上機完成習題2.15、習題2.16,寫出正確結果。三、實驗報告記錄實驗過程及程序運行結果。實驗七分支結構、循環(huán)結構程序設計一、實驗目的掌握分支結構程序設計方法。掌握循環(huán)結構程序設計方法。二、實驗內容調試例題4.3、例題4.4,熟悉分支程序設計方法。上機完成習題4.9、習題4.10、習題4.11,生成可執(zhí)行文件并執(zhí)行。上機完成例題4.7,增加顯示給定字符串的功能。上機完成例題4.8,熟悉循環(huán)結構程序設計方法,上機完成習題4.18、4.19,生成可執(zhí)行文件并執(zhí)行。三、實驗報告記錄實驗過程及程序運行結果。實驗八子程序設計一、實驗目的掌握子程序設計方法二、實驗內容上機完成例題4.10,熟悉子程序設計方法。上機完成習題4.29,寫出正確結果。三、實驗報告記錄實驗過程及程序運行結果。實驗九綜合性/設計性實驗(小論文)一、實驗目的通過實驗,掌握對匯編語言指令的綜合應用以及分支結構、循環(huán)結構和子程序設計方法。二、實驗內容綜合應用80X86的所有指令及常用的程序設計方法,自選一個題目,完成一篇小論文。三、實驗報告提交論文。附錄調試程序CodeView的使用及DEBUG常用命令一、CodeView的使用1、功能鍵F2:顯示/隱含的寄存器組窗口F3:以不同的顯示方式顯示當前執(zhí)行的程序F4:以不同的顯示方式顯示當前執(zhí)行的程序F5/F7:執(zhí)行到下一個邏輯斷點,或到程序尾F6:依次進入當前屏幕所顯示的窗口F8:單步(跟蹤)執(zhí)行指令,并進入被調用的子程序F9:在源程序行中設置/取消斷點,用鼠標左鍵雙擊之也可F10:單步執(zhí)行指令,但不進入被調用的子程序Alt+F9:進入命令行2、命令窗口在該窗口中,可輸入前面介紹的DEBUG命令。3、寄存器組窗口可以直接在寄存器組窗口內修改各寄存器的內容和各標志位,還可以用Options菜單中的“32-Bit Registers”菜單項來切換16位和32位寄存器。二、DEBUG常用命令1、啟動DEBUG的一般命令如下:DEBUG 文件名 參數表其中:文件名指定被調試的文件,其包括名和后綴,參數表是被調試文件運行時所需要的參數。被調試的文件可以是系統(tǒng)中的任何文件,但通常它們的后綴為EXE或COM。當DEBUG啟動成功后,將顯示連接符“-”,這時,可輸入各種命令。表1 DEBUG中標志位的符號表示標志名稱溢出OF方向DF中斷IF負號SF零ZF輔助進位AF奇偶PF進位CF置位狀態(tài)OVDNEINGZRACPECY復位狀態(tài)NVUPDIPLNZNAPONC表2 DEBUG命令及其含義命令格式功能說明A 地址輸入匯編指令C 范圍 起始地址對由“范圍”指定的區(qū)域與“起始地址”指定的同大小區(qū)域進行比較,顯示不相同的單元D 范圍顯示指定范圍內的內存單元內容E 地址 字節(jié)值表用值表中的值替換從“地址”開始的內存單元內容F 范圍 字節(jié)值表用指定的字節(jié)值表來填充內存區(qū)域G =起始地址 斷點地址從起點(或當前地點)開始執(zhí)行,到終點結束H 數值1 數值2顯示二個十六進制數值之和、差I 端口地址從端口輸入L 地址 驅動器號 扇區(qū) 扇區(qū)數從磁盤讀M 范圍 地址把“范圍”內的字節(jié)值傳送到從“地址”開始的單元N 文件標識符 文件標識符指定文件名,為讀/寫文件做準備O 端口地址 字節(jié)值向端口輸出P =地址 指令數按執(zhí)行過程,但不進入子程序調用或軟中斷Q退出DEBUG,不保存正在調試的文件R 寄存器名顯示和修改寄存器內容S 范圍 字節(jié)值表在內存區(qū)域內搜索指定的字節(jié)值表。如果找到,顯示起始地址,否則,什么也不顯示T =地址 指令數跟蹤執(zhí)行,從起點(或當前地點)執(zhí)行若干條指令U 范圍反匯編,顯示機器碼所對應的匯編指令W 地址 驅動器號 扇區(qū) 扇區(qū)數向磁盤寫內容,(BX、CX)為寫入字節(jié)數2、關于參數的幾點說明:(1)進制:在DEBUG中輸入或顯示的數據都是十六進制形式;(2)分隔:命令和參數、參數和參數之間要用空格、逗號或制表符等分隔;(3)地址:用“段值:偏移量”的形式來表示地址,也可用段寄存器來代表“段值”;例如:1000:0,ds:10,cs:30等;(4)范圍:用來表示地址范圍,從哪個地址開始,到哪個地址結束。它有二種表示方式:地址 地址前者表示起始地址,要用“段值:偏移量”來表達,后者表示終止地址,只用“偏移量”來表示;地址 長度前者表示起始地址,要用“段值:偏移量”來表達,后者表示該區(qū)域的大小,用字母L開頭的數值來表示例如:100:50 100段值為100,偏移量從50到100的內存區(qū)域,100:50 L100段值為100,偏移量從50開始的100個字節(jié)區(qū)域。(5)端口地址:二位十六進制數值(6)字節(jié)值:二位十六進制數值(7)字節(jié)值表:由若干個字節(jié)值組成,也可以是用引號括起來的字符串(8)驅動器號:0驅動器A、1驅動器B、2驅動器C、3驅動器D等3、關于使用命令的幾點說明:(1)在DEBUG中的提示符“-”下才能輸入命令,在按“回車”鍵后,該命令才開始執(zhí)行(2)命令是單個字母,命令和參數的大小寫可混合輸入(3)可用F1、F2、F3、Ins、Del和光標移動鍵等來編輯本行命令(4)當命令出現語法錯誤時,將在出錯位置顯示“ Error”(5)可用C或Break來終止當前命令的執(zhí)行,還可用S來暫停屏幕顯示(當連續(xù)不斷地顯示信息時)附錄2ASCII碼表附錄3常用的DOS系統(tǒng)功能調用1、 什么是DOS系統(tǒng)功能調用? 系統(tǒng)功能調用是DOS為用戶提供的常用子程序(80多個),可在匯編語言程序中直接調用。這些子程序的主要功能包括: (1)設備管理(如鍵盤、顯示器、打印機、磁盤等的管理) (2)文件管理和目錄操作 (3)其他管理(如內存、時間、日期等管理) 這些子程序給用戶編程帶來很大方便,用戶不必了解有關的設備、電路、接口等方面的問題,只需直接調用即可。 2、 調用方法 DOS功能調用的子程序已按順序編號功能號(00H68H),其調用方法是: (1) 功能號AH (2) 入口參數指定寄存器 (3) INT 21H 用戶只須給出以上三方面信息,DOS就可根據所給信息自動轉入相關子程序執(zhí)行。 3、常用的系統(tǒng)功能調用 (1)返回DOS 向量號 21H 功能號 4CH (2)鍵盤輸入并顯示 向量號 21H 功能號 1 該功能從鍵盤輸入一個字符,將其ASCII碼保存在AL中,輸入字符回顯在CRT上。 (3)鍵盤輸入但不顯示輸入字符 向量號 21H 功能號 8 該功能從鍵盤輸入一字符,將其ASCII碼保存在AL中,但不顯示。這種功能往往在設置口令時使用。 (4)顯示一字符 向量號 21H 功能號 2 入口參數:DL=待顯示字符的ASCII碼。該功能顯示DL中的字符。 (5)在打印機上打印一字符 向量號 21H 功能號 5 入口參數:DL=待打印字符的ASCII碼。 (6)顯示以“$”結尾的字符串 向量號 21H 功能號 9 入口參數:DS:DX指向字符串的首地址 (7)字符串輸入 向量號 21H 功能號 0AH 入口參數:DS:DX指向輸入緩沖區(qū)。 輸入緩沖區(qū)格式如下: 第一字節(jié)為預定的最大輸入字符數。第二字節(jié)空出,待中斷服務程序填入鍵盤連續(xù)輸入到回車前實際輸入字符數。第三字節(jié)及以后字節(jié),待中斷服務程序填入輸入字符串的ASCII碼。 (8)異步通信口輸入 向量號 21H 功能號 3 該功能從標準異步通信口等待輸入一字符,然后送AL中。啟動DOS時,異步通信口波特率為2400,設有偶校驗位,數據長度為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 金屬標牌再制造技術在公共管理中的應用挑戰(zhàn)-洞察及研究
- 招投標與合同管理考試模擬題(附答案)
- 智能安全防護的廚房小電器個性化定制技術-洞察闡釋
- 大數據驅動下的教育變革-以精準教學為例的研究報告
- 企業(yè)遠程培訓的新模式-基于云計算的智慧教室建設研究
- 跨境投資研究-洞察闡釋
- 安全生產事故的分類有哪些
- 生產安全培訓的
- 腫瘤微環(huán)境影響機制-洞察及研究
- 安全演練活動總結
- 泛微實施面試題及答案
- 試驗檢測管理制度
- 管道施工應急預案
- 2025年1月國家開放大學法學本科《中國法律史》期末紙質考試試題及答案
- 初中地理跨學科主題學習設計與實施
- 2021衛(wèi)生監(jiān)督法律法規(guī)知識競賽題庫及答案
- 懲罰游戲學校班會公司早會小游戲晨會年會團建課堂娛樂互動340
- 中國郵政集團有限公司國企招聘筆試真題2024
- 電腦供貨方案、售后服務方案
- 數據資產:會計研究的新領域
- 工業(yè)自動化設備交驗后的保修服務措施
評論
0/150
提交評論