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

下載本文檔

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

文檔簡介

朽木易折,金石可鏤。千里之行,始于足下。第頁/共頁實驗5.1DATASEGMENT;定義數(shù)據(jù)段SHIJIDW0000H;16為二進制數(shù)的實際大小SHIJINZHIDB30H,30H,30H,30H,30H,0DH,0AH,'$';十進制顯示TISHIDB'Pleaseinput16binarynumbers';輸入提醒DB0DH,0AH,'$';回車換行DENGHAODB'=$';等號輸入DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODE;段分配MAINPROCFARMOVAX,DATAMOVDS,AX;將數(shù)據(jù)段給dsCALLBINHEX;調(diào)用子程序顯示并計算二進制數(shù)CALLDENGYU;顯示等于號CALLHEXDEC;調(diào)用子程序顯示十進制數(shù)MOVAH,4CH;返回dos系統(tǒng)INT21HMAINENDPBINHEXPROCNEARMOVBX,OFFSETTISHI;顯示提醒語句MOVDX,BX;MOVAH,09H;INT21H;MOVCX,16;十六位二進制數(shù)輸入計數(shù)INPUT:MOVAH,08H;調(diào)用8號鍵盤輸入功能,不回顯INT21HCMPAL,30H;輸入的是不是0JZXIANSHI;是就跳轉(zhuǎn)到xianshiCMPAL,31H;輸入是不是1JZXIANSHI;是就跳轉(zhuǎn)到顯示MOVAL,07H;輸入的既不是零也不是1響鈴警告MOVAH,02H;INT21HINCCX;都不是就要重新輸入cx要加1JMPNEXT;跳轉(zhuǎn)到nextXIANSHI:MOVDL,AL;將輸入的AXCⅡ碼放到DL里MOVAH,02H;調(diào)用2號顯示功能INT21HCMPCX,1;輸入的是不是最后一位數(shù)JZZHIJIEXIANGJIA;是就直接加到前邊的已經(jīng)得到的數(shù)值上PUSHCX;保存cxDECCX;cx減一MOVAH,0;ah置零SUBAL,30H;將AXCⅡ轉(zhuǎn)換成我們想要的0和1SHIJIDAXIAO:;計算實際大小MOVDX,2;與2相乘,乘cx次MULDXLOOPSHIJIDAXIAOPOPCX;將剛剛保存的cx重新放出來JMPNEXT1跳轉(zhuǎn)next1ZHIJIEXIANGJIA:MOVAH,0;當計算個位時cx等于0無法使用loop循環(huán)直接加上來就行了SUBAL,30H;NEXT1:MOVBX,OFFSETSHIJI;將計算得到十進制數(shù)保存到shijiMOVDL,BYTEPTR[BX]MOVDH,BYTEPTR[BX+1]ADDDL,ALADCDH,AHMOVBYTEPTR[BX],DLMOVBYTEPTR[BX+1],DHNEXT:LOOPINPUTRETBINHEXENDPDENGYUPROCNEAR;顯示等號MOVBX,0MOVDX,0MOVBX,OFFSETDENGHAO;將放有等號數(shù)據(jù)的偏移地址給bxMOVDX,BXMOVAH,09HINT21HRETDENGYUENDPHEXDECPROCNEAR;顯示十進制數(shù)MOVBX,OFFSETSHIJINZHI;需要顯示的十進制數(shù)的偏移地址給bxPUSHBX保存bxMOVBX,OFFSETSHIJIMOVDL,BYTEPTR[BX];二進制的實際大小賦值給dxMOVDH,BYTEPTR[BX+1]POPBXWANWEI:;萬位計算MOVAX,10000CMPDX,AX;用實際大小與10000比較JBQIANWEI小于跳轉(zhuǎn)千位SUBDX,10000大于就減去10000INCBYTEPTR[BX];萬位加1JMPWANWEI;返回萬位計算QIANWEI:千位計算MOVAX,1000CMPDX,AX;剩余的數(shù)與1000比較JBBAIWEI;小于跳轉(zhuǎn)百位SUBDX,1000;大于就減去1000INCBYTEPTR[BX+1]千位加1JMPQIANWEI返回千位BAIWEI:百位計算MOVAX,100CMPDX,AX;與100比較JBSHIWEI;小于跳轉(zhuǎn)十位SUBDX,100;大于減去100INCBYTEPTR[BX+2];百位加1JMPBAIWEI;跳轉(zhuǎn)百位SHIWEI:;十位計數(shù)MOVAX,10CMPDX,AX;與10比較JBGEWEI小于跳轉(zhuǎn)個位SUBDX,10;大于等于減去10INCBYTEPTR[BX+3]個位加1JMPSHIWEI跳回個位GEWEI:;不足十位的剩余數(shù)直接加到個位就行了MOVAL,DLADDBYTEPTR[BX+4],ALMOVCX,0MOVBX,OFFSETSHIJINZHIMOVDX,BXDECBXMOVCX,6XIANSHIXUNHUAN:;從第一個不為零數(shù)開始顯示,全為零顯示零INCBXDECCXCMPBYTEPTR[BX],30HJZPANDUANCXJMPXIANSHINEXTPANDUANCX:CMPCX,1JZXIANSHINEXTJMPXIANSHIXUNHUANXIANSHINEXT:顯示十進制數(shù)的大小MOVDX,BXMOVAH,09HINT21HRETHEXDECENDPCODEENDSENDMAIN實驗5.2DATASEGMENT;數(shù)據(jù)段MESSAGEDB30H,'!=','$';階乘計算顯示到等于NUMBERDB0;階乘的數(shù)SHIJIDD0;階乘計算后得到的數(shù)的大小SHIWANDD100000YIWANDD10000XIANSHIJISHUDB0JIEGUODB30H,30H,30H,30H,30H,30H,0DH,0AH,'$'DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODEBEG:MOVAX,DATA;將數(shù)據(jù)段地址負值給dsMOVDS,AXINPUT:MOVAH,08H調(diào)用8號鍵盤輸入功能INT21HCMPAL,30HJBINPUT;CMPAL,39HJAINPUT;輸入其他字符從新輸入MOVNUMBER,ALSUBNUMBER,30H;AXCⅡ碼轉(zhuǎn)換成實際大小MOVBX,OFFSETMESSAGE;階乘計算顯示MOVBYTEPTR[BX],ALMOVDX,BXMOVAH,09HINT21HCALLJISUANCALLXIANSHIMOVAH,4CHINT21HJISUANPROCNEAR;計算階乘的實際大小MOVCL,NUMBER;將number賦值給clMOVCH,0判斷是不是0的階乘CMPCX,0JZJISUANNEXTMOVBX,0MOVAX,1JIECHENG:INCBXMOVDX,BXMULDXLOOPJIECHENG;計算階乘的實際大小從1向來乘到輸入的數(shù)字MOVBX,OFFSETSHIJIMOVWORDPTR[BX],AXMOVWORDPTR[BX+2],DXJISUANNEXT:RETJISUANENDPXIANSHIPROCNEAR;顯示計算各個位的大小SHIWANWEI:;十萬位計算MOVBX,OFFSETSHIJI;將shiji的偏移地址給bxMOVDX,WORDPTR[BX+2]MOVBX,OFFSETSHIWAN;MOVAX,WORDPTR[BX+2]CMPDX,AX先比較高16位JESHIWANERCIBIJIAO;相等比較低16位CMPDX,AXJBWANWEIJMPSHIWANNEXTSHIWANERCIBIJIAO:;低16位比較MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]MOVBX,OFFSETSHIWANMOVAX,WORDPTR[BX]CMPDX,AXJBWANWEISHIWANNEXT:;十萬位計數(shù)MOVBX,OFFSETJIEGUOINCBYTEPTR[BX]MOVBX,OFFSETSHIJI;MOVDX,WORDPTR[BX];MOVBX,OFFSETSHIWAN;MOVAX,WORDPTR[BX];SUBDX,AX;MOVBX,OFFSETSHIJI;MOVWORDPTR[BX],DX;MOVDX,WORDPTR[BX+2];MOVBX,OFFSETSHIWAN;MOVAX,WORDPTR[BX+2];SBBDX,AX;計數(shù)后減掉100000MOVBX,OFFSETSHIJIMOVWORDPTR[BX+2],DXJMPSHIWANWEIWANWEI:;萬位計數(shù)MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX+2]MOVBX,OFFSETYIWANMOVAX,WORDPTR[BX+2]CMPDX,AXJZWANWEIERCIBIJIAOCMPDX,AXJBQIANWEIJMPWANWEINEXTWANWEIERCIBIJIAO:MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]MOVBX,OFFSETYIWANMOVAX,WORDPTR[BX]CMPDX,AXJBQIANWEIWANWEINEXT:MOVBX,OFFSETJIEGUOINCBYTEPTR[BX+1]MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]MOVBX,OFFSETYIWANMOVAX,WORDPTR[BX]SUBDX,AXMOVBX,OFFSETSHIJIMOVWORDPTR[BX],DXMOVDX,WORDPTR[BX+2]MOVBX,OFFSETYIWANMOVAX,WORDPTR[BX+2]SBBDX,AXMOVBX,OFFSETSHIJIMOVWORDPTR[BX+2],DXJMPWANWEIQIANWEI:;千位計數(shù)MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]CMPDX,1000JBBAIWEIMOVBX,OFFSETJIEGUOINCBYTEPTR[BX+2]SUBDX,1000MOVBX,OFFSETSHIJIMOVWORDPTR[BX],DXJMPQIANWEIBAIWEI:;百位計數(shù)MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]CMPDX,100JBSHIWEIMOVBX,OFFSETJIEGUOINCBYTEPTR[BX+3]SUBDX,100MOVBX,OFFSETSHIJIMOVWORDPTR[BX],DXJMPBAIWEISHIWEI:;十位計數(shù)MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]CMPDX,10JBGEWEIMOVBX,OFFSETJIEGUOINCBYTEPTR[BX+4]SUBDX,10MOVBX,OFFSETSHIJIMOVWORDPTR[BX],DXJMPSHIWEIGEWEI:;個位計數(shù)MOVBX,OFFSETSHIJIMOVDX,WORDPTR[BX]MOVBX,OFFSETJIEGUOADDBYTEPTR[BX+5],DLMO

溫馨提示

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

評論

0/150

提交評論