微機(jī)實(shí)驗(yàn):匯編語(yǔ)言程序的調(diào)試與運(yùn)行步驟_第1頁(yè)
微機(jī)實(shí)驗(yàn):匯編語(yǔ)言程序的調(diào)試與運(yùn)行步驟_第2頁(yè)
微機(jī)實(shí)驗(yàn):匯編語(yǔ)言程序的調(diào)試與運(yùn)行步驟_第3頁(yè)
微機(jī)實(shí)驗(yàn):匯編語(yǔ)言程序的調(diào)試與運(yùn)行步驟_第4頁(yè)
微機(jī)實(shí)驗(yàn):匯編語(yǔ)言程序的調(diào)試與運(yùn)行步驟_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上軟件實(shí)驗(yàn)一 匯編語(yǔ)言程序的調(diào)試與運(yùn)行一實(shí)驗(yàn)?zāi)康?學(xué)習(xí)數(shù)據(jù)傳送和算術(shù)運(yùn)算指令的用法2熟悉在PC機(jī)上編輯、匯編、連接、調(diào)試和運(yùn)行匯編語(yǔ)言程序的過(guò)程。二實(shí)驗(yàn)內(nèi)容將兩個(gè)多位十進(jìn)制數(shù)相加,要求被加數(shù)和加數(shù)均以ASCII碼形式各自順序存放在DATA1和DATA2為首的5個(gè)內(nèi)存單元中,結(jié)果送回DATA1處。三程序框圖圖1.1 兩個(gè)多位十進(jìn)制相加程序流程圖四程序清單DISPMACRO XMOVDL,X ;要顯示的字符送DL寄存器MOVAH,02H ;DOS功能調(diào)用號(hào)是02HINT21H ;21H中斷程序是DOS功能調(diào)用ENDMDATASEGMENTDATA1DB 12732DATA2

2、DB 06815NEQU $-DATA2DATAENDSSTACKSEGMENT STACKSTADB 20 DUP (?)TOPEQU $-STASTACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXLEASI,DATA1;MOVBX,0MOVCX,NCALLDISPL;顯示被加數(shù)DISP+ LEASI,DATA2MOVBX,0MOVCX,NCALLDISPL;顯示加數(shù)DISP=LEADI,DATA1MOVCX

3、,N CALLADDA;調(diào)用加法子程序LEASI,DATA1MOVBX,0MOVCX,NCALLDISPL;顯示運(yùn)算結(jié)果DISP0DHDISP0AHMOVAX,4C00HINT21HDISPLPROC;顯示子程序DS1:MOVAH,02HMOVDL,SI+BXINT21HINCBXLOOPDS1RETDISPLENDPADDAPROC;加法子程序PUSHCXMOVBX,0AD1: SUB BYTE PTR SI+BX,30H SUB BYTE PTR DI+BX,30HINCBXLOOPAD1POPCXPUSHCXMOVBX,N-1;CLCAD2:MOVAL,SI+BXADCAL,DI+BXA

4、AAMOVDI+BX,ALDECBXLOOPAD2POPCXPUSHCXMOVBX,0;AD3: ADD BYTE PTR DI+BX,30HINCBXLOOPAD3POPCXRET;ADDAENDPCODEENDSENDSTART五調(diào)試步驟1編輯源程序,建立一個(gè)以后綴為 ASM的文件.2匯編源程序,檢查程序有否錯(cuò)誤,有錯(cuò)時(shí)回到編輯狀態(tài),修改程序中錯(cuò)誤行。無(wú)錯(cuò)時(shí)繼續(xù)第3步。3 連接目標(biāo)程序,產(chǎn)生可執(zhí)行程序。4 TDEBUG調(diào)試可執(zhí)行程序,記錄數(shù)據(jù)段DS:0DS:10的內(nèi)容。 進(jìn)入TDEBUG程序后。執(zhí)行程序至星號(hào)處DS:0HDS:0AH 的內(nèi)容 (CS:000FH)31 32 37 33 32

5、 30 36 38 31 35 (CS:0076H)01 02 07 03 02 00 06 08 01 05 (CS:0086H)01 09 05 04 07 00 06 08 01 05 (CS:0090H)31 39 35 34 37 00 06 08 01 055 在操作系統(tǒng)狀態(tài)下,運(yùn)行程序,并記錄屏幕顯示內(nèi)容。被 加 數(shù)加 數(shù)屏 幕 顯 示 內(nèi) 容127320681519547107324369154423650871763182718六思考題1.將上述程序改為5位數(shù)相加,結(jié)果為6位數(shù)的加法程序。(需考慮進(jìn)位)新的程序清單: DISPMACRO XMOVDL,X ;要顯示的字符送DL

