版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、匯編語言程序設計 實實 驗驗 指指 導導 書書 徐州師范大學計算機科學與技術學院 2009 年 12 月 前 言 本課程實驗教學的目的和任務是使學生通過實踐環(huán)節(jié)深入理解和掌握 課堂教學內容,培養(yǎng)學生的動手能力和分析、解決實際問題的能力,使學 生在盡量短的時間,通過實驗熟練的掌握計算機匯編語言的功能、用法和 技巧以及實際編程和調試程序的能力。為后續(xù)課程打下堅實基礎。 實驗開始前應做好預習、初步完成代碼編制;上機時完成調試、測試; 實驗結束后認真寫出實驗報告并給出結果分析。 目目 錄錄 實驗一實驗一 匯編語言實驗平臺及調試工具的應用(匯編語言實驗平臺及調試工具的應用(2 課時)課時).1 一、實驗
2、目的.1 二、實驗要求.1 三、實驗內容.1 四、課后思考.4 實驗二實驗二 指令系統(tǒng)和尋址方式(指令系統(tǒng)和尋址方式(2 課時)課時).5 一、實驗目的.5 二、實驗要求.5 三、實驗內容.5 四、課后思考.5 實驗三實驗三 循環(huán)與分支程序設計及子程序設計(循環(huán)與分支程序設計及子程序設計(2 課時)課時).6 一、實驗目的.6 二、實驗要求.6 三、實驗內容.6 四、課后思考.7 實驗四實驗四 高級匯編語言技術和常用高級匯編語言技術和常用 DOSDOS 功能調用(功能調用(4 課時)課時).8 一、實驗目的.8 二、實驗要求.8 三、實驗內容.8 四、課后思考.8 參考文獻參考文獻.8 實驗一
3、實驗一 匯編語言實驗平臺及調試工具的應用(匯編語言實驗平臺及調試工具的應用(2 課時)課時) 一、實驗目的一、實驗目的 1掌握 DEBUG 的基本命令及其功能 2學習在匯編實驗平臺下開發(fā)程序的基本流程 二、實驗要求二、實驗要求 1用匯編語言編寫一個計算 1+2+100 的程序并在 MASM 環(huán)境下匯編,連接生 成可執(zhí)行文件,然后用 DEBUG 工具跟蹤調試。 2運用 DEBUG 調試工具跟蹤調試此程序,注意寄存器,內存單元內容的變化。 三、實驗內容三、實驗內容 第一部分 程序的編輯,匯編,鏈接及運行 用匯編語言編寫一個計算 1+2+100 的程序并在 MASM 環(huán)境下匯編,連接生成 可執(zhí)行文件
4、,然后用 DEBUG 工具跟蹤調試。 第二部分 DEBUG 調試工具的運用 DEBUG 是專門為匯編語言設計的一種調試工具,它通過進,設置斷點等方式為匯編 語言程序員提供了非常有效的調試手段。 1、DEBUG 程序的啟動 在 DOS 提示符下,可鍵入命令: CDEBUGd:path文件名 參數(shù) 1參數(shù) 2 其中文件名是被調試文件的名稱,它須是執(zhí)行文件(EXE) ,兩個參數(shù)是運行被調試 文件時所需要的命令參數(shù),在 DEBUG 程序調入后,出現(xiàn)提示符“-” ,此時,可鍵入所 需的 DEBUG 命令。 在啟動 DEBUG 時,如果輸入了文件名,則 DEBUG 程序把指定文件裝入內存。用戶可 以通過
5、DEBUG 的命令對指定文件進行修改、顯示和執(zhí)行。如果沒有文件名,則是以當 前內存的內容工作,或者用命名命令和裝入命令把需要的文件裝入內存,然后再用 DEBUG 的命令進行修改、顯示和執(zhí)行。 2、DEBUG 的主要命令 (1) 匯編命令 A,格式為: -A地址 該命令從指定地址開始允許輸入匯編語句,把它們匯編成機器代碼相 繼存放在從指定地址開始的存儲器中。 (2) 反匯編命令 U,有兩種格式: 1)-U地址 該命令從指定地址開始,反匯編 32 個字節(jié),若地址省略,則從上一個 U 命 令的最后一條指令的下一個單元開始顯示 32 個字節(jié)。 2)-U 范圍 該命令對指定范圍的內存單元進行反匯編,例如
6、: -U 04BA:0100 0108 或 U 04BA:0100 L9 此二命令是等效的。 (3) 運行命令 G,格式為: -G =地址 1地址 2地址 3。 。 。 其中地址 1 規(guī)定了運行起始地址,后面的若干地址均為斷點地址。 (4) 追蹤命令 T,有兩種格式: 1)逐條指令追蹤: -T=地址 該命令從指定地址起執(zhí)行一條指令后停下來,顯示寄存器內容和狀態(tài) 值。 2)多條指令追蹤: -T=地址值 該命令從指定地址起執(zhí)行 n 條命令后停下來,n 由值確定。 (5) 顯示內存單元內容的命令 D,格式為: -D地址或-D范圍 (6) 修改內存單元內容的命令 E,它有兩種格式: 1)用給定的內容代
7、替指定范圍的單元內容: -E 地址 內容表 例如:-E 2000:0100 F3 “XYZ” 8D 其中 F3, “X” “Y” “Z”和 8D 各占一個字節(jié),用這五個字節(jié)代替原內存單 元 2000:0100 到 0104 的內容, “X” “Y” “Z”將分別按它們的 ASCII 碼值代 入。 2)逐個單元相繼地修改: -E 地址 例如:-E 100: 18E4:0100 89.78 此命令是將原 100 號單元的內容 89 改為 78。78 是程序員鍵入的。 (7) 檢查和修改寄存器內容的命令 R,它有三種方式: 1)顯示 CPU 內部所有寄存器內容和標志位狀態(tài);格式為:-R R 命令顯示
8、中標志位狀態(tài)的含義如下表所示: 標 志 名置 位復 位 溢出 Overflow(是/否)OVNV 方向 Direction(減量/增量)DNUP 中斷 Interrupt(允許/屏蔽)EIDI 符號 Sign(負/正)NGPL 零 Zero(是/否)ZRNZ 輔助進位 Auxiliary Carry(是/否)ACNA 奇偶 Parity(偶/奇)PEPO 進位 Carry(是/否)CYNC 2)顯示和修改某個指定寄存器內容,格式為: -R 寄存器名 例如打入:-R AX 系統(tǒng)將響應如下: AX FIF4 : 表示 AX 當前內容為 F1F4,此時若不對其作修改,可按 ENTER 鍵,否則, 打
9、入修改后內容,如: -R BX BX 0369 :059F 則 BX 內容由 0369 改為 059F 3)顯示和修改標志位狀態(tài),命令格式為: -RF 系統(tǒng)將給出響應,如 OV DN EI NG ZR AC PE CY- 這時若不作修改可按 ENTER 鍵,否則在“-”號之后鍵入修改值,鍵入順序 任意。如 OV DN EI NG ZR AC PE CY-PONZDINV (8) 命名命令 N,格式為: -N 文件名 此命令將文件名格式化在 CS:5CH 的文件控制塊內,以便使用 L 或 W 命令 把文件裝入內存進行調試或者存盤。 (9) 裝入命令 L,它有兩種功能: 1)把磁盤上指定扇區(qū)的內容
10、裝入到內存指定地址起始的單元中,格式為: -L 地址 驅動器 扇區(qū)號 扇區(qū)數(shù) 2)裝入指定文件,格式為: -L 地址 此命令裝入已在 CS:5CH 中格式化的文件控制塊所指定的文件。 在用 L 命令前,BX 和 CX 中應包含所讀文件的字節(jié)數(shù)。 (10)寫命令 W,有兩種格式: 1)把數(shù)據(jù)寫入磁盤的指定扇區(qū): -W 地址 驅動器 扇區(qū)號 扇區(qū)數(shù) 2)把數(shù)據(jù)寫入指定文件中: -W 地址 此命令把指定內存區(qū)域中的數(shù)據(jù)寫入由 CS:5CH 處的 FCB 所規(guī)定的文件中。 在用 W 命令前,BX 和 CX 中應包含要寫入文件的字節(jié)數(shù)。 (11)退出 DEBUG 命令 Q,該命令格式為 Q 它退出 DE
11、BUG 程序,返回 DOS,但該命令本身并不把在內存中的文件存盤, 如需存盤,應在執(zhí)行 Q 命令前先執(zhí)行寫命令 W。 四、課后思考四、課后思考 編寫出源程序,并說明調試中遇到的問題是如何解決的,并對調試過程中的問題 進行分析,對執(zhí)行結果進行分析。 實驗二實驗二 指令系統(tǒng)和尋址方式(指令系統(tǒng)和尋址方式(2 課時)課時) 一、實驗目的一、實驗目的 1學習數(shù)據(jù)傳送和算術運算指令的用法 2熟悉在 PC 機上編輯、匯編、連接、調試和運行匯編語言程序的過程。 二、實驗要求二、實驗要求 將兩個多位十進制數(shù)相加,要求被加數(shù)和加數(shù)均以 ASCII 碼形式各自順序存 放在 DATA1 和 DATA2 為首的 5
12、個內存單元中,結果送回 DATA1 處。 三、實驗內容三、實驗內容 1編輯源程序,建立一個以后綴為 ASM 的文件。 (參照圖 1 編寫源程序) 2匯編源程序,檢查程序有否錯誤,有錯時回到編輯狀態(tài),修改程序中錯誤行。 無錯時繼續(xù)第 3 步。 3連接目標程序,產生可執(zhí)行程序。 4DEBUG 調試可執(zhí)行程序,記錄數(shù)據(jù)段的內容。 圖 1 兩個多位十進制相加程序流程圖 四、課后思考四、課后思考 1編寫出源程序,并思考將上述程序改為 5 位數(shù)相加,結果為 6 位數(shù)的加法程 序。(需考慮進位) 2簡單敘述上機步驟,調試方法。 實驗三實驗三 循環(huán)與分支程序設計及子程序設計(2 課時)課時) 一、實驗目的一、
13、實驗目的 1掌握循環(huán)程序的設計方法 2掌握主程序與子程序之間的調用關系及調用方法。 3掌握子程序調用過程中近程調用與遠程調用的區(qū)別。 4掌握通過堆棧轉送參數(shù)的方法。 二、實驗要求二、實驗要求 1 編寫一個程序,記錄某個字存儲單元數(shù)據(jù)中 1 的個數(shù),以十進制形式顯示結 果。 2 將 BUF 開始的 10 個單元中的二進制數(shù)轉換成兩位十六進制數(shù)的 ASCII 碼,在 屏幕上顯示出來。要求碼型轉換通過子程序 HEXAC 實現(xiàn),在轉換過程中,通過子程序 DISP 實現(xiàn)顯示。 三、實驗內容三、實驗內容 1.1.部分參考程序段清單:部分參考程序段清單: Statistic.ASMStatistic.ASM
14、 ;數(shù)據(jù)段 number dw 00100B ;代碼段 mov bx,number xor dl,dl ;循環(huán)初值:DL0 again: test bx,0ffffh;也可以用 cmp bx,0 jz done ;全部是 0 就可以退出循環(huán),減少循環(huán)次數(shù) shl bx,1;用指令 shr bx,1 也可以 adc dl,0 ;利用 ADC 指令加 CF 的特點進行計數(shù) jmp again done:cmp dl,10 ;判斷 1 的個數(shù)是否小于 10 jb digit;1 的個數(shù)小于 10,轉移 push dx mov dl,1;1 的個數(shù)大于或等于 10 mov ah,2;則要先顯示一個 1
15、 int 21h pop dx sub dl,10 digit: add dl,0;顯示個數(shù) mov ah,2 int 21h Conv.ASMConv.ASM DATA SEGMENT BUF DB 0ABH,0CDH,0DEH,01H,02H,03H DB 3AH,4BH,5CH,6FH DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV CX,10 LEA BX,BUF AGAIN: MOV AL, BX CALL HEXASC INC BX LOOP AGAIN MOV AH,4C
16、H INT 21H HEXASC PROC NEAR MOV DL,AL PUSH CX MOV CL,4 SHR DL,CL POP CX CALL DISP ;顯示高位 HEX 數(shù) MOV DL,AL AND DL,0FH CALL DISP RET HEXASC ENDP DISP PROP CMP DL,9 JBE NEXT ADD DL,7 NEXT: ADD DL,30H MOV AH,2 INT 21H ;顯示 RET DISP ENDP CODE ENDS END START 2.參考上面給出的部分源程序,畫出程序流程圖,編寫程序,并調試運行。 四、課后思考四、課后思考 思考
17、BCD 編碼和二進制的不同,特別是做加法和減法運算時有何區(qū)別? 實驗四實驗四 高級匯編語言技術和常用 DOS 功能調用(4 課時)課時) 一、實驗目的一、實驗目的 1掌握分支、循環(huán)、子程序調用、DOS 功能調用等基本的程序結構。 2掌握綜合程序的編制及調試方法。 二、實驗要求二、實驗要求 設有十個學生成績分別是 76,69,84,90,73,88,99,63,100 和 80 分。試編 制一個子程序,將分數(shù)分等并統(tǒng)計低于 60 分(不及格) ,6069 分(合格) ,7079 分(中等) ,8089 分(良好) ,90100 分(優(yōu)秀)的人數(shù),并輸出顯示統(tǒng)計結果。 三、實驗內容三、實驗內容 1畫出程序流程圖。 2成績分等部分采用分支結構,統(tǒng)計所有成績則用循環(huán)結構完成,顯示統(tǒng)計結果 采用 DOS 功能調用。 3統(tǒng)計學生成績和顯示統(tǒng)計結果兩部分內容用子程序結構來完成。 4學生成績要求鍵盤輸入,鍵盤輸入采用 DOS 調用。 5寫出源程序清單和執(zhí)行結果。 四、課后思考四、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個人住宅房產抵押擔保合同范本4篇
- 二零二五年度模特個人品牌授權管理合同4篇
- 2025年個人房產買賣售后服務保障合同3篇
- 2025年度個人藝術品抵押貸款展期服務合同3篇
- 2025年教室租賃及管理維護服務合同2篇
- 2025年度人工智能語音助手產品定制開發(fā)合同范本2篇
- 拆除瀝青路面施工方案
- 2025年度二手車買賣合同車輛交易市場準入及退出協(xié)議范本4篇
- 2025年電商項目策劃與銷售代理合同3篇
- 二零二五年度美團打車智能停車服務合作協(xié)議4篇
- 廣東省佛山市2025屆高三高中教學質量檢測 (一)化學試題(含答案)
- 《國有控股上市公司高管薪酬的管控研究》
- 《創(chuàng)傷失血性休克中國急診專家共識(2023)》解讀課件
- 小學六年級數(shù)學100道題解分數(shù)方程
- YY 0838-2021 微波熱凝設備
- 通信機房蓄電池放電試驗報告
- 病原細菌的分離培養(yǎng)
- EDA課程設計報告書--八音電子琴
- 可打印的空白記賬憑證
- 化工設備圖資料PPT課件
- 人大教科文衛(wèi)委工作總結及工作計劃
評論
0/150
提交評論