版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)用標(biāo)準(zhǔn)文案1.設(shè)計(jì)目標(biāo)運(yùn)用匯編語(yǔ)言,制作一個(gè)計(jì)算的程序,實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的一般功能,能夠在DO以面下進(jìn)行簡(jiǎn)單的加、減、乘、除的簡(jiǎn)單計(jì)算.程序應(yīng)有操作提示、輸入和輸出.自動(dòng)閃爍光標(biāo),并提示輸入信息.輸入正確的數(shù)值等符號(hào)后可以進(jìn)行正確的運(yùn)算,程序計(jì)算其結(jié)果值并輸出.程序無(wú)需查錯(cuò)功能,所輸入的都是正確的四那么運(yùn)算表達(dá)式,并且表達(dá)式中運(yùn)算分量均為無(wú)正負(fù)號(hào)整數(shù),運(yùn)算符為+、-、*、/,最后結(jié)果以十進(jìn)制數(shù)表示.且程序主界面需為一個(gè)由組成邊框的矩形窗口.匯編語(yǔ)言直接同計(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互,它具有如下一些優(yōu)點(diǎn):能夠直接訪問(wèn)與硬件相關(guān)的存儲(chǔ)器或I/O端口; 能夠不受編譯器的限制,對(duì)生成的二進(jìn)制代碼進(jìn)
2、行完全的限制; 能夠?qū)﹃P(guān)鍵代碼進(jìn)行更準(zhǔn)確的限制;能夠根據(jù)特定的應(yīng)用對(duì)代碼做最正確的優(yōu)化,提升運(yùn)行速度;能夠最大限度地發(fā)揮硬件的功能.2 .軟件設(shè)計(jì)2.1程序設(shè)計(jì)的根本思想主模塊: 首先提供一個(gè)主界面,提示用戶按要求輸入具體的數(shù)據(jù)和所要進(jìn)行的操作,輸入完畢后給出結(jié)果.如果輸入過(guò)程中發(fā)現(xiàn)非法輸入,那么立即給與提示,程序自動(dòng)刷新界面,提示繼續(xù)輸入.計(jì)算顯示完畢后,按提示選擇是否要繼續(xù)計(jì)算,不選擇繼續(xù)那么結(jié)束.對(duì)屏幕上輸入字符串的接受,為INPUT語(yǔ)句段,見(jiàn)源代碼,主要是將數(shù)字和運(yùn)算符分開(kāi)存放.MATCFF程序,子程序內(nèi)有三次跳轉(zhuǎn),將運(yùn)算符選擇正確的語(yǔ)句進(jìn)行計(jì)算.由于操作符只有+、-、*、/,沒(méi)有涉及
3、到括號(hào),不用考慮括號(hào)的匹配問(wèn)題.流程圖如下:圖1主模塊流程圖子模塊: 完成對(duì)數(shù)據(jù)的進(jìn)一步加工處理,轉(zhuǎn)換格式并得出結(jié)果.首先根據(jù)輸入調(diào)用對(duì)應(yīng)的“+、-、“*、“/四個(gè)函數(shù)模塊,這是本程序的核心模塊,其他局部的一些小模塊都是為這幾個(gè)模塊效勞的,大致的流程圖如下列圖2:精彩文檔實(shí)用標(biāo)準(zhǔn)文案調(diào)用對(duì)應(yīng)模塊運(yùn)算數(shù)據(jù),得出結(jié)果圖2子模塊流程圖2.2代碼STACKSEGMENTSTACKDB200DUP(0)STACKENDSDATASEGMENTOPSDBOPDDBOPERDBTITDB*1,0DH,0AHDB*MadeBy*,0DH,0AH;0DHDB*TongXinJiSuanQiXiaoZu*,0DH
4、,0AH;0AH代表回車代表?yè)Q行DB*ChangqianZuoxinWangxin*,0DH,0AHDB*WangdayongTangkuanlong*,0DH,0AHDB*+-*/*,0DH,0AHDB*Y,y:continueN,n:quit*,0DH,0AHDB*Calculate*$,0DH,0AHTip1DBInputthefirstoperator(0-9):$,0DH,0AHTip2DBPleaseinputtheoper(+,-,*,/):$,0DH,0AHErrorDBError!Pleseinputtheoperagain:$,0DH,0AHTip3DBInputthese
5、condoperator(0-9):$,0DH,0AHResultDBtheresultis:$,0DH,0AHQuitDBChooserepeatorquit?(Y/y/N/n):$,0DH,0AHTsaveDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATA;初始化DS:DXMOVDS,AXRemain:精彩文檔實(shí)用標(biāo)準(zhǔn)文案MOVBL,0;Oper(恢復(fù)初始狀態(tài)MOVOPS,BLMOVOPER,BLMOVOPD,BLLEASI,OPS;OPS的偏移地址送給SILEADI,OPD;OPD的偏移地址送給DICA
6、LLEnterLEADX,TITMOVAH,9INT21HCALLInput1;調(diào)用輸入 A 個(gè)操作數(shù)CALLOperat;調(diào)用輸入操作符CALLInput2;調(diào)用輸入第二個(gè)操作數(shù)CALLCalculate;調(diào)用計(jì)算方法CALLStrQuit;調(diào)用判斷程序再次執(zhí)行MOVAH,1INT21HCMPAL,YJERemainCMPAL,y;選才YY返回Remain繼續(xù)執(zhí)行JERemainCMPAL,NJEEXITCMPAL,nJEEXITEXIT:MOVAH,4CH;假設(shè)不是Y那么結(jié)束INT21H;輸入操作數(shù)子程序-Input1PROCNEARCALLEnterLEADX,Tip1;輸入 A 個(gè)操作
7、數(shù)提示MOVAH,9INT21H;十進(jìn)制輸入提示BCDin1:MOVAH,1INT21HCMPAL,0DHJEEndBCDin1;等于回車那么返回繼續(xù)輸入運(yùn)算符CMPAL,30HJBBCDin1;9時(shí)轉(zhuǎn)exitinD退出ANDAL,0FH;去除高位MOVSI,ALINCSILOOPBCDin1精彩文檔實(shí)用標(biāo)準(zhǔn)文案EndBCDinl:CALLEnter;RETInputlENDPInput2PROCNEARCALLEnterLEADX,Tip3;MOVAH,9INT21H;BCDin2:MOVAH,1INT21HCMPAL,0DHJEEndBCDin2;CMPAL,30HJBBCDin1;9AN
8、DAL,0FHMOVSI,ALINCSILOOPBCDin2EndBCDin2:CALLEnterRETInput2ENDP;輸入操作符子程序OperatPROCNEARReOperat:CALLEnterLEADX,Tip2MOVAH,9INT21HMOVAH,1INT21HCMPAL,+JEOperSaveCMPAL,-JEOperSaveCMPAL,*JEOperSaveCMPAL,/JEOperSaveJMPOperErrorOperError:CALLEnter回車換行輸入第二個(gè)操作數(shù)提示十進(jìn)制輸入提示等于回車那么返回繼續(xù)輸入運(yùn)算符時(shí)轉(zhuǎn)exitinD退出時(shí)轉(zhuǎn)exitinD退出去除高位
9、回車換行精彩文檔輸入操作符提示假設(shè)為+,那么存在實(shí)用標(biāo)準(zhǔn)文案LEADX,ErrorMOVAH,9INT21HJMPReOperatOperSave:MOVOPER,ALRETOperatENDP;計(jì)算方法子程序-CalculatePROCNEARCALLEnterMOVBL,OPERCMPBL,+JZADCProcCMPBL,-JZSUBProcCMPBL,*JZMULProcCMPBL,/JZDIVProcADCProc:CALLStrResultMOVAL,OPSADCAL,OPDCALLDisplJMPendCalculateSUBProc:CALLStrResultMOVAL,OPSS
10、UBAL,OPDCALLDisplJMPendCalculateMULProc:CALLStrResultMOVAL,OPDMULOPSCALLDisplJMPendCalculateDIVProc:CALLStrResultMOVAH,0MOVAL,OPSDIVOPDCALLDisplJMPendCalculateendCalculate:輸入操作符的錯(cuò)誤提示回車換行假設(shè)為加法,那么轉(zhuǎn)到adcProc加法減法乘法除法精彩文檔實(shí)用標(biāo)準(zhǔn)文案RETCalculateENDPDisplPROCNEARMOVTsave,ALMOVAH,0MOVAL,TsaveMOVBL,100DIVBL;除以100C
11、ALLOutput;顯不白位數(shù)MOVAL,AHMOVAH,0MOVBL,10DIVBL;除以10CALLOutput;顯示十位數(shù)MOVAL,AHCALLOutput;顯示個(gè)位數(shù)RETDisplENDPStrResultPROCNEARLEADX,ResultMOVAH,9INT21HRETStrResultENDPOutputPROCNEAR;十進(jìn)制輸出PUSHAXADDAL,30H;將AL中的十進(jìn)制數(shù)變成ASCII碼MOVDL,ALMOVAH,2INT21HPOPAXRETOutputENDP;回車換行子程序EnterPROCNEARMOVDL,0AHMOVAH,2INT21HMOVDL,0
12、DHMOVAH,2INT21HRETEnterENDP;判斷程序再次執(zhí)行子程序StrQuitPROCNEARCALLEnter;回車換行精彩文檔實(shí)用標(biāo)準(zhǔn)文案LEADX,QuitMOVAH,9INT21HRETStrQuitENDPCODEENDSENDSTART3 .系統(tǒng)調(diào)試3.1測(cè)試目標(biāo)1在屏幕上顯示一個(gè)由*組成邊框的矩形窗口;2自動(dòng)閃爍光標(biāo),并提示輸入信息;3能夠完成單項(xiàng)表達(dá)式的輸入、顯示和運(yùn)算;4編制并調(diào)試出程序.3.2測(cè)試方法及結(jié)果單擊開(kāi)始,啟動(dòng)運(yùn)行,輸入cmd,啟動(dòng)命令提示符,進(jìn)入DOS統(tǒng).如下列圖:圖3啟動(dòng)命令提示符源程序名存為qian.asm,在dos下進(jìn)入F盤(pán),再cdmasnf
13、fi入masnmt件夾,再鍵入masmqian qian是源程序文件名提示是否更改文件名不改直接回車,系統(tǒng)會(huì)提示是否生成.lst文件和.crf文件直接回車跳過(guò),這樣就生成了qian.obj鍵入linkqianqian是源程序文件名,提示是否更改文件名不改直接回車提示是否生成.map和.lib文件直接回車,這樣就生成了qian.exe,再在DOST鍵入qian源程序文件名就進(jìn)入程序執(zhí)行.如圖4:精彩文檔實(shí)用標(biāo)準(zhǔn)文案C:Users?0:D;cdnasnD;fflciSHlT)dSHdldll.dShHicrosuft(I?)NdcroRssenbl9rVersion5加加Coowright(C)M
14、icrosoftDorp1981-1985,1987MilrightsreservedObjecifiqicnORJI:SourcelistingMUL.LST:CrossreferenceNUL.CRF:50298十十433406BytessymbolspacefreeHUrirningrrorsHSfiunrftErrorsD:iasnD:iasnlinkqianMicrosoft(R)OverlapLinker*Version3.69Copyright(C)MicrosoftCorp1983-198?,Allrightsreserved,RurFileOlfiN.EKEl;LisiFil
15、eNUL.HRP1;LibrariesILIB:I):ihHsitqidnKH-MMK-H-KK-MiMiiMtJK-MMKMMIItM-NiMK-K-M-K-MMMKMMM-iKMatKH-MMK-H-KK-MiMiiMtJK-MMKMMIItM-NiMK-K-M-K-MMMKMMM-iKMatModeBykTongKinJiu自自nQiXiao2u*ChangaianZuoxinUanxin 卜卜MdnyddungungTrfngkudtilung* 十十*/*/* *匕匕, ,continueNFn:quit*卜卜*,-*,*,-*,*Culcul 舊舊IlnpLitth已已firwt口
16、口per門(mén)門(mén)tor(R9):.圖4執(zhí)行方法在計(jì)算器內(nèi),輸入數(shù)字測(cè)試本程序的正確與否.根據(jù)提示輸入第一個(gè)十進(jìn)制數(shù),如“6,回車.下一步,會(huì)提示請(qǐng)輸入運(yùn)算符,如加“+,回車.最后一步,輸入第二個(gè)十進(jìn)制數(shù),如“3,回車.那么顯示出其運(yùn)算結(jié)果.如下列圖5所示:*MadeBy*TongXinJiSuanQiXiaoZu*ChangqianZuoxinUangxin*WangdayongTangkuanlong* 4-4-*/*/客*Y,ycontinueN,n:quit*Inputthefirstoperator(09):6Pleaseinputtheopen(+.-,*,/):+Inputthesec
17、ondoperator(09):3theresultis:009ChooseRDe日torciuit?(Y/N/n):.圖5實(shí)現(xiàn)加法運(yùn)算同上,可實(shí)現(xiàn)減法、乘法、除法運(yùn)算,分別如圖6,圖7,圖所示8:精彩文檔實(shí)用標(biāo)準(zhǔn)文案Chooserepeatorquit?(V/y/N/n):yW*MM*MW*Mf*龔*MadeBy*卜TongKinJiSuanQiXiaoZu*ChangqianZuoxinWangxin*WangdayongTangkudnlong*/玨*V,y;continueN,n;quit*膏甘占資*=C日cute*、*1*1*1*葡*Inputthefirstoperator(09)
18、:6Pleaseinputtheopen(+,*,/):-Inputthesecondoperator(09):3theresultis:003Chooserepeato廠quit?(Y/N/n):圖6實(shí)現(xiàn)減法運(yùn)算Chooserepeatorquit?(V/y/N/n):y*疊翼疊疊獸獸普疊鬢普疊蕤興興普翼饕央鬢*央獸*央央*r*央 X 鬢*央箕*MadeBy*TongXinJiSuanQiXiaoZu*ChangqianZuoxinWangxin*WangdayongIangkuanlong*髯*普/鬢*Y,continueN,nzquit*x*M*x*H*Cdlcu曰te*H*Inputt
19、hefirstoperator(09):6Pleaseinputtheoper(*.一,*,/):*Inputthesecondoperator(09):3theresultis:018|Ch口口gerepedt0quit?(Y/N/n):圖7實(shí)現(xiàn)乘法運(yùn)算Chooserepeatorquit?(V/y/N/n):v*暑*興分*興*裳*於*MadeBy*FongXinJiSiianOiXiaoZu*ChangqianZuoxinWangxin*Wangd己yongTangkuanlong* -i-i- -*e/-w*e/-w*V,y:continueN,n:quit*曇*畀*裳弁畀*Cdcu曰t
20、e吳*弁*耳*瞿吳*旦Inputthefirstoperator(09):6Pleaseinputtheoper(+,-,*,/):/Inputthesecondoperator(09):3theresultis:002Chousere口eatorquit?(V/y/N/n):.圖8實(shí)現(xiàn)除法運(yùn)算運(yùn)算完畢后,會(huì)提示是否繼續(xù)下一個(gè)運(yùn)算,輸入“Y那么繼續(xù)運(yùn)算,并返回主界面,輸入“M那么結(jié)束程序.精彩文檔實(shí)用標(biāo)準(zhǔn)文案當(dāng)運(yùn)算符輸入不合法時(shí),那么會(huì)提示重新輸入運(yùn)算符,如下列圖9:舞*資*資*款*HadeBy*TongXinJiSuanQiXiaoZu*ChangqianZuoxinWangxin*WangdayongTangkuanlong*W W*翼/4t4t*Vfy:continueN,n:quit*瑋*科x*x*#*C曰CH1tA*Inputthefirstoperator(09):6Pleaseinputtheoper(+,-:3Error!Pleseinputtheoperagain:Ple&seinputtheope (,-,/):.圖9錯(cuò)誤提示4.總結(jié)設(shè)計(jì)的這個(gè)程序主要是進(jìn)行表達(dá)式的四那么運(yùn)算,由于操作符只有+、-、*、/,沒(méi)有涉及到括號(hào),因此設(shè)計(jì)起來(lái)要容易一點(diǎn),不用考慮括號(hào)的匹配問(wèn)題.另外,跳轉(zhuǎn)時(shí)匯編語(yǔ)言的一大難點(diǎn),再編程之前最好要畫(huà)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025借款合同版(單位住房)
- 2025勞動(dòng)合同的有效要件范本
- 2025代工生產(chǎn)合同
- Unit 3 Amazing animals PartA (說(shuō)課稿)-2024-2025學(xué)年人教PEP版(2024)英語(yǔ)三年級(jí)上冊(cè)
- 11《白樺》說(shuō)課稿(說(shuō)課稿)2023-2024學(xué)年-統(tǒng)編版語(yǔ)文四年級(jí)下冊(cè)
- 2《太陽(yáng)的位置與方向》說(shuō)課稿-2023-2024學(xué)年科學(xué)二年級(jí)下冊(cè)青島版
- 2024年秋九年級(jí)化學(xué)上冊(cè) 第6單元 碳和碳的氧化物 課題1 金剛石、石墨和C60 第2課時(shí) 單質(zhì)碳的化學(xué)性質(zhì)說(shuō)課稿 (新版)新人教版
- 《5 走進(jìn)紙的世界》(說(shuō)課稿)-2023-2024學(xué)年三年級(jí)上冊(cè)綜合實(shí)踐活動(dòng)吉美版
- 任務(wù)完成合同范本
- 勞動(dòng)合同范例 計(jì)時(shí)
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 2024年蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 2025年北京生命科技研究院招聘筆試參考題庫(kù)含答案解析
- 銀行金融機(jī)構(gòu)銀行金融服務(wù)協(xié)議
- GB/T 27697-2024立式油壓千斤頂
- 《消防機(jī)器人相關(guān)技術(shù)研究》
- 游泳館安全隱患排查
- 《媒介社會(huì)學(xué)》課件
- 成人手術(shù)后疼痛評(píng)估與護(hù)理團(tuán)體標(biāo)準(zhǔn)
- zemax-優(yōu)化函數(shù)說(shuō)明書(shū)
- 2021年《民法典擔(dān)保制度司法解釋》適用解讀之擔(dān)保解釋的歷程
評(píng)論
0/150
提交評(píng)論