6、寄存器MOVAH,02H ;DOS功能調(diào)用號(hào)是02HINT21H ;21H中斷程序是DOS功能調(diào)用ENDMDATASEGMENTDATA1DB 82732 ;修改后的5位數(shù),相加為6位數(shù)!DATA2DB 36815NEQU $-DATA2DATAENDSSTACKSEGMENT STACKSTADB 20 DUP (?)TOPEQU $-STASTACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK,ES:DATASTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSS,AXMOVAX,TOPMOVSP,AXLEASI,DA

7、TA1;MOVBX,0MOVCX,NCALLDISPL;顯示被加數(shù)DISP+ LEASI,DATA2MOVBX,0MOVCX,NCALLDISPL;顯示加數(shù)DISP=LEADI,DATA1MOVCX,N CALLADDA;調(diào)用加法子程序LEASI,DATA1MOVBX,0MOVCX,NCALLDISPL;顯示運(yùn)算結(jié)果DISP0DHDISP0AHMOVAX,4C00HINT21HDISPLPROC;顯示子程序DS1:MOVAH,02HMOVDL,SI+BXINT21HINCBXLOOPDS1RETDISPLENDPADDAPROC;加法子程序PUSHCXMOVBX,0AD1: SUB BYTE

8、PTR SI+BX,30H SUB BYTE PTR DI+BX,30HINCBXLOOPAD1POPCXPUSHCXMOVBX,N-1;CLCAD2:MOVAL,SI+BXADCAL,DI+BXAAAMOVDI+BX,ALDECBXLOOPAD2POPCXPUSHCXMOVBX,0;AD3: ADD BYTE PTR DI+BX,30HINCBXLOOPAD3POPCXRET;ADDAENDPCODEENDSENDSTART2.簡(jiǎn)單敘述上機(jī)步驟,調(diào)試方法。上機(jī)步驟及調(diào)試 編寫代碼完成功能要求,文件格式為.asm 文件(如文件名為a.asm),將文件放入帶匯編工具的文件夾中,即含有匯編工具(M

9、ASM.EXE)和鏈接工具(LINK.EXE)的文件夾。 打開運(yùn)行窗口,輸入“cmd”然后確定。啟動(dòng)命令行,進(jìn)入上述文件夾輸入:tasm a.asm 回車后編譯產(chǎn)生a.obj文件再輸入:link a.obj 回車后鏈接產(chǎn)生a.exe文件最后輸入: a.exe 回車后運(yùn)行結(jié)果如圖1圖1.運(yùn)行結(jié)果如果程序有錯(cuò)誤,編譯時(shí)會(huì)產(chǎn)生錯(cuò)誤提示,指出錯(cuò)誤的位置和錯(cuò)誤類型及錯(cuò)誤碼,改正錯(cuò)誤后再重新編譯鏈接,直到?jīng)]有錯(cuò)誤和編譯鏈接成功。 啟動(dòng)TD并載入add.exe ,在代碼段可以看到程序指令,部分符號(hào)已被實(shí)際地址或數(shù)值替換表示。 查看數(shù)據(jù)區(qū)的數(shù)值:右擊選擇數(shù)據(jù)區(qū)的菜單中的Goto,在其輸入框內(nèi)輸入要查看的數(shù)據(jù)區(qū)

10、地址,如cs:000FH,如圖2和圖3;回車確認(rèn)后即可查看數(shù)據(jù)區(qū)從段地址為CS、偏移地址為000FH開始的存儲(chǔ)情況圖2.goto圖3.找到CS字段設(shè)置斷點(diǎn)選中“cs:000FH”段,然后運(yùn)行菜單欄“Breakpoints”,在該處設(shè)置斷點(diǎn)!斷點(diǎn)設(shè)置完成后再運(yùn)行程序.查看DS同樣用Goto找到想要查看的DS,圖4.找到對(duì)應(yīng)的DS記錄DS 注意1、 將源代碼部分直接拷貝到文本文件中,再將其擴(kuò)展名改為asm。2、 使用個(gè)人主頁(yè)中的匯編語(yǔ)言編譯器(TASM.EXE或MASM.EXE之一均可),將1中的源文件編譯成擴(kuò)展名為.obj的目標(biāo)文件;再將其鏈接成為可執(zhí)行文件(使用TLINKEXE文件或LINKEXE文件之一均可);例如:假設(shè)源文件名為temp.asm。 匯編過(guò)程如下:

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論