北京信息科技大學(xué) 《80X86匯編語言程序設(shè)計(jì)》 實(shí)驗(yàn)二報(bào)告_第1頁
北京信息科技大學(xué) 《80X86匯編語言程序設(shè)計(jì)》 實(shí)驗(yàn)二報(bào)告_第2頁
北京信息科技大學(xué) 《80X86匯編語言程序設(shè)計(jì)》 實(shí)驗(yàn)二報(bào)告_第3頁
北京信息科技大學(xué) 《80X86匯編語言程序設(shè)計(jì)》 實(shí)驗(yàn)二報(bào)告_第4頁
北京信息科技大學(xué) 《80X86匯編語言程序設(shè)計(jì)》 實(shí)驗(yàn)二報(bào)告_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

實(shí)驗(yàn)報(bào)告課程名稱匯編語言程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目實(shí)驗(yàn)二、分支、循環(huán)程序結(jié)構(gòu)和設(shè)計(jì)實(shí)驗(yàn)儀器微機(jī)系統(tǒng)、匯編調(diào)試環(huán)境系別 計(jì)算機(jī)科學(xué)與技術(shù)專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)班級/學(xué)號 學(xué)生姓名 實(shí)驗(yàn)日期 成績 指導(dǎo)教師 胡信裕 PAGE1實(shí)驗(yàn)二分支、循環(huán)程序結(jié)構(gòu)和設(shè)計(jì)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)匯編程序設(shè)計(jì)的基本方法,掌握用匯編語言設(shè)計(jì)、編寫、調(diào)試和運(yùn)行程序的方法;熟悉匯編語言源程序的編輯和匯編、目標(biāo)模塊的連接以及可執(zhí)行程序的調(diào)試;熟悉、掌握順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)和調(diào)試。實(shí)驗(yàn)要求Windows操作系統(tǒng)并具有命令提示符操作界面的計(jì)算機(jī),且系統(tǒng)內(nèi)安裝有匯編語言編程環(huán)境。在開始本實(shí)驗(yàn)之前,復(fù)習(xí)教科書的相關(guān)內(nèi)容,并預(yù)先寫出相應(yīng)的源程序。通過匯編IDE上機(jī)調(diào)試,注意觀察,并記錄下現(xiàn)象。實(shí)驗(yàn)內(nèi)容(一)將鍵盤上輸入的十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),在屏幕上顯示【可鍵入任意字符,但只對十六進(jìn)制數(shù)轉(zhuǎn)換顯示】,遇ESC鍵輸入結(jié)束程序運(yùn)行退出。部分程序設(shè)計(jì)參考如下:【要求分析理解后加必要注釋】DATASEGMENTXdb0dh,0ah,'pleaseinput4charsof16H:','$'Ydb0dh,0ah,'ouputofresult:','$'DATAENDSCodesegmentMainprocfarAssumecs:codeStart:Movax,dataMovds,ax;讀鍵盤R_key:movah,09hmovdx,OFFSETXint21hmovah,01h;獲取輸入的字符并顯示int21h;鍵入數(shù)處理cmpal,1bh;'ESC'=1bhjzexit;當(dāng)al=1bh時(shí),跳轉(zhuǎn)到exit退出cmpal,'0';比較al與0jlR_key;當(dāng)al<0時(shí),跳轉(zhuǎn)到R_key重新輸入cmpal,'9';比較al與9jleD0_9;當(dāng)al<=9時(shí),跳轉(zhuǎn)到D0_9進(jìn)行進(jìn)制轉(zhuǎn)換cmpal,'A';比較al與AjlR_key;當(dāng)al<A時(shí),跳轉(zhuǎn)到R_key重新輸入cmpal,'F';比較al與FjleDA_F;當(dāng)al<=F時(shí),跳轉(zhuǎn)到DA_F進(jìn)行進(jìn)制轉(zhuǎn)換cmpal,'a';比較al與ajlR_key;當(dāng)al<a時(shí),跳轉(zhuǎn)到R_key重新輸入cmpal,'f';比較al與fjleDa_f;當(dāng)al<=f時(shí),跳轉(zhuǎn)到DA_F進(jìn)行進(jìn)制轉(zhuǎn)換JMPR_key;若不符合上述情況,則無條件轉(zhuǎn)移到R_key重新輸入;0~9的處理D0_9:subal,30hmovah,0;高位置零movbx,axjmpdisp;無條件轉(zhuǎn)移;A(a)~F(f)的處理DA_F:addal,0fh;使低四位數(shù)據(jù)有效andal,0fh;高四位清零,取al的低四位movah,1;添高位movbx,axdisp:movah,09hmovdx,OFFSETYint21haddbh,30h;高位轉(zhuǎn)換成ASCII碼movdl,bh;顯示十位movah,2int21haddbl,30h;低位轉(zhuǎn)換成ASCII碼movdl,bl;顯示個(gè)位movah,2int21hmovdl,0dh;回車int21hmovdl,0ah;換行int21hjmpr_key;無條件轉(zhuǎn)到R_key獲取鍵盤輸入exit:movax,4c00hint21h;retmainendpCodeendsEndmain運(yùn)用文本編輯器編輯實(shí)驗(yàn)源程序(EXP2_1.asm);在IDE操作環(huán)境下,對源程序(EXP2_1.asm)進(jìn)行編譯和連接,生成生成鏈接文件(EXP2_1.obj)和可執(zhí)行文件(EXP2_1.exe);運(yùn)行IDE操作環(huán)境下的調(diào)試命令,調(diào)試可執(zhí)行文件(EXP2_1.exe);運(yùn)行IDE操作環(huán)境下的執(zhí)行命令,運(yùn)行可執(zhí)行文件(EXP2_1.exe)結(jié)果說明:輸入16進(jìn)制數(shù):1af2gqesc輸出十進(jìn)制結(jié)果:110152nullnullend實(shí)驗(yàn)結(jié)果【是/否】符合實(shí)驗(yàn)程序設(shè)計(jì)要求。確實(shí)符合實(shí)驗(yàn)設(shè)計(jì)要求(二)將鍵盤上輸入的四位十六進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù),并在屏幕上顯示【可鍵入任意字符,但只接受十六進(jìn)制數(shù)輸入;可設(shè)定四次有效鍵盤輸入、或以回車鍵作為當(dāng)前輸入結(jié)束,開始轉(zhuǎn)換顯示】,遇ESC鍵輸入結(jié)束程序運(yùn)行退出。程序設(shè)計(jì)如下:【要求加必要注釋】DATASEGMENTBUFDB4DUP(?)NEQU4RESULTDB5DUP(?),20H,'$'mess1db0dh,0ah,0ah,'pleaseinput4charsof16H:','$'mess2db0dh,0ah,0ah,09h,'ouputofresult:','$'mess3db0dh,0ah,0ah,09h,'error!!!',0dh,0ah,'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXR_KEY:MOVCX,NLEASI,BUFmovah,9movdx,offsetmess1int21hLP1:MOVAH,1INT21HCMPAL,1BHJEEXITCMPAL,'0'JLLOP7CMPAL,'9'JLELOP9CMPAL,'A'JLLOP7CMPAL,'F'JLELOP11CMPAL,'a'JLLOP7CMPAL,'f'JGLOP7;將鍵盤輸入的合法數(shù)據(jù)存入定義的變量BUF中LOP12:SUBAL,20HLOP11:SUBAL,07HLOP9:SUBAL,30HLOP10:MOV[SI],ALINCSILOOPLP1JMPLOP8LOP7:MOVAH,9MOVDX,offsetmess3INT21HJMPLP1LOP8:MOVSI,OFFSETBUFLOP4:MOVAL,[SI]INCSIMOVBL,[SI]MOVCL,4SALAL,CLADDAL,BLCMPSI,2JALOP5;將高兩位壓縮的BCD碼放入BUF的第一位中LOP6:MOV[SI-1],ALINCSIJMPLOP4;將低兩位壓縮的BCD碼放入BUF的第二位中LOP5:MOV[SI-2],ALLEASI,BUF;將BUF中的數(shù)據(jù)讀出,并進(jìn)行16進(jìn)制到10進(jìn)制的轉(zhuǎn)化LP2:MOVCX,5MOVBX,10MOVAH,[SI]MOVAL,[SI+1]PushAXMOVDI,OFFSETRESULT+4LP3:XORDX,DXDIVBXORDL,30HMOV[DI],DLDECDILOOPLP3POPAXADDAX,3030HMOVAH,9MOVDX,OFFSETmess2int21hLEADX,RESULTINT21HJMPR_KEY;返回dos界面EXIT:MOVAH,4CHINT21HCODEENDSENDSTART運(yùn)用文本編輯器編輯實(shí)驗(yàn)源程序(EXP2_2.asm);在IDE操作環(huán)境下,對源程序(EXP2_2.asm)進(jìn)行編譯和連接,生成生成鏈接文件(EXP2_1.obj)和可執(zhí)行文件(EXP2_2.exe);運(yùn)行IDE操作環(huán)境下的調(diào)試命令,調(diào)試可執(zhí)行文件(EXP2_2.exe);運(yùn)行IDE操作環(huán)境下的執(zhí)行命令,運(yùn)行可執(zhí)行文件(EXP2_2.exe)結(jié)果說明:輸入16進(jìn)制數(shù):1234ABCDBCDFes輸出十進(jìn)制結(jié)果:046604398148351error?。?!實(shí)驗(yàn)結(jié)果【是/否】符合實(shí)驗(yàn)程序設(shè)計(jì)要求。確實(shí)符合實(shí)驗(yàn)設(shè)計(jì)要求實(shí)驗(yàn)總結(jié)實(shí)驗(yàn)過程中所涉及的主要操作:仔細(xì)認(rèn)真看老師給的代碼,對代碼進(jìn)行分析、標(biāo)記注釋。有很多自己不熟悉的指令,通過查找書,理解了代碼的含義及功能。并補(bǔ)充完整老師給的代碼,通過TPC調(diào)試,在不斷修改的過程中,通過了編譯。完成了第一小題。因?yàn)榈诙☆}是在第一小題輸入一位16進(jìn)制的基礎(chǔ)上,輸入四位16進(jìn)制。所以需要分析兩者的區(qū)別。通過書上例題以及請教同學(xué),了解到四位16進(jìn)制轉(zhuǎn)換為10進(jìn)制需要用到移位的操作。在不斷修改、完善程序的過程中,終于通過了編譯。實(shí)驗(yàn)過程中出現(xiàn)的主要問題進(jìn)行分析并給出解決方案說明:在實(shí)驗(yàn)中,不知道如何將ASCII碼轉(zhuǎn)換成字符,需要根據(jù)用戶輸入的不同范圍的數(shù)據(jù)分別將ASCII值減去57H,37H和30H。執(zhí)行時(shí),結(jié)果和輸入數(shù)據(jù)中間沒有間隔,不方便觀察,在請教同學(xué)之后得到了解決。對比設(shè)計(jì)要求,對實(shí)驗(yàn)結(jié)果及完成情況進(jìn)行說明:第一個(gè)實(shí)驗(yàn)符合實(shí)驗(yàn)設(shè)計(jì)要求,對16進(jìn)制數(shù)進(jìn)行轉(zhuǎn)換為10進(jìn)制數(shù)進(jìn)行輸出。并且在用戶輸入無關(guān)字符時(shí)候能無視。第二個(gè)實(shí)驗(yàn)符合實(shí)驗(yàn)設(shè)計(jì)要求,對用戶輸入的4位16進(jìn)制數(shù)進(jìn)行轉(zhuǎn)換。并且在用戶輸入無效字符時(shí)報(bào)錯(cuò)。實(shí)驗(yàn)后的體會、感想和建議:通過這次實(shí)驗(yàn),

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論