![《匯編語言程序設(shè)計》_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7cb3d642-f3ec-4db5-be0f-2c1e3d69f635/7cb3d642-f3ec-4db5-be0f-2c1e3d69f6351.gif)
![《匯編語言程序設(shè)計》_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7cb3d642-f3ec-4db5-be0f-2c1e3d69f635/7cb3d642-f3ec-4db5-be0f-2c1e3d69f6352.gif)
![《匯編語言程序設(shè)計》_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7cb3d642-f3ec-4db5-be0f-2c1e3d69f635/7cb3d642-f3ec-4db5-be0f-2c1e3d69f6353.gif)
![《匯編語言程序設(shè)計》_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7cb3d642-f3ec-4db5-be0f-2c1e3d69f635/7cb3d642-f3ec-4db5-be0f-2c1e3d69f6354.gif)
![《匯編語言程序設(shè)計》_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-4/23/7cb3d642-f3ec-4db5-be0f-2c1e3d69f635/7cb3d642-f3ec-4db5-be0f-2c1e3d69f6355.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、匯編語言程序設(shè)計 實實 驗驗 指指 導(dǎo)導(dǎo) 書書 徐州師范大學(xué)計算機科學(xué)與技術(shù)學(xué)院 2009 年 12 月 前 言 本課程實驗教學(xué)的目的和任務(wù)是使學(xué)生通過實踐環(huán)節(jié)深入理解和掌握 課堂教學(xué)內(nèi)容,培養(yǎng)學(xué)生的動手能力和分析、解決實際問題的能力,使學(xué) 生在盡量短的時間,通過實驗熟練的掌握計算機匯編語言的功能、用法和 技巧以及實際編程和調(diào)試程序的能力。為后續(xù)課程打下堅實基礎(chǔ)。 實驗開始前應(yīng)做好預(yù)習(xí)、初步完成代碼編制;上機時完成調(diào)試、測試; 實驗結(jié)束后認真寫出實驗報告并給出結(jié)果分析。 目目 錄錄 實驗一實驗一 匯編語言實驗平臺及調(diào)試工具的應(yīng)用(匯編語言實驗平臺及調(diào)試工具的應(yīng)用(2 課時)課時).1 一、實驗
2、目的.1 二、實驗要求.1 三、實驗內(nèi)容.1 四、課后思考.4 實驗二實驗二 指令系統(tǒng)和尋址方式(指令系統(tǒng)和尋址方式(2 課時)課時).5 一、實驗?zāi)康?5 二、實驗要求.5 三、實驗內(nèi)容.5 四、課后思考.5 實驗三實驗三 循環(huán)與分支程序設(shè)計及子程序設(shè)計(循環(huán)與分支程序設(shè)計及子程序設(shè)計(2 課時)課時).6 一、實驗?zāi)康?6 二、實驗要求.6 三、實驗內(nèi)容.6 四、課后思考.7 實驗四實驗四 高級匯編語言技術(shù)和常用高級匯編語言技術(shù)和常用 DOSDOS 功能調(diào)用(功能調(diào)用(4 課時)課時).8 一、實驗?zāi)康?8 二、實驗要求.8 三、實驗內(nèi)容.8 四、課后思考.8 參考文獻參考文獻.8 實驗一
3、實驗一 匯編語言實驗平臺及調(diào)試工具的應(yīng)用(匯編語言實驗平臺及調(diào)試工具的應(yīng)用(2 課時)課時) 一、實驗?zāi)康囊?、實驗?zāi)康?1掌握 DEBUG 的基本命令及其功能 2學(xué)習(xí)在匯編實驗平臺下開發(fā)程序的基本流程 二、實驗要求二、實驗要求 1用匯編語言編寫一個計算 1+2+100 的程序并在 MASM 環(huán)境下匯編,連接生 成可執(zhí)行文件,然后用 DEBUG 工具跟蹤調(diào)試。 2運用 DEBUG 調(diào)試工具跟蹤調(diào)試此程序,注意寄存器,內(nèi)存單元內(nèi)容的變化。 三、實驗內(nèi)容三、實驗內(nèi)容 第一部分 程序的編輯,匯編,鏈接及運行 用匯編語言編寫一個計算 1+2+100 的程序并在 MASM 環(huán)境下匯編,連接生成 可執(zhí)行文件
4、,然后用 DEBUG 工具跟蹤調(diào)試。 第二部分 DEBUG 調(diào)試工具的運用 DEBUG 是專門為匯編語言設(shè)計的一種調(diào)試工具,它通過進,設(shè)置斷點等方式為匯編 語言程序員提供了非常有效的調(diào)試手段。 1、DEBUG 程序的啟動 在 DOS 提示符下,可鍵入命令: CDEBUGd:path文件名 參數(shù) 1參數(shù) 2 其中文件名是被調(diào)試文件的名稱,它須是執(zhí)行文件(EXE) ,兩個參數(shù)是運行被調(diào)試 文件時所需要的命令參數(shù),在 DEBUG 程序調(diào)入后,出現(xiàn)提示符“-” ,此時,可鍵入所 需的 DEBUG 命令。 在啟動 DEBUG 時,如果輸入了文件名,則 DEBUG 程序把指定文件裝入內(nèi)存。用戶可 以通過
5、DEBUG 的命令對指定文件進行修改、顯示和執(zhí)行。如果沒有文件名,則是以當(dāng) 前內(nèi)存的內(nèi)容工作,或者用命名命令和裝入命令把需要的文件裝入內(nèi)存,然后再用 DEBUG 的命令進行修改、顯示和執(zhí)行。 2、DEBUG 的主要命令 (1) 匯編命令 A,格式為: -A地址 該命令從指定地址開始允許輸入?yún)R編語句,把它們匯編成機器代碼相 繼存放在從指定地址開始的存儲器中。 (2) 反匯編命令 U,有兩種格式: 1)-U地址 該命令從指定地址開始,反匯編 32 個字節(jié),若地址省略,則從上一個 U 命 令的最后一條指令的下一個單元開始顯示 32 個字節(jié)。 2)-U 范圍 該命令對指定范圍的內(nèi)存單元進行反匯編,例如
6、: -U 04BA:0100 0108 或 U 04BA:0100 L9 此二命令是等效的。 (3) 運行命令 G,格式為: -G =地址 1地址 2地址 3。 。 。 其中地址 1 規(guī)定了運行起始地址,后面的若干地址均為斷點地址。 (4) 追蹤命令 T,有兩種格式: 1)逐條指令追蹤: -T=地址 該命令從指定地址起執(zhí)行一條指令后停下來,顯示寄存器內(nèi)容和狀態(tài) 值。 2)多條指令追蹤: -T=地址值 該命令從指定地址起執(zhí)行 n 條命令后停下來,n 由值確定。 (5) 顯示內(nèi)存單元內(nèi)容的命令 D,格式為: -D地址或-D范圍 (6) 修改內(nèi)存單元內(nèi)容的命令 E,它有兩種格式: 1)用給定的內(nèi)容代
7、替指定范圍的單元內(nèi)容: -E 地址 內(nèi)容表 例如:-E 2000:0100 F3 “XYZ” 8D 其中 F3, “X” “Y” “Z”和 8D 各占一個字節(jié),用這五個字節(jié)代替原內(nèi)存單 元 2000:0100 到 0104 的內(nèi)容, “X” “Y” “Z”將分別按它們的 ASCII 碼值代 入。 2)逐個單元相繼地修改: -E 地址 例如:-E 100: 18E4:0100 89.78 此命令是將原 100 號單元的內(nèi)容 89 改為 78。78 是程序員鍵入的。 (7) 檢查和修改寄存器內(nèi)容的命令 R,它有三種方式: 1)顯示 CPU 內(nèi)部所有寄存器內(nèi)容和標志位狀態(tài);格式為:-R R 命令顯示
8、中標志位狀態(tài)的含義如下表所示: 標 志 名置 位復(fù) 位 溢出 Overflow(是/否)OVNV 方向 Direction(減量/增量)DNUP 中斷 Interrupt(允許/屏蔽)EIDI 符號 Sign(負/正)NGPL 零 Zero(是/否)ZRNZ 輔助進位 Auxiliary Carry(是/否)ACNA 奇偶 Parity(偶/奇)PEPO 進位 Carry(是/否)CYNC 2)顯示和修改某個指定寄存器內(nèi)容,格式為: -R 寄存器名 例如打入:-R AX 系統(tǒng)將響應(yīng)如下: AX FIF4 : 表示 AX 當(dāng)前內(nèi)容為 F1F4,此時若不對其作修改,可按 ENTER 鍵,否則, 打
9、入修改后內(nèi)容,如: -R BX BX 0369 :059F 則 BX 內(nèi)容由 0369 改為 059F 3)顯示和修改標志位狀態(tài),命令格式為: -RF 系統(tǒng)將給出響應(yīng),如 OV DN EI NG ZR AC PE CY- 這時若不作修改可按 ENTER 鍵,否則在“-”號之后鍵入修改值,鍵入順序 任意。如 OV DN EI NG ZR AC PE CY-PONZDINV (8) 命名命令 N,格式為: -N 文件名 此命令將文件名格式化在 CS:5CH 的文件控制塊內(nèi),以便使用 L 或 W 命令 把文件裝入內(nèi)存進行調(diào)試或者存盤。 (9) 裝入命令 L,它有兩種功能: 1)把磁盤上指定扇區(qū)的內(nèi)容
10、裝入到內(nèi)存指定地址起始的單元中,格式為: -L 地址 驅(qū)動器 扇區(qū)號 扇區(qū)數(shù) 2)裝入指定文件,格式為: -L 地址 此命令裝入已在 CS:5CH 中格式化的文件控制塊所指定的文件。 在用 L 命令前,BX 和 CX 中應(yīng)包含所讀文件的字節(jié)數(shù)。 (10)寫命令 W,有兩種格式: 1)把數(shù)據(jù)寫入磁盤的指定扇區(qū): -W 地址 驅(qū)動器 扇區(qū)號 扇區(qū)數(shù) 2)把數(shù)據(jù)寫入指定文件中: -W 地址 此命令把指定內(nèi)存區(qū)域中的數(shù)據(jù)寫入由 CS:5CH 處的 FCB 所規(guī)定的文件中。 在用 W 命令前,BX 和 CX 中應(yīng)包含要寫入文件的字節(jié)數(shù)。 (11)退出 DEBUG 命令 Q,該命令格式為 Q 它退出 DE
11、BUG 程序,返回 DOS,但該命令本身并不把在內(nèi)存中的文件存盤, 如需存盤,應(yīng)在執(zhí)行 Q 命令前先執(zhí)行寫命令 W。 四、課后思考四、課后思考 編寫出源程序,并說明調(diào)試中遇到的問題是如何解決的,并對調(diào)試過程中的問題 進行分析,對執(zhí)行結(jié)果進行分析。 實驗二實驗二 指令系統(tǒng)和尋址方式(指令系統(tǒng)和尋址方式(2 課時)課時) 一、實驗?zāi)康囊?、實驗?zāi)康?1學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運算指令的用法 2熟悉在 PC 機上編輯、匯編、連接、調(diào)試和運行匯編語言程序的過程。 二、實驗要求二、實驗要求 將兩個多位十進制數(shù)相加,要求被加數(shù)和加數(shù)均以 ASCII 碼形式各自順序存 放在 DATA1 和 DATA2 為首的 5
12、個內(nèi)存單元中,結(jié)果送回 DATA1 處。 三、實驗內(nèi)容三、實驗內(nèi)容 1編輯源程序,建立一個以后綴為 ASM 的文件。 (參照圖 1 編寫源程序) 2匯編源程序,檢查程序有否錯誤,有錯時回到編輯狀態(tài),修改程序中錯誤行。 無錯時繼續(xù)第 3 步。 3連接目標程序,產(chǎn)生可執(zhí)行程序。 4DEBUG 調(diào)試可執(zhí)行程序,記錄數(shù)據(jù)段的內(nèi)容。 圖 1 兩個多位十進制相加程序流程圖 四、課后思考四、課后思考 1編寫出源程序,并思考將上述程序改為 5 位數(shù)相加,結(jié)果為 6 位數(shù)的加法程 序。(需考慮進位) 2簡單敘述上機步驟,調(diào)試方法。 實驗三實驗三 循環(huán)與分支程序設(shè)計及子程序設(shè)計(2 課時)課時) 一、實驗?zāi)康囊弧?/p>
13、實驗?zāi)康?1掌握循環(huán)程序的設(shè)計方法 2掌握主程序與子程序之間的調(diào)用關(guān)系及調(diào)用方法。 3掌握子程序調(diào)用過程中近程調(diào)用與遠程調(diào)用的區(qū)別。 4掌握通過堆棧轉(zhuǎn)送參數(shù)的方法。 二、實驗要求二、實驗要求 1 編寫一個程序,記錄某個字存儲單元數(shù)據(jù)中 1 的個數(shù),以十進制形式顯示結(jié) 果。 2 將 BUF 開始的 10 個單元中的二進制數(shù)轉(zhuǎn)換成兩位十六進制數(shù)的 ASCII 碼,在 屏幕上顯示出來。要求碼型轉(zhuǎn)換通過子程序 HEXAC 實現(xiàn),在轉(zhuǎn)換過程中,通過子程序 DISP 實現(xiàn)顯示。 三、實驗內(nèi)容三、實驗內(nèi)容 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,轉(zhuǎn)移 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.參考上面給出的部分源程序,畫出程序流程圖,編寫程序,并調(diào)試運行。 四、課后思考四、課后思考 思考
17、BCD 編碼和二進制的不同,特別是做加法和減法運算時有何區(qū)別? 實驗四實驗四 高級匯編語言技術(shù)和常用 DOS 功能調(diào)用(4 課時)課時) 一、實驗?zāi)康囊?、實驗?zāi)康?1掌握分支、循環(huán)、子程序調(diào)用、DOS 功能調(diào)用等基本的程序結(jié)構(gòu)。 2掌握綜合程序的編制及調(diào)試方法。 二、實驗要求二、實驗要求 設(shè)有十個學(xué)生成績分別是 76,69,84,90,73,88,99,63,100 和 80 分。試編 制一個子程序,將分數(shù)分等并統(tǒng)計低于 60 分(不及格) ,6069 分(合格) ,7079 分(中等) ,8089 分(良好) ,90100 分(優(yōu)秀)的人數(shù),并輸出顯示統(tǒng)計結(jié)果。 三、實驗內(nèi)容三、實驗內(nèi)容 1畫出程序流程圖。 2成績分等部分采用分支結(jié)構(gòu),統(tǒng)計所有成績則用循環(huán)結(jié)構(gòu)完成,顯示統(tǒng)計結(jié)果 采用 DOS 功能調(diào)用。 3統(tǒng)計學(xué)生成績和顯示統(tǒng)計結(jié)果兩部分內(nèi)容用子程序結(jié)構(gòu)來完成。 4學(xué)生成績要求鍵盤輸入,鍵盤輸入采用 DOS 調(diào)用。 5寫出源程序清單和執(zhí)行結(jié)果。 四、課后思考四、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度井蓋防墜安全裝置采購合同-@-1
- 2025年度城市軌道交通項目投融資合同
- 2025年度股權(quán)質(zhì)押擔(dān)保資產(chǎn)交易合同
- 2025年度車輛購置貸款合同書
- 2025年國際海運貨物跟蹤與查詢服務(wù)合同
- 2025年度互聯(lián)網(wǎng)醫(yī)療平臺股份轉(zhuǎn)讓協(xié)議合同
- 2025年度股東內(nèi)部承包經(jīng)營合同范本修訂版
- 2025年度公司對個人授權(quán)委托專項服務(wù)合同
- 2025年度酒店客房預(yù)訂系統(tǒng)開發(fā)合同范本-@-2
- 2025年度醫(yī)院病房空調(diào)設(shè)備更新改造合同范本
- 2025年中國南方航空股份有限公司招聘筆試參考題庫含答案解析
- 商務(wù)部發(fā)布《中國再生資源回收行業(yè)發(fā)展報告(2024)》
- 山東省濟南市2024-2024學(xué)年高三上學(xué)期1月期末考試 地理 含答案
- 2025年福建新華發(fā)行(集團)限責(zé)任公司校園招聘高頻重點提升(共500題)附帶答案詳解
- 江蘇省駕校考試科目一考試題庫
- 四川省成都市青羊區(qū)成都市石室聯(lián)合中學(xué)2023-2024學(xué)年七上期末數(shù)學(xué)試題(解析版)
- 咨詢公司績效工資分配實施方案
- 2025新人教版英語七年級下單詞表
- 中華護理學(xué)會團體標準-氣管切開非機械通氣患者氣道護理
- 廣東省緊密型縣域醫(yī)療衛(wèi)生共同體雙向轉(zhuǎn)診運行指南
- 檢驗科臨檢組風(fēng)險評估報告文書
評論
0/150
提交評論