




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
華北電力大學(xué)課 程 報 告| 報告名稱 匯編語言的數(shù)據(jù)處理實踐 課程名稱 微機原理與匯編語言程序設(shè)計 | 專業(yè)班級:信安1301 學(xué)生姓名: 學(xué) 號: 成 績:7* 封面左側(cè)印痕處裝訂工作量(25)規(guī)范性(25)邏輯性(25)新穎性(25)總成績(100) 一、設(shè)計要求采用恰當?shù)膮R編語言設(shè)計環(huán)境,基于課程中對有符號數(shù)組輸入輸出、求平均值、輸出平均值的程序例子,設(shè)計能對有符號數(shù)據(jù)進行處理的程序,要求在程序中實踐三種主程序與子程序參數(shù)傳遞的方法、實踐子程序庫的使用方法和宏匯編技術(shù),并能體現(xiàn)一定的新穎性。要求整個設(shè)計具備一定的工作量,報告描述格式規(guī)范、條理清晰,并能反映自己的創(chuàng)新。2、 設(shè)計內(nèi)容1.從鍵盤輸入有符號十進制數(shù)的子程序,實現(xiàn)子程序與主程序通過寄存器傳遞參數(shù)。2.向顯示器輸出有符號十進制數(shù)的子程序,實現(xiàn)子程序與主程序通過共享變量傳遞參數(shù)。3.求數(shù)組的平均值,實現(xiàn)子程序與主程序通過堆棧傳遞參數(shù)。4.顯示數(shù)組的平均值。5.對重復(fù)匯編的程序語句,設(shè)計子程序庫和宏匯編技術(shù)3、 所用環(huán)境介紹所采用的實驗環(huán)境是masmforwindowsMasmforwindows集成實驗環(huán)境是從事一線教學(xué)的大學(xué)教師針對匯編語言初學(xué)者的特點開發(fā)的一個簡單易用的匯編語言學(xué)習(xí)與實驗軟件,支持最新操作系統(tǒng)WINDOWS7,支持DOS的16/32位匯編程序和Windows下的32匯編程序(并提供調(diào)試通過的35個WINDOWS匯編程序?qū)嵗创a),它具有錯誤信息自動定位、關(guān)鍵字實時幫助并且在幫助中動畫演示匯編指令的執(zhí)行過程、語法著色、無限次撤消與恢復(fù)、WORD式的查找、替換、定位、支持中文、長文件名等功能。4、 實驗方法與步驟1. 子程序從鍵盤輸入一個有符號10進制數(shù),負數(shù)用“-”引導(dǎo),正數(shù)直接輸入或用“+”引導(dǎo),子程序還要包含將ascii碼轉(zhuǎn)換為二進制數(shù)的過程,算法如下:(1)判斷是正數(shù)還是負數(shù),并用一個寄存器記錄下來(2)輸入09數(shù)字(ASCII碼),減30h轉(zhuǎn)換為二進制數(shù)(3)將前面輸入的數(shù)值乘以10,并與剛輸入的數(shù)字相加得到新的數(shù)值(4)重復(fù)(2)、(3),直到輸入一個非數(shù)字字符結(jié)束(5)如果是負數(shù)則求補,轉(zhuǎn)換成補碼,否則直接保存數(shù)字2. 子程序在屏幕上顯示一個有符號10進制數(shù),負數(shù)用“-”引導(dǎo)。子程序還包含將二進制數(shù)轉(zhuǎn)換為ASCII碼的過程,算法如下:(1)首先判斷數(shù)據(jù)是零、正數(shù)還是負數(shù),是零,直接顯示0(2)是負數(shù),顯示“-”,求數(shù)據(jù)的絕對值(3)數(shù)據(jù)除以10,余數(shù)加30h轉(zhuǎn)換為ASCII碼壓入堆棧(4)重復(fù)步驟(3),直到商為0結(jié)束(5)依次彈出堆棧中的各位數(shù)字,顯示子程序入口參數(shù)為共享變量wtemp傳遞,主程序調(diào)3. 用子程序顯示10個數(shù)據(jù)。子程序?qū)?6位有符號二進制數(shù)求和,然后除以數(shù)據(jù)個數(shù)得到平均值(1)為了避免溢出,被加數(shù)要進行符號擴展,得到倍長數(shù)據(jù)(大小沒有變化),然后求和。因為采用16位二進制數(shù)表示數(shù)據(jù)個數(shù),最大是216,這樣擴展到32位二進制數(shù)表達累加和,不再會出現(xiàn)溢出(考慮極端情況:數(shù)據(jù)全是215,共有216個,求和結(jié)果是231,32位數(shù)據(jù)仍然可以表達)(2)子程序的入口參數(shù)利用堆棧傳遞,主程序需要壓入數(shù)據(jù)個數(shù)和數(shù)據(jù)緩沖區(qū)的偏移地址。子程序通過BP寄存器從堆棧段相應(yīng)位置取出參數(shù)(非棧頂數(shù)據(jù)),子程序的出口參數(shù)用寄存器AX傳遞。主程序提供10個數(shù)據(jù),并保存平均值。4. 子程序模塊(1)為了使子程序更加通用和得到復(fù)用,我們可以將子程序單獨編寫成一個源程序文件,經(jīng)過匯編之后形成目標OBJ文件,這就是子程序模塊。這樣,某個程序使用到該子程序,只要在連接時輸入子程序文件名就可以了。實際上在進行連接時的目標模塊文件可以用匯編程序產(chǎn)生,也可以用其他編譯程序產(chǎn)生。(2)子程序庫當子程序模塊很多時,要記住各個模塊的文件名就是一件很麻煩的事情,有時還會把沒有用的子程序也連接到可執(zhí)行程序中,因而我們采用子程序庫文件,存放各個子程序的名稱、目標代碼。以及有關(guān)定位信息。子程序文件編寫完成,匯編成為目標模塊,然后利用庫管理工具LIB.EXE,把子程序模塊逐個加入到庫中,連接就可以使用了。使用子程序庫中的子程序,需要在連接過程中指明子程序庫,或者主程序使用MASM通提供的子程序庫文件包含偽指令I(lǐng)NCLUDE指明,其格式為:INCLUDELIB庫文件名需要明確的是,利用INCLUDE偽命令包含其他文件,其本質(zhì)上還是一個源文件,只不過是分成了幾個文件來寫,而且被包含的文件不能獨立匯編,是依附主程序而存在的。庫管理工具程序LIB.EXE幫助創(chuàng)建、組織和維護子程序模塊庫,例如增加、刪除、替換、合并庫文件等。子程序文件編寫完后,僅進行匯編形成目標文件;然后利用庫管理工具程序,把子程序目標模塊注意加入到庫中。加入庫文件的常用命令為:LIB庫文件名+子程序目標文件名使用庫文件中的子程序模塊的方法,是在連接程序提示庫文件名時(Libraries.lib:)輸入庫文件名。如果源程序文件中已經(jīng)使用庫文件包含偽指令I(lǐng)NCLUDELB進行了申明,則不需要輸入庫文件名得到該程序的命令行使用的簡要說明。宏匯編宏是具有宏名的一段匯編語言序列,宏需要先定義,然后在程序中進行宏調(diào)用,由于是在匯編過程中實現(xiàn)的宏展開,所以常稱為宏匯編。首先進行宏定義,之后進行宏調(diào)用。在匯編時,宏指令被匯編程序用對應(yīng)的代碼序列替代,稱之為宏展開。(1) 宏定義格式宏名MACRO形參表;宏定義體ENDM(2)宏調(diào)用宏定義之后就可以使用它,即宏調(diào)用。宏調(diào)用遵循先定義后調(diào)用的原則,格式為:宏名實參表在匯編時,宏指令被匯編程序用對應(yīng)的代碼序列替代,稱之為宏展開。匯編后的列表文件中帶“+”(3)局部標號格式當宏定義體具有分支、循環(huán)等程序結(jié)構(gòu)時,需要標號。宏定義體中的標號必須用LOCAL偽指令聲明為局部標號,否則多次使用宏調(diào)用將出現(xiàn)標號的重復(fù)定義語法錯誤。局部標號偽指令LOCAL只能用于宏定義體內(nèi),而且是宏定義MACRO語句之后的第一條語句,而且兩者間也不允許有注釋和分號,格式如下:LOCAL標號列表5、 實驗結(jié)果與數(shù)據(jù)處理6、 結(jié)論 采用寄存器傳遞參數(shù),帶有出口參數(shù)的寄存器不能被保護和恢復(fù),帶有入口參數(shù)的寄存器可以保護也可以不保護。利用共享變量傳遞參數(shù),子程序通用性差,特別適合多個程序段間,尤其在不同的程序模塊之間傳遞數(shù)據(jù)。堆棧傳遞參數(shù)采用先進后出,返回地址和保護的寄存器,要時刻注意堆棧的分配。 剛開始做實驗時,只是按照書上的順序執(zhí)行,不怎么明白具體是怎么執(zhí)行的,隨著實驗的深入,漸漸知道匯編語言的特點的,匯編語言是基于計算機硬件的操作,所以具有執(zhí)行速度快,語言簡潔等優(yōu)點。也讓我明白匯編語言和高級語言的不同。通過這次的實驗,讓我對計算機的硬件工作系統(tǒng)有了更加細致的了解,也希望以后能在這方面加強自己,爭取能有一定的專業(yè)知識。7、 附錄(關(guān)鍵實驗代碼等)DATASSEGMENTstringdbINPUT:,$;此處輸入數(shù)據(jù)段代碼wtempdw?wmeddw?count=10arraydwcountDUP(0)DATASENDSSTACKSSEGMENT;此處輸入堆棧段代碼STACKSENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,SS:STACKSstart:MOVAX,DATASMOVDS,AXMOVCX,countMOVBX,OFFSETarrayagain:MOVAH,9MOVDX,OFFSETstringINT21HCALLreadMOVBX,AXINCBXINCBXCALLdpcrlfLOOPagainMOVAH,4CHINT21H;*有符號十進制數(shù)輸入*readprocpushbxpushcxpushdxxorbx,bxxorcx,cx;正負標志movah,1int21hcmpal,+jzread1cmpal,-jnzread2movcx,-1;是-,設(shè)置-1標志read1:movah,1;繼續(xù)輸入字符int21hread2:cmpal,0jbread3cmpal,9jaread3subal,30h;imuldx,10;原數(shù)值乘以10shlbx,1movdx,bxshlbx,1shlbx,1;movzxax,aladdbx,dx;movah,0addbx,axjmpread1;已輸入數(shù)值乘10后,與新輸入的數(shù)值相加read3:;求補碼cmpcx,0jzread4negbxread4:movax,bxpopdxpopcxpopbxretreadendpdpcrlfprocpushaxpushdxmovah,2movdl,0dhint21hmovah,2movdl,0ahint21hpopdxpopaxretdpcrlfendp;*有符號十進制數(shù)顯示*writeprocpushaxpushbxpushdxmovax,wtemptestax,ax;判斷數(shù)據(jù)是正數(shù)、負數(shù)還是0jnzwrite1movdl,0movah,2int21hjmpwrite5write1:jnswrite2;正數(shù),跳轉(zhuǎn)movbx,axmovdl,-movah,2int21hmovax,bxnegaxwrite2:movbx,10pushbxwrite3:cmpax,0jzwrite4subdx,dxdivcxadddl,30hpushdxjmpwrite3write4:popdxcmpdl,10jewrite5movah,2int21hjmpwrite4write5:popdxpopbxpopaxretwriteendp;*計算有符號數(shù)平均值*movax,countpushax;壓入數(shù)據(jù)個數(shù)movax,offsetarraypushax;壓入數(shù)據(jù)緩沖區(qū)的偏移地址callmean;調(diào)用子程序,求平均值addsp,4;平衡堆棧movwmed,ax;保存出口參數(shù)movax,4c00hint21hmeanprocpus
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生茶室建筑設(shè)計作業(yè)分析
- 幼兒防火安全教育
- 廣東省香山中學(xué)高要一中廣信中學(xué)2024-2025學(xué)年高一下學(xué)期第一次教學(xué)質(zhì)量檢測試題數(shù)學(xué)
- 2025年安徽省合肥市瑤海區(qū)中考一模語文試題含答案
- 2024-2025管理人員安全培訓(xùn)考試試題【黃金題型】
- 2025工廠職工安全培訓(xùn)考試試題及答案(奪冠)
- 2025年項目部治理人員安全培訓(xùn)考試試題(高清)
- 2024-2025公司項目部管理人員安全培訓(xùn)考試試題附答案【鞏固】
- 25年企業(yè)管理人員安全培訓(xùn)考試試題(突破訓(xùn)練)
- 2025公司安全管理人員安全培訓(xùn)考試試題及參考答案【培優(yōu)A卷】
- SH/T 1673-1999工業(yè)用環(huán)己烷
- GB/T 9661-1988機場周圍飛機噪聲測量方法
- GB 29541-2013熱泵熱水機(器)能效限定值及能效等級
- FZ/T 07019-2021針織印染面料單位產(chǎn)品能源消耗限額
- 重癥醫(yī)學(xué)科各項規(guī)章制度匯編
- 社會組織培訓(xùn)概述課件
- 春節(jié)作文優(yōu)秀課件
- 三角函數(shù)的應(yīng)用論文Word版
- 農(nóng)業(yè)創(chuàng)業(yè)風(fēng)險控制與防范培訓(xùn)課件
- 生物制造國內(nèi)外狀況課件
- 幼兒園大班數(shù)學(xué)口算練習(xí)題可打印
評論
0/150
提交評論