




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、微機原理實驗報告 實驗二 熟悉匯編程序建立及其調(diào)試方法姓名: 劉瑩瑩 學(xué)號:130241041、 實驗?zāi)康?1、熟悉匯編語言源程序的框架結(jié)構(gòu),學(xué)會編制匯程序。2、熟悉匯編語言上機操作的過程,學(xué)會匯編程序調(diào)試方法。 2、 實驗內(nèi)容 1、 學(xué)習(xí)編寫匯編語言源程序的方法,了解數(shù)據(jù)存放格式。 2、 閱讀給出的程序,找出程序中的錯誤。 3、 通過調(diào)試給出的匯編語言源程序,了解并掌握匯編語言程序的建立、匯編、鏈接、調(diào)試、修改和運行等全過程。 3、 實驗預(yù)習(xí) 1、 閱讀實驗指導(dǎo)第一章的內(nèi)容,了解匯編語言程序建立、匯編、鏈接、調(diào)試的全過程。 2、 下面的匯編語言源程序有錯誤的,試給程序加注釋。通過調(diào)試手段找出
2、程序中的錯誤并修改之。寫出程序的功能,畫出程序流程圖。(1)程序修改前:STACKSG: SEGMENT PARA STACK STACK ;不能有冒號 DB 256 DUP(?) STACKSG ENDSDATASG: SEGMENT PARA DATA ;不能有冒號BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU 20MAX DW ?DATASG ENDSCODESG: SEGMENT ;不能有冒號 ASSUME SS:STACKSG , CS:CODESG AS
3、SUME DS:DATASG ORG 100HBEGIN MOV DS, DATASG ;BEGIN: 應(yīng)改為 MOV AX , DATASG MOV DS, AX LEA SI ,BLOCK MOV CX, COUNT DEC CX MOV AX , SICHKMAX ADD SI,2 ;應(yīng)加冒號CHKMAX: CMP SI , AX JLE NEXT MOV AX , SI DEC CX ;刪除 NEXT: LOOP CHKMAX MOV MAX ,AX MOV AH, 4CH INT 21HCODESG ENDS END BEGIN(2)程序修改后:STACKSG SEGMENT PAR
4、A STACK STACK DB 256 DUP(?) STACKSG ENDSDATASG SEGMENT PARA DATABLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU 20MAX DW ?DATASG ENDSCODESG SEGMENT ASSUME SS:STACKSG , CS:CODESG ASSUME DS:DATASG ORG 100HBEGIN MOV AX , DATASG MOV DS, AX LEA SI ,BLOCK MOV CX, C
5、OUNT DEC CX MOV AX , SICHKMAX: ADD SI,2 CMP SI , AX JLE NEXT MOV AX , SI NEXT: LOOP CHKMAX MOV MAX ,AX MOV AH, 4CH INT 21HCODESG ENDS END BEGIN(3)程序注釋:STACKSG SEGMENT PARA STACK 'STACK' DB 256 DUP(?)STACKSG ENDS ;定義堆棧段DATASG SEGMENT PARA 'DATA' ;數(shù)據(jù)段定義BLOCK DW 0,-5,8,256,-128,96,100,3
6、,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 ;定義變量BLOCK包含20個字COUNT EQU 20 ;COUNT=20MAX DW ? ;定義字變量MAX并不賦值DATASG ENDSCODESG SEGMENT ;代碼段定義 ASSUME SS:STACKSG , CS:CODESG ;說明STACKSG是堆棧段 ASSUME DS:DATASG ;CODESG是代碼段, DATASG是數(shù)據(jù)段 ORG 100HBEGIN: MOV AX, DATASG MOV DS, AX ;DS指向DATASG LEA SI ,BLOCK ;取BLOCK
7、的有效地址給SI MOV CX, COUNT ;CX=20 DEC CX ;CX=CX-1 MOV AX , SI ;將DS:SI里的值送到AXCHKMAX : ADD SI, 2 ;SI=SI+2 CMP SI , AX ;比較DS:SI與AX值的大小 JLE NEXT ;如果DS:SI的值小于AX里的值,則跳轉(zhuǎn)到NEXT MOV AX , SI ;將DS:SI的值送到AXNEXT: LOOP CHKMAX ;循環(huán)CHKMAX MOV MAX ,AX ;將AX的值送到變量MAX MOV AH, 4CH ;結(jié)束 INT 21HCODESG ENDS END BEGIN(4)程序的流程圖:開始從
8、內(nèi)存取數(shù)SI=SI+2SI>AX ? YAX=SI NCX1CX=0? N Y保存最大值結(jié)束(5)程序的功能:找出20個數(shù)中的最大值并保存。4、 實驗步驟 1、建立匯編語言源程序,對建立的匯編語言源程序進行編譯、鏈接。 2、運行DEBUG調(diào)試程序,裝入被調(diào)試程序,用U命令查看調(diào)入的程序,記錄代碼段基值和數(shù)據(jù)段基值,用R命令查看并記錄下當(dāng)前寄存器內(nèi)容。代碼段段基值:164F 數(shù)據(jù)段段基值:162CAX=0000 BX=0000 CX=0536 DX=0000 SP=0100 BP=0000SI=0000 DI=0000 DS=162C ES=162C SS=163C CS=164F IP=
9、0100 3、用D命令查看并記錄下內(nèi)存中數(shù)據(jù)存放格式。 (注:在教室沒有做完,回來用自己電腦做的,所以段基值不一樣) 4、用T命令單步運行程序,觀察各條指令執(zhí)行結(jié)果,以及對寄存器、標志位、內(nèi)存單元的影響,若找出程序中的錯誤,用Q命令退出DEBUG環(huán)境,修改匯編語言源程序,重復(fù)上述步驟,直至整個程序無誤。 5、若將LEA SI,BLOCK語句改為LEA SI,BLOCK+2*COUNT-2,并將ADD SI,2改為SUB SI,2,重新運行程序,觀察運行結(jié)果: 1)建立匯編語言源程序,對建立的匯編語言源程序進行編譯、鏈接。 2)運行DEBUG調(diào)試程序,裝入被調(diào)試程序,用U命令查看調(diào)入的程序,記錄
10、代碼段基值和數(shù)據(jù)段基值,用R命令查看并記錄下當(dāng)前寄存器內(nèi)容。代碼段段基值:164F 數(shù)據(jù)段段基值:162CAX=0000 BX=0000 CX=0536 DX=0000 SP=0100 BP=0000SI=0000 DI=0000 DS=162C ES=162C SS=163C CS=164F IP=0100 3)用D命令查看并記錄下內(nèi)存中數(shù)據(jù)存放格式 4)用T命令單步運行程序,觀察各條指令執(zhí)行結(jié)果,以及對寄存器、標志位、內(nèi)存單元的影響。 和之前的結(jié)果一樣。 6、若重新給出一組數(shù)據(jù),可用E命令輸入新數(shù)據(jù)后運行程序,觀察并記錄運行結(jié)果。(注:在教室沒有做完,回來用自己電腦做的,所以段基值不一樣)
11、 7、若要求找出數(shù)據(jù)區(qū)中最小數(shù),程序?qū)⑷绾涡薷?,試上機調(diào)試。 (將JLE NEXT改為JGE NEXT)DATA SEGMENT PARA 'DATA' BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512 DW 23,56,420,75,0,-1024,-67,39,-2000 COUNT EQU 20 MAX DW ?DATA ENDSSTACK SEGMENT PARA STACK 'STACK' DB 256 DUP(?) STACK ENDSCODE SEGMENT ASSUME SS:STACK,CS:CODE ASS
12、UME DS:DATA ORG 100HBEGIN: MOV BX,DATA MOV DS,BX LEA SI,BLOCK MOV CX,COUNT DEC CX MOV AX,SICHKMAX: ADD SI,2 CMP SI,AX JGE NEXT MOV AX,SI DEC CXNEXT: LOOP CHKMAX MOV MAX,AX MOV AH,4CH INT 21HCODE ENDS END BEGIN 實驗結(jié)果如下:(注:在教室沒有做完,回來用自己電腦做的,所以段基值不一樣)五、實驗習(xí)題與思考1.在裝入被調(diào)試程序后,如何知道分配給該用戶程序的數(shù)據(jù)段在內(nèi)存中的位置?答:在DEBUG環(huán)境中用R命令進行檢驗。2.數(shù)據(jù)區(qū)以什么形式存放用符號數(shù)的?答:以補碼形式存放有符號數(shù)。3.修改前、后程序在執(zhí)行時有何區(qū)別(提示:觀察數(shù)據(jù)指針的變化)答:修改前SI遞增(順序比較
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO 16383-1:2025 EN Geotechnical investigation and testing - Laboratory testing of rock - Part 1: Determination of water content
- 先進技術(shù)參觀保密協(xié)議書范本
- 海外市場推廣與品牌合作合同
- 國際人才引進擔(dān)保與培訓(xùn)協(xié)議
- 稅務(wù)代理補充協(xié)議
- 拆遷補償款支付居間服務(wù)協(xié)議
- 車輛維修企業(yè)品牌授權(quán)與加盟合同
- 出口貨物貿(mào)易代理傭金合同范本
- 餐飲企業(yè)旗下特色餐廳品牌及店面打包轉(zhuǎn)讓合同
- 股東退股與公司財務(wù)管理制度協(xié)議
- 腫瘤科放療健康宣教
- 陪伴孩子的成長課件
- 你的名字叫什么-音樂教案
- 《員工的七個習(xí)慣》課件
- 分布式光伏危險源辨識清單
- 南開大學(xué)商學(xué)院管理綜合歷年考研真題匯編(含部分答案)(1)合集
- 上海上海市實驗學(xué)校西校小升初數(shù)學(xué)期末試卷測試題(Word版-含解析)
- 有限空間作業(yè)審批制度
- (新插圖)人教版五年級下冊數(shù)學(xué) 6-3-1 分數(shù)加減混合運算 知識點梳理課件
- 家庭教育環(huán)境與小學(xué)生心理健康的關(guān)系 論文
- 蒸汽機的原理
評論
0/150
提交評論