版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGE2第1頁/共9頁《匯編語言程序設(shè)計(jì)》實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名順序結(jié)構(gòu)程序設(shè)計(jì)實(shí)驗(yàn)室實(shí)驗(yàn)樓實(shí)驗(yàn)日期2014-05-05一、實(shí)驗(yàn)?zāi)康募耙?.熟悉命令格式,功能,加強(qiáng)對(duì)指令系統(tǒng)的理解2.編寫簡單順序結(jié)構(gòu)程序3.單步跟蹤調(diào)試,觀察寄存器的變化和指令執(zhí)行的結(jié)果二、實(shí)驗(yàn)環(huán)境硬件環(huán)境:一臺(tái)微型計(jì)算機(jī)軟件環(huán)境:windowsxp,debug環(huán)境,masm三、實(shí)驗(yàn)內(nèi)容(至少寫3個(gè)程序)題目一:求x+y+z的和,并把結(jié)果送給給w,其中x,y,z,w是數(shù)據(jù)段的標(biāo)記符,用來存放三個(gè)數(shù)據(jù)1.設(shè)計(jì):首先,在數(shù)據(jù)段中,定義x,y,z分別存5,6,7三個(gè)值,同時(shí)申請(qǐng)一個(gè)字單元,用標(biāo)號(hào)w來表示,用來存放表達(dá)式的結(jié)果;在代碼段中,首先初始化,然后將x中所存放的值傳送給計(jì)算器A,再將計(jì)算器A中的內(nèi)容和y中的內(nèi)容相加,結(jié)果存放在計(jì)算器A中,再將計(jì)算器A中的內(nèi)容和z中的內(nèi)容相加,結(jié)果同樣存放在計(jì)算器A中,最后將計(jì)算器A中的內(nèi)容傳送到w中。2.源程序清單datasegmentX dw5Y dw6Z dw7W dw?dataends;定義數(shù)據(jù)段,分別給X,Y,Z賦初值,并為W開辟存儲(chǔ)空間codesegment;代碼段mainprocfarassumecs:code,ds:datastart:pushdsxorax,ax pushaxmovax,data;初始化movds,ax movax,X addax,Y;X和Y的和存入累加器A addax,Z movW,ax;X,Y,Z之和存入W中retmainendpcodeends;代碼段結(jié)束endstart3.調(diào)試過程:(1).用masm程序產(chǎn)生mwn1.obj文件,編譯沒有錯(cuò)誤,如下圖:(2).用link程序產(chǎn)生mwn1.exe文件,連接沒有錯(cuò)誤,如下圖:.進(jìn)入debug調(diào)試,用u命令反匯編,查看代碼段,數(shù)據(jù)段所在的內(nèi)存單元;(4).由(3)可知,數(shù)據(jù)段在144A段,如下圖,用d命令查看數(shù)據(jù)段的值,依次為5,6,7,接著下一個(gè)字的內(nèi)容為0:(5).用t命令單步執(zhí)行,前三次為初始化,具體的如下圖:(6)用t命令執(zhí)行,如下圖,將[0000]單元中的內(nèi)容05h傳給ax,ax中的內(nèi)容為0005,將[0002]單元中的內(nèi)容和ax相加,并把結(jié)果存放在ax中,ax中的內(nèi)容為000b=(5+6)用t命令執(zhí)行,如下圖,將[0004]單元中的內(nèi)容0bh和ax相加,并把結(jié)果存放在W中,W中的內(nèi)容為0012=(0b+7)題目二:1.設(shè)計(jì):首先,在數(shù)據(jù)段中,定義字符串存放在變量s1中,同時(shí)申請(qǐng)一個(gè)字單元,用標(biāo)號(hào)s2來表示,用來存放計(jì)數(shù)次數(shù);在代碼段中,首先初始化,然后,根據(jù)cld與rep的組合遞減,將字符一個(gè)一個(gè)根據(jù)地址的指示按順序輸出。源程序清單datasegments1db'Thisisaprogram!$'countequ$-s1;變量count代替$-s1s2dbcountdup(?)dataends;定義數(shù)據(jù)段,變量s1為字符串'Thisisaprogram!$',;變量s2是重復(fù)計(jì)數(shù)次數(shù)codesegment;代碼段assumecs:code,ds:data,es:datastart:movax,datamovgtmoves,ax;初始化movsi,offsets1;將變量s1的偏移地址放入寄存器si中movdi,offsets2;將變量s2的偏移地址放入寄存器di中movcx,count;將計(jì)數(shù)次數(shù)存入寄存器cx中Cldrepmovsb;在字符串的比較,di或si是可以自動(dòng)增減,即si,di向前移動(dòng)movdx,offsets2movah,9int21hmovax,4c00hint21h;輸出結(jié)果codeendsendstart3.調(diào)試過程:(1).用masm程序產(chǎn)生mwn2.obj文件,編譯沒有錯(cuò)誤,如下圖:(2).用link程序產(chǎn)生mwn1.exe文件,連接沒有錯(cuò)誤,如下圖:(3).進(jìn)入debug調(diào)試,用u命令反匯編,查看代碼段,數(shù)據(jù)段所在的內(nèi)存單元;(4).由(3)可知,數(shù)據(jù)段在144A段,如下圖,用d命令查看數(shù)據(jù)段的值,依次為Thisisaprogram!$,接著下一個(gè)字的內(nèi)容為0:(5)用t命令單步執(zhí)行,前三次為初始化,具體的如下圖:用t命令執(zhí)行,如下圖,將偏移地址存入si,di;用t命令執(zhí)行,如下圖,命令執(zhí)行count次數(shù);(8)執(zhí)行結(jié)果,如下圖:題目三:查表法,實(shí)現(xiàn)一位16進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼顯示1.設(shè)計(jì):首先,在數(shù)據(jù)段中,定義0~9的ASCII碼、A~F的ASCII碼,并設(shè)定一個(gè)待轉(zhuǎn)換的數(shù);在代碼段中,首先初始化,然后指定寄存器BX存放ASCII碼轉(zhuǎn)換表,根據(jù)待轉(zhuǎn)換的數(shù),查找ASCII碼表,根據(jù)偏移地址確定轉(zhuǎn)換結(jié)果。源程序清單datasegmentASCIIdb30h,31h,32h,33h,34h,35h db36h,37h,38h,39h ;0~9的ASCII碼 db41h,42h,43h,44h,45h,46h;A~F的ASCII碼Hexdb0bh;任意設(shè)定一個(gè)待轉(zhuǎn)換的一位16進(jìn)制數(shù)dataends;數(shù)據(jù)段定義codesegment;代碼段mainprocfarassumecs:code,ds:datastart: pushds xorax,ax pushax movax,data movds,ax ;初始化 movbx,offsetASCII ;BX指向ASCII碼表 moval,hex ;AL取得一位16進(jìn)制數(shù),正是ASCII碼表中位移andal,0fh ;只有低4位是有效的,高4位清0 xlat ;換碼:AL←DS:[BX+AL] movdl,al ;入口參數(shù):DL←AL movah,2 ;02號(hào)DOS功能調(diào)用 int21h ;顯示一個(gè)ASCII碼字符 retmainendpcodeendsendstart3.調(diào)試過程:(1)用masm程序產(chǎn)生mwn3.obj文件,編譯沒有錯(cuò)誤,如下圖:(2)用link程序產(chǎn)生mwn3.exe文件,沒有錯(cuò)誤,如下圖:(3)進(jìn)入debug調(diào)試,用u命令反匯編,查看代碼段,數(shù)據(jù)段所在的內(nèi)存單元;(4).由(3)可知,數(shù)據(jù)段在144A段,如下圖,用d命令查看數(shù)據(jù)段的值,依次為5,6,7,接著下一個(gè)字的內(nèi)容為0:(5).用t命令單步執(zhí)行,前三次為初始化,具體的如下圖:(6)用t命令執(zhí)行,如下圖,將BX指向ASCII碼表;(7)用t命令執(zhí)行,如下圖,AL取得一位16進(jìn)制數(shù),即ASCII碼表中位移;(8)用t命令執(zhí)行,如下圖,高4位清0,只有低4位有效;(9)用t命令執(zhí)行,如下圖,換碼過程;(10)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子承包合同范本
- 風(fēng)濕病的藥物治療如何正確的使用藥物
- 農(nóng)戶借款合同范本
- 承包合同生效日期
- 問領(lǐng)導(dǎo)合同最簡單三個(gè)步驟
- 養(yǎng)老機(jī)構(gòu)安全保障義務(wù)的泛化及重塑
- 2025年瀘州道路運(yùn)輸從業(yè)資格考試下載
- 財(cái)務(wù)顧問協(xié)議三篇
- 數(shù)據(jù)中心冷卻通道導(dǎo)流裝置特性的模擬研究
- 2025年粵教版選修一歷史下冊(cè)階段測(cè)試試卷
- 高中語文:選擇性必修中冊(cè)第三單元拓展閱讀
- 耳穴壓豆課件
- 2023年江蘇省南京市中考化學(xué)真題(原卷版)
- 2023年湖北省襄陽市中考數(shù)學(xué)真題(原卷版)
- 變電站現(xiàn)場運(yùn)行通用規(guī)程考試試題及答案
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院單招職業(yè)技能測(cè)試參考試題庫(含答案)
- 中醫(yī)護(hù)理查房制度
- 母嬰護(hù)理員題庫
- 老年人預(yù)防及控制養(yǎng)老機(jī)構(gòu)院內(nèi)感染院內(nèi)感染基本知識(shí)
- SWITCH暗黑破壞神3超級(jí)金手指修改 版本號(hào):2.7.6.90885
- 2023高考語文全國甲卷詩歌閱讀題晁補(bǔ)之《臨江仙 身外閑愁空滿眼》講評(píng)課件
評(píng)論
0/150
提交評(píng)論