




版權(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)實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告子程序設(shè)計(jì)實(shí)驗(yàn)實(shí)驗(yàn)5子程序?qū)嶒?yàn)一.實(shí)驗(yàn)?zāi)康?.掌握主程序與子程序之間的調(diào)用關(guān)系及調(diào)用方法;2.掌握子程序調(diào)用過程中近程調(diào)用與遠(yuǎn)程調(diào)用的區(qū)別;3.掌握通過堆棧轉(zhuǎn)送參數(shù)的方法。4、掌握多模塊程序設(shè)計(jì)方法二.實(shí)驗(yàn)內(nèi)容1.將BUF開始的10個單元中的二進(jìn)制數(shù)轉(zhuǎn)換成兩位十六進(jìn)制數(shù)的ASCII碼,在屏幕上顯示出來。要求碼型轉(zhuǎn)換通過子程序HEXAC實(shí)現(xiàn),在轉(zhuǎn)換過程中,通過子程序DISP實(shí)現(xiàn)顯示。DATASSEGMENT BUFDB00000111B,00100001B,00100010B,00000011B,00000101B,10000010B,10010011B,00100100B,11100010B,01010010BCANDB$-BUF;定義常量CANDATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASMAINPROCFAR;主程序塊START:MOVAX,DATASMOVDS,AXMOVCL,10LEASI,BUFLOOP1:;調(diào)用子程序語句callHEXACcallDISPDECCANJNZLOOP1EXIT:MOVAH,4CHINT21HMAINENDPHEXACPROCNEAR;二進(jìn)制轉(zhuǎn)換成十六進(jìn)制子程序MOVBL,[SI]INCSIRETHEXACENDP實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第1頁。DISPPROCNEAR;顯示子程序?qū)嶒?yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第1頁。MOVCL,4MOVCH,2MOVE:;移位語句ROLBL,CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,'9'JBEPRINTADDDL,07HPRINT:MOVAH,02H;顯示語句INT21HDECCHJNZMOVEMOVDL,''MOVAH,02HINT21HRETDISPENDPCODESENDSENDSTART2.編寫一個主程序,從鍵盤接收若干個字符,然后用遠(yuǎn)調(diào)用的方法,調(diào)用子程序統(tǒng)計(jì)字符串中字符’b’的個數(shù)、子程序的參數(shù)就是字符串的首地址TABLE,字符串長度N及字符”b”、子程序返回字符"b”的個數(shù)、參數(shù)傳送采用堆棧實(shí)現(xiàn)、主程序在子程序返回后,顯示字符”b”及其個數(shù)(設(shè)為一位十六進(jìn)制數(shù))。DATASEGMENTSTR1DB0ah,0dh,'PLEASEINPUTYOURSTRING:$'STR2DB0ah,0dh,'THENUMBEROFbis:$'TABLEDB50,?,50DUP(?),'$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEADX,STR1MOVAH,9INT21HLEADX,TABLEMOVAH,0AH實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第2頁。INT21H實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第2頁。LEASI,TABLEMOVCL,[SI+1]MOVCH,0INCSIINCSIMOVAL,'b'MOVAH,0PUSHSIPUSHCXPUSHAXCALLFARPTRCHECKPOPAXMOVCL,ALLEADX,STR2MOVAH,9INT21HMOVDL,CLANDDL,0FHCMPDL,9JBECANADDDL,7CAN:ADDDL,30HMOVAH,2INT21HEXIT:MOVAH,4CHINT21HCODEENDSSCODESEGMENTASSUMECS:SCODECHECKPROCFARPUSHBPMOVBP,SPMOVSI,[BP+10]MOVCX,[BP+8]MOVAX,[BP+6]XORAH,AHAGAIN:CMPAL,[SI]JNECAN1INCAHCAN1:實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第3頁。INCSI實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第3頁。LOOPAGAINMOVAL,AHMOV[BP+10],AXPOPBPRET4CHECKENDPSCODEENDSENDSTART3、請編寫一個程序來實(shí)現(xiàn)簡單的程序菜單顯示。(采用多模塊程序設(shè)計(jì)方法)顯示一個菜單要求用戶從下表中選擇:(1) HEXACGAME(對應(yīng)-->程序1)(2) CHARSTATISTICSPROGRAM(對應(yīng)-->程序2)(3) PRESS“ESC”TOQUIT用戶作出選擇1~3時,顯示輸出要執(zhí)行操作的名字,如“Yourselectionis1,theprogramwillexecuteHEXACNUMBERGAME!”然后轉(zhuǎn)向相應(yīng)的程序去執(zhí)行,執(zhí)行結(jié)束前進(jìn)行退出的判斷,顯示一個提示信息“willyoucontinueprogramreally?(Y:N)”要求用戶從鍵盤鍵入字符,若就是“Y”鍵,則繼續(xù)程序的執(zhí)行,若就是“N”鍵,則返回到菜單。若用戶選擇3,要求程序顯示提示信息“PleasepressESCkeytoexit!”,并能按要求正確退出。DATASSEGMENT OPTDWYI DWERmenuDB0DH,0AH,'THEMENU:';顯示菜單DB0DH,0AH,'(1)HEXACGAME';對應(yīng)-->程序1 DB0DH,0AH,'(2)CHARSTATISTICSPROGRAM';對應(yīng)-->程序2 DB0DH,0AH,'(3)PRESS"ESC"TOQUIT$' BUFDB00000111B,00100001B,00100010B,00000011B,00000101B,10000010B,10010011B,00100100B,11100010B,01010010BCANDB$-BUF;定義常量CANstr1DB0DH,0AH,'Yourselectionis1,theprogramwillexecuteHEXACGAME!$'str2DB0dh,0ah,'Yourselectionis2,theprogramwillexecuteCHARSTATISTICSPROGRAM!$'str3DB0DH,0AH,'willyoucontinueprogramreally?(Y:N)$'str4DB0DH,0AH,'PleasepressESCkeytoexit!$'TABLEDB50,?,50DUP(?),'$'char1db0ah,0dh,'PLEASEINPUTYOURSTRING:$'char2db0ah,0dh,'THENUMBEROFbis:$'DATASENDSCODESSEGMENTMAINPROCFARASSUMECS:CODES,DS:DATAS實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第4頁。START:實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第4頁。MOVAX,DATASMOVDS,AXXORDI,DIsubbx,bxxorsi,siLEADX,menu;顯示主菜單MOVAH,9INT21Hmovdl,0dh;顯示回車movah,2int21hMOVDL,0AH;顯示換行MOVAH,2INT21HMOVAH,1;輸入選項(xiàng)INT21HCMPAL,'1'JEYICMPAL,'2'JEERCMPAL,'3'JEQUITYI:MOVDI,0leadx,str1movah,9int21hMOVCL,10LEASI,BUFCALLHEXACLOOP1:;調(diào)用子程序語句callHEXACcallDISPDECCANJNZLOOP1JMPCONTINUEER:MOVDI,02Hleadx,str2movah,9int21hLEADX,char1MOVAH,9INT21HLEADX,TABLE實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第5頁。MOVAH,0AH;輸入字符串實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第5頁。INT21HLEASI,TABLEMOVCL,[SI+1]MOVCH,0;CX中為字符串長度INCSIINCSI;SI指向串首址TABLEMOVAL,'b'MOVAH,0;AX中為待查字符PUSHSIPUSHCXPUSHAX;參數(shù)送堆棧CALLCHECKPOPAX;統(tǒng)計(jì)個數(shù)在AL中MOVCL,ALLEADX,char2;顯示結(jié)果MOVAH,9INT21HMOVDL,CLANDDL,0FHCMPDL,9JBECAN3ADDDL,7CAN3:ADDDL,30HMOVAH,2INT21H;顯示統(tǒng)計(jì)個數(shù)JMPCONTINUEQUIT:LEADX,str4;退出的子程序MOVAH,9INT21HMOVAH,1INT21HCMPAL,1BH;按ESC退出JEEXITCONTINUE:LEADX,str3;用戶就是否繼續(xù)執(zhí)行當(dāng)前程序MOVAH,9INT21HMOVAH,1INT21HCMPAL,'Y';按y繼續(xù),按n退出,不需區(qū)分大小寫JEYESCMPAL,'y'實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第6頁。JEYES實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第6頁。CMPAL,'N'JESTARTCMPAL,'n'JESTARTYES:JMPopt[DI];繼續(xù)運(yùn)行當(dāng)前子程序EXIT:MOVAH,4CH;退出INT21HMAINENDPCODESENDSHEXACCODESSEGMENTASSUMECS:HEXACCODESHEXACPROCFAR;二進(jìn)制轉(zhuǎn)換成十六進(jìn)制子程序MOVBL,[SI]INCSIRETHEXACENDPHEXACCODESENDSDISPCODESSEGMENTASSUMECS:DISPCODESDISPPROCFAR;顯示子程序MOVCL,4MOVCH,2MOVE:;移位語句ROLBL,CLMOVDL,BLANDDL,0FHADDDL,30HCMPDL,'9'JBEPRINTADDDL,07HPRINT:MOVAH,02H;顯示語句INT21HDECCHJNZMOVEMOVDL,''MOVAH,02HINT21HRETDISPENDPDISPCODESENDSCHARCODESEGMENT實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第7頁。ASSUMECS:CHARCODE;子程序部分實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第7頁。CHECKPROCFARPUSHBPMOVBP,SPMOVSI,[BP+10]MOVCX,[BP+8]MOVAX,[BP+6]XORAH,AHAGAIN:CMPAL,[SI]JNECAN1INCAHCAN1:INCSILOOPAGAINMOVAL,AHMOV[BP+10],AXPOPBPRET4CHECKENDPCHARCODEENDSENDSTART實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第8頁。實(shí)驗(yàn)報(bào)告-子程序設(shè)計(jì)實(shí)驗(yàn)全文共9頁,當(dāng)前為第8頁。三.實(shí)驗(yàn)要求1.第一個實(shí)驗(yàn)程序用子程序的近程調(diào)用實(shí)現(xiàn)。由于在調(diào)用HEXASC子程序時,子程序又調(diào)用了DISP子程序,這叫子程序的嵌套調(diào)用。
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶鮮葉收購合同范本
- 選礦訂貨合同范本
- 衛(wèi)生巾銷售合同范本
- 供熱入網(wǎng)合同范本
- 合作樓盤合同范本
- 醫(yī)院欠款合同范例
- 勞務(wù)派遣員工項(xiàng)目合同范本
- 吉林勞務(wù)合同范本
- 創(chuàng)意策劃服務(wù)合同范本
- 廠服定制服務(wù)合同范本
- 部編版五年級下冊第四單元9 古詩三首《秋夜將曉出籬門迎涼有感》一等獎創(chuàng)新教學(xué)設(shè)計(jì)
- 腦筋急轉(zhuǎn)彎大全及答案 (500題)
- 2023年常州市新課結(jié)束考試九年級數(shù)學(xué)試卷(含答案)
- 汽車動力學(xué)輪胎動力學(xué)
- 水產(chǎn)動物遺傳與育種學(xué)緒論
- GB/T 2091-2008工業(yè)磷酸
- 監(jiān)理表格.監(jiān)理.3.復(fù)工令
- 二年級下冊科學(xué)考點(diǎn)歸納
- 人教版三年級音樂上冊《口風(fēng)琴教學(xué)》課件
- 小學(xué)英語《The Magic Words》優(yōu)質(zhì)教學(xué)課件
- DBJ50-T-398-2021 城軌快線施工質(zhì)量驗(yàn)收標(biāo)準(zhǔn)
評論
0/150
提交評論