2023年微機原理第二次實驗報告_第1頁
2023年微機原理第二次實驗報告_第2頁
2023年微機原理第二次實驗報告_第3頁
2023年微機原理第二次實驗報告_第4頁
2023年微機原理第二次實驗報告_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

實驗二:加法及判斷程序調(diào)試實驗實驗報告健行理工1402班陳麗紅一、實驗?zāi)康?.掌握編寫匯編語言源程序的基本方法和基本框架。2.學會編寫順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的匯編程序,掌握宏定義與宏調(diào)用的方法。3.掌握程序中數(shù)據(jù)的產(chǎn)生與輸入輸出的方法。二、實驗內(nèi)容1.用匯編語言編寫一個加法程序:1325十9839,用ASCII碼的形式將加數(shù)與被加數(shù)存放在數(shù)據(jù)區(qū)DATA1和DATA2中,并將相加結(jié)果顯示輸出。2.設(shè)有一組數(shù)據(jù):5,-4,0,3,100,-51,編程判斷:每個數(shù)是>0、=0、還是<0?并輸出其判斷結(jié)果。即:三、程序說明3.1實驗內(nèi)容一:(1)兩個數(shù)據(jù)先以相反的順序以ASCII碼的形式存放在數(shù)據(jù)段的DATA1和DATA2中,相加時從DATA1和DATA2的起始字節(jié)開始相加,也就是從數(shù)的個位數(shù)開始相加。相加后的結(jié)果存放在DATA2開始的存儲單元中,同時用DL保存進位位。(2)對于本題來說,題目為兩個四位數(shù)相加,所以定義循環(huán)數(shù)為4。(3)程序中的加法運算是ASCII碼運算,后面應(yīng)加一條ASCII碼加法調(diào)整指令A(yù)AA,經(jīng)AAA調(diào)整的加法指令,將ASCII碼的數(shù)據(jù)高4位清“0”,因此要將結(jié)果每位數(shù)高4位拼成3,變成ASCII碼存到DATA2(4)一位運算結(jié)束后將用于保存進位位的DL復(fù)原,進入循環(huán),進行下一位求和計算。(5)由于計算是從個位數(shù)相加開始,所以存入DATA2中的數(shù)據(jù)應(yīng)當以相反的順序輸出,故再進行一輪循環(huán)輸出,得到最終的計算結(jié)果。3.2實驗內(nèi)容二:(1)一方面將原始數(shù)據(jù)(5,-4,0,3,100,-51)裝入起始地址為VAR的字節(jié)存儲單元中。(2)將判斷結(jié)果以字符串的形式分別存放在數(shù)據(jù)區(qū)中,以便在顯示輸出時調(diào)用。(3)判斷部分采用CMP指令。從數(shù)據(jù)區(qū)中取出一個數(shù)送給AL,之后與0進行比較,得到分支結(jié)構(gòu),分別輸出“Y=0”、“Y=+1”和“Y=-1(4)程序中存在一個循環(huán)結(jié)構(gòu),對于本題,循環(huán)次數(shù)為6,調(diào)用6次分支結(jié)構(gòu)后結(jié)束。四、程序總框圖4.1實驗內(nèi)容一程序框圖4.2實驗內(nèi)容二程序框圖五、源程序清單與執(zhí)行結(jié)果5.1實驗內(nèi)容一:5.1.1程序源代碼DATASEGMENT;定義數(shù)據(jù)段,DATA為段名,將兩個數(shù)據(jù)用相反順序以ASCII碼的DATA1DB'5231'形式存放在DATA1,DATA2中DATA2DB'9389'DATAENDSCODESEGMENT;定義代碼段ASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX LEASI,DATA1;將DATA1的偏移地址給SI LEADI,DATA2;將DATA2的偏移地址給DI?MOVCX,4;定義循環(huán)數(shù)CX為4 MOVAH,00H;初始化AH,DL MOVDL,00HNEXT:MOVBL,[SI] MOVAL,[DI] ADDAL,DL;將進位位與AL中的數(shù)相加后存儲到AL?ADDAL,BL;將AL,BL相加?AAA;AAA調(diào)整 ADDAL,30H;將結(jié)果每位數(shù)高4位拼成3,變成ASCII碼?MOV[DI],AL;將ASCII碼存在DATA2?MOVDL,AH;DL用于存儲進位位?INCSI;將SI,DI加1?INCDI MOVAH,00H;將進位位復(fù)原置0 LOOPNEXT;循環(huán),進行下一位的計算求和 MOVAH,DL;該部分代碼用于保存最后一個進位位?ADDAH,30H?MOV[DI],AH MOVCX,5NEXT1:MOVAH,02H;之前的代碼輸出結(jié)果順序為相反的,通過再一次的循環(huán)輸出得到計?MOVBL,[DI]結(jié)果 MOVDL,BL INT21H?DECDI;DI減1 LOOPNEXT1 MOVAH,4CH INT21HCODEENDSENDSTART5.1.2實驗結(jié)果截圖5.2實驗內(nèi)容二:5.2.1程序源代碼DATASEGMENT;定義數(shù)據(jù)段VARDB5,-4,0,3,100,-51D1DB'Y=+1',0DH,0AH,'$';以字符串形式存儲D2DB'Y=0',0DH,0AH,'$'D3DB'Y=-1',0DH,0AH,'$'DATAENDSCODESEGMENT;定義代碼段ASSUMECS:CODE,DS:CODESTART:MOVAX,DATAMOVDS,AX;給DS段賦值 MOVAX,00H;初始化AX置0 MOVCX,6;定義循環(huán)數(shù)CX為6 LEADI,VAR;將VAR的開始地址給DINEXT1:MOVAL,[DI] CMPAL,0;將DI指向的數(shù)與0進行比較?JGENEXT2;當AL>=0時跳轉(zhuǎn)至NEXT2?MOVDX,OFFSETD3;將D3的偏移值送給DX?JMPOPTNEXT2:JENEXT3;AL=0時跳轉(zhuǎn)至NEXT3MOVDX,OFFSETD1;將D1的偏移值送給DX JMPOPTNEXT3:MOVDX,OFFSETD2;將D2的偏移值送給DXJMPOPTO(shè)PT:MOVAH,09H

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論