微機(jī)原理簡(jiǎn)易計(jì)算器課程設(shè)計(jì)報(bào)告_第1頁(yè)
微機(jī)原理簡(jiǎn)易計(jì)算器課程設(shè)計(jì)報(bào)告_第2頁(yè)
微機(jī)原理簡(jiǎn)易計(jì)算器課程設(shè)計(jì)報(bào)告_第3頁(yè)
微機(jī)原理簡(jiǎn)易計(jì)算器課程設(shè)計(jì)報(bào)告_第4頁(yè)
微機(jī)原理簡(jiǎn)易計(jì)算器課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、-. z. . . . . 資料. . .課 程 設(shè) 計(jì) 報(bào) 告課程設(shè)計(jì)名稱: 簡(jiǎn)易計(jì)算器 系 別:三系學(xué)生*:*夢(mèng)瑤班 級(jí):11通信1班 學(xué) 號(hào):成 績(jī):指導(dǎo)教師:袁靜開(kāi)課時(shí)間:2013-2014學(xué)年1學(xué)期一設(shè)計(jì)題目簡(jiǎn)易計(jì)算器二主要內(nèi)容1、采用模塊化程序構(gòu)造設(shè)計(jì)軟件,可將整個(gè)軟件分成假設(shè)干功能模塊。2、畫(huà)出程序流程圖。3、根據(jù)流程圖,編寫(xiě)源程序。4、上機(jī)調(diào)試程序。三具體要求1、利用BIOS和DOS的中斷來(lái)設(shè)計(jì)一個(gè)計(jì)算器,要求在屏幕上顯示一個(gè)主菜單,提示用戶輸入相應(yīng)的數(shù)字鍵,分別執(zhí)行加、減、乘、除四種計(jì)算功能和完畢程序的功能。2、利用BIOS中斷的10號(hào)功能調(diào)用來(lái)設(shè)置顯示方式。3、利用DOS中

2、斷的01號(hào)和02號(hào)子功能來(lái)完成鍵盤(pán)接收,結(jié)果顯示。四進(jìn)度安排周一周二周三周四周五講課設(shè)內(nèi)容,安排任務(wù)查資料,確定硬件電路方案編程調(diào)試編程調(diào)試寫(xiě)總結(jié)報(bào)告五成績(jī)?cè)u(píng)定考核方法:現(xiàn)場(chǎng)驗(yàn)收占50%,課程設(shè)計(jì)報(bào)告占50%??己藘?nèi)容:學(xué)習(xí)態(tài)度出勤情況,平時(shí)表現(xiàn)等、方案合理性、程序編制質(zhì)量、演示效果、設(shè)計(jì)報(bào)告質(zhì)量。成績(jī)?cè)u(píng)定:優(yōu),良,中,及格,不及格。特別說(shuō)明:如發(fā)現(xiàn)抄襲,按照不及格處理。目 錄TOC o 1-3 h z uHYPERLINK l _Toc375485633前言 PAGEREF _Toc375485633 h 4HYPERLINK l _Toc3754856341、設(shè)計(jì)題目 PAGEREF _T

3、oc375485634 h 5HYPERLINK l _Toc3754856352、設(shè)計(jì)內(nèi)容 PAGEREF _Toc375485635 h 5HYPERLINK l _Toc3754856362.1 根本內(nèi)容 PAGEREF _Toc375485636 h 5HYPERLINK l _Toc3754856372.2 主要功能 PAGEREF _Toc375485637 h 5HYPERLINK l _Toc3754856403、設(shè)計(jì)原理及方案 PAGEREF _Toc375485640 h 6HYPERLINK l _Toc3754856413.1 總體方案 PAGEREF _Toc3754

4、85641 h 6HYPERLINK l _Toc3754856493.2 程序流程圖 PAGEREF _Toc375485649 h 7HYPERLINK l _Toc3754856503.2.1 主程序 PAGEREF _Toc375485650 h 7HYPERLINK l _Toc3754856513.2.2 計(jì)算子程序 PAGEREF _Toc375485651 h 8HYPERLINK l _Toc3754856523.3 系統(tǒng)模塊詳細(xì)設(shè)計(jì) PAGEREF _Toc375485652 h 9HYPERLINK l _Toc3754856533.3.1 界面設(shè)置 PAGEREF _T

5、oc375485653 h 9HYPERLINK l _Toc3754856593.3.2 算法選擇設(shè)置 PAGEREF _Toc375485659 h 10HYPERLINK l _Toc3754856663.3.3 數(shù)制轉(zhuǎn)換設(shè)置 PAGEREF _Toc375485666 h 11HYPERLINK l _Toc3754856714.匯編源程序代碼 PAGEREF _Toc375485671 h 13HYPERLINK l _Toc3754857015、調(diào)試運(yùn)行結(jié)果 PAGEREF _Toc375485701 h 20HYPERLINK l _Toc3754857025.1 操作說(shuō)明 PA

6、GEREF _Toc375485702 h 20HYPERLINK l _Toc3754857035.2 調(diào)試運(yùn)行結(jié)果 PAGEREF _Toc375485703 h 20HYPERLINK l _Toc3754857046、心得體會(huì) PAGEREF _Toc375485704 h 23HYPERLINK l _Toc3754857057、參考文獻(xiàn) PAGEREF _Toc375485705 h 24前言課程設(shè)計(jì)是培養(yǎng)和鍛煉學(xué)生在學(xué)習(xí)完本門(mén)課后綜合應(yīng)用所學(xué)理論知識(shí),解決實(shí)際工程設(shè)計(jì)和應(yīng)用問(wèn)題的能力的重要教學(xué)環(huán)節(jié)。它具有動(dòng)手、動(dòng)腦和理論聯(lián)系實(shí)際的特點(diǎn),是培養(yǎng)在校工科大學(xué)生理論聯(lián)系實(shí)際、敢于動(dòng)手、

7、善于動(dòng)手和獨(dú)立自主解決設(shè)計(jì)實(shí)踐中遇到的各種問(wèn)題能力的一個(gè)重要教學(xué)環(huán)節(jié)。計(jì)算器在我們?nèi)粘I钪袘?yīng)用是相當(dāng)普遍的,可以說(shuō)它已經(jīng)成為現(xiàn)代社會(huì)生活不可或缺的一局部。本次課程設(shè)計(jì)就是根據(jù)微機(jī)原理與接口的相關(guān)知識(shí),利用BIOS和DOS的中斷來(lái)設(shè)計(jì)一個(gè)簡(jiǎn)易計(jì)算器,能夠?qū)崿F(xiàn)加減乘除四則運(yùn)算,并在屏幕上顯示一個(gè)主菜單,提示用戶輸入相應(yīng)的數(shù)字鍵,分別執(zhí)行加、減、乘、除四種計(jì)算功能和完畢程序的功能。同時(shí)利用BIOS中斷的10號(hào)功能調(diào)用來(lái)設(shè)置顯示方式,利用DOS中斷的01號(hào)和02號(hào)子功能來(lái)完成鍵盤(pán)接收,結(jié)果顯示。通過(guò)本次課程設(shè)計(jì),要求學(xué)生熟悉和掌握微機(jī)系統(tǒng)的軟件的方法、設(shè)計(jì)步驟,使學(xué)生得到微機(jī)開(kāi)發(fā)應(yīng)用方面的初步訓(xùn)練,

8、熟練應(yīng)用8086匯編語(yǔ)言編寫(xiě)應(yīng)用程序和實(shí)際設(shè)計(jì)中的軟件調(diào)試方法和步驟,熟悉微機(jī)系統(tǒng)的軟件開(kāi)發(fā)工具的使用方法。通過(guò)課程設(shè)計(jì)實(shí)踐,不僅要培養(yǎng)學(xué)生事實(shí)求是和嚴(yán)肅認(rèn)真的工作態(tài)度,培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力,檢驗(yàn)學(xué)生對(duì)本門(mén)課學(xué)習(xí)的情況,更要培養(yǎng)學(xué)生在實(shí)際的工程設(shè)計(jì)中查閱資料,撰寫(xiě)設(shè)計(jì)報(bào)告表達(dá)設(shè)計(jì)思想和結(jié)果的能力。1、設(shè)計(jì)題目簡(jiǎn)易計(jì)算器2、設(shè)計(jì)內(nèi)容2.1根本內(nèi)容1、編寫(xiě)一個(gè)程序,能從鍵盤(pán)上讀入數(shù)據(jù),并完成加、減、乘、除的計(jì)算。2、利用BIOS和DOS的中斷來(lái)設(shè)計(jì)一個(gè)計(jì)算器,要求在屏幕上顯示一個(gè)主菜單,提示用戶輸入相應(yīng)的數(shù)字鍵,分別執(zhí)行加、減、乘、除四種計(jì)算功能和完畢程序的功能。3、利用BIOS中斷的10號(hào)功能

9、調(diào)用來(lái)設(shè)置顯示方式。4、利用DOS中斷的01號(hào)和02號(hào)子功能來(lái)完成鍵盤(pán)接收,結(jié)果顯示。2.2 主要功能一、顯示主菜單功能主菜單如下:Please input a number to choose the arithmetic operation1add 2subtract 3multiply 4divide qreturn to DOS二、計(jì)算功能1、別按數(shù)字鍵1、2、3,則執(zhí)行相應(yīng)子模塊1、2、3,進(jìn)展兩個(gè)字節(jié)與兩個(gè)字節(jié)的加法、減法和乘法運(yùn)算,并在屏幕上顯示運(yùn)算結(jié)果。2、按數(shù)字鍵4,執(zhí)行子模塊4,進(jìn)展兩個(gè)字節(jié)除一個(gè)字節(jié)的除法運(yùn)算,并顯示結(jié)果。3、按字母鍵q,執(zhí)行子模塊5,程序退出,返回DOS

10、。4、假設(shè)按其它鍵則顯示提示字符串:Please Press Number 1、2、3、4、q:,然后繼續(xù)顯示主菜單。3、設(shè)計(jì)原理及方案3.1 總體方案利用BIOS中斷的10號(hào)功能調(diào)用來(lái)設(shè)置顯示方式。利用DOS中斷的01號(hào)、02號(hào)子功能來(lái)完成鍵盤(pán)承受、結(jié)果顯示。設(shè)置屏幕顯示方式。MOV AH,00HMOV AL,NUM NUM為顯示方式屬性字 INT 10H接著從鍵盤(pán)上承受鍵值,并判別后轉(zhuǎn)到相應(yīng)的子模塊進(jìn)展運(yùn)算,并顯示結(jié)果。MOV AH,01H INT 21H ;AL=鍵入字符的ASCII碼從鍵盤(pán)上接收一串字符串命令:MOV AH,0AH MOV D*,OFFSET BUF ;BUF為數(shù)據(jù)段中

11、定義的數(shù)據(jù)緩沖區(qū) INT 21H顯示單個(gè)字符命令:MOV AH,02HINT 21H顯示一串字符串的命令:MOV AH,09H MOV D*,OFFSET BUF ;BUF為被顯示字符串的首地址 INT 21H十進(jìn)制數(shù)顯示過(guò)程:將十進(jìn)制數(shù)送到B*中,B*除以1000,余數(shù)送B*中,商在AL中,*圍為09,顯示AL中的內(nèi)容。B*除以100,余數(shù)送B*中,商在AL中,顯示AL中的內(nèi)容,依次類(lèi)推,直到分出個(gè)位數(shù)字。如最高位為0,則不應(yīng)顯示,而非最高位的0則顯示??衫迷O(shè)標(biāo)志位并結(jié)合商的方法來(lái)決定是否顯示0。3.2 程序流程圖 主程序顯示主菜單顯示主菜單接收數(shù)字AL=1AL=2AL=3AL=4AL=5

12、調(diào)用加法子程序調(diào)用減法子程序調(diào)用乘法子程序調(diào)用除法子程序完畢開(kāi)場(chǎng)圖3.1 主程序流程圖 計(jì)算子程序提示輸入第一個(gè)數(shù)提示輸入第一個(gè)數(shù)提示輸入第二個(gè)數(shù)計(jì) 算判斷結(jié)果正負(fù),并儲(chǔ)存結(jié)果將結(jié)果轉(zhuǎn)為ASCII碼,并顯示結(jié)果提示返回DOS還是重新計(jì)算將第一個(gè)數(shù)的ASCII碼轉(zhuǎn)為二進(jìn)制并保存將第二個(gè)數(shù)的ASCII碼轉(zhuǎn)為二進(jìn)制并保存結(jié) 束圖3.2 計(jì)算子程序流程圖3.3 系統(tǒng)模塊詳細(xì)設(shè)計(jì)本次設(shè)計(jì)需要實(shí)現(xiàn)的模塊圖圖如1所示 四則運(yùn)算器程序設(shè)計(jì) 四則運(yùn)算器程序設(shè)計(jì) 界面設(shè)置算法選擇設(shè)置數(shù)制轉(zhuǎn)換設(shè)置 界面設(shè)置算法選擇設(shè)置數(shù)制轉(zhuǎn)換設(shè)置圖3.3 模塊圖1界面設(shè)置 主要實(shí)現(xiàn)確定界面樣式的功能,以菜單形式顯示。算法選擇設(shè)置用

13、于選擇加、減、乘、除來(lái)進(jìn)展運(yùn)算。3數(shù)制轉(zhuǎn)換設(shè)置 應(yīng)用十進(jìn)制二進(jìn)制的轉(zhuǎn)換算法來(lái)處理加、減、乘、除四則運(yùn)算。 界面設(shè)置1、設(shè)置屏幕顯示方式:MOV AH,00HMOV AL,2INT 10H通過(guò)調(diào)用BOIS的O2H號(hào)功能來(lái)設(shè)置屏幕顯示方式。此處AL=2,即設(shè)置屏幕顯示方式為80*25黑白文本。2、顯示主菜單:DOS不僅為用戶提供了許多指令,而且還有用戶可以直接調(diào)用的上百個(gè)常用子程序。這些子程序的功能主要是進(jìn)展磁盤(pán)讀/寫(xiě)、根本輸入/輸出管理等。在使用時(shí),用戶只需要了解各個(gè)子程序的編號(hào)即可,這些編號(hào)成為DOS功能調(diào)用號(hào)。其調(diào)用過(guò)程為:1DOS功能條用號(hào)送AH存放器。2如果需要,按要求給定輸入?yún)?shù)由得不

14、需要輸入?yún)?shù)。3寫(xiě)入中斷指令I(lǐng)NT 21H。調(diào)用完畢,按功能使用其輸出參數(shù)。本程序主菜單顯示代碼如下:MOV AH,09HMOV D*,OFFSET TOPINT 21H先在數(shù)據(jù)段中定義主菜單中要顯示的字符串,再通過(guò)調(diào)用DOS系統(tǒng)的09H號(hào)功能顯示字符串串尾字符為,但不顯示來(lái)完成。 算法選擇設(shè)置匯編語(yǔ)言中加減乘除運(yùn)算指令分別為ADD、SUB、MUL、DIV。首先選擇要進(jìn)展的四則運(yùn)算,規(guī)定:假設(shè)選擇1,則進(jìn)展加法;選擇2,則進(jìn)展減法;選擇3,則進(jìn)展乘法;選擇4,則進(jìn)展除法。具體計(jì)算過(guò)程分析如下:1、從鍵盤(pán)接收一個(gè)數(shù)字:MOV AH,01HINT 21H通過(guò)調(diào)用DOS系統(tǒng)的01H號(hào)功能鍵入字符并回

15、車(chē)來(lái)實(shí)現(xiàn),其出口參數(shù)為鍵入字符的ASCII碼,存在AL中。2、接收鍵入用于計(jì)算的數(shù):MOV AH,0AHMOV D*,OFFSET BUF1通過(guò)調(diào)用DOS系統(tǒng)的0AH號(hào)功能鍵入字符串至內(nèi)存緩沖區(qū)來(lái)實(shí)現(xiàn),其入口參數(shù)如下:DS:D*=存放鍵入字符串的緩沖區(qū)的首地址;DS:D*=用戶規(guī)定的緩沖區(qū);DS:D*+1=實(shí)際鍵入的字符數(shù);從DS:D*+2開(kāi)場(chǎng)放鍵入的字符串。因此,在下面的程序中運(yùn)用所鍵入的數(shù)字時(shí)要注意字符串的首地址。3、顯示結(jié)果:MOV AH,09HMOV D*,OFFSET BUF3INT 21H將結(jié)果存入數(shù)據(jù)段中定義的緩沖區(qū)BUF3中,再通過(guò)調(diào)用DOS系統(tǒng)的09H號(hào)功能顯示字符串串尾字符

16、為,但不顯示來(lái)完成。 數(shù)制轉(zhuǎn)換設(shè)置1、子程序A2將數(shù)的ASCII碼轉(zhuǎn)為二進(jìn)制數(shù):A2 PROC NEAR MOV CL,BUF1+1; 把BUF1+1中的實(shí)際鍵入的字符數(shù)放入CL MOV CH,0; CH清零 MOV B*,OFFSET BUF1+2; 把第一個(gè)數(shù)字的地址放在B* PUSH B*; 保存B*中的值 PUSH C* ; 保存C*中的值L1: MOV AL,B* AND AL,0FH ; 把ASCII碼轉(zhuǎn)換為十進(jìn)制 MOV B*,AL; 存放十進(jìn)制 INC B* ; 下一個(gè)數(shù)字的地址 LOOP L1 POP C* ; 恢復(fù)C* POP B*; 恢復(fù)B* MOV A*,0 ; 將累加

17、和賦零 MOV SI,10L2: MUL SIADD AL,B*ADC AH,0INC B* LOOP L2 ; 累加乘10L3: RETA2 ENDP入口:十進(jìn)制數(shù)的ASCII在BUF1內(nèi);出口:轉(zhuǎn)換后的二進(jìn)制數(shù)在A*內(nèi)。算法:先將其轉(zhuǎn)換為十進(jìn)制,再用累加和乘10加*的方法變?yōu)槎M(jìn)制,如將163轉(zhuǎn)換為二進(jìn)制數(shù),可先將累加和賦0,再計(jì)算0*10+1*10+6*10+3結(jié)果為二進(jìn)制數(shù)。2、將計(jì)算結(jié)果的二進(jìn)制數(shù)轉(zhuǎn)換為對(duì)應(yīng)的十進(jìn)制數(shù)ASCII碼并輸出顯示A3程序段:該模塊的程序設(shè)計(jì)詳見(jiàn)程序清單及說(shuō)明中A3、BB程序段 入口:二進(jìn)制數(shù)在A*內(nèi);出口:轉(zhuǎn)換后的ASCII碼在BUF內(nèi)。算法:A*內(nèi)的數(shù)*圍

18、在+32767到-32768之間,先檢查A*符號(hào)位,決定輸出+-,假設(shè)為負(fù),先求補(bǔ)碼得到原碼后可與正數(shù)統(tǒng)一處理。方法:把將被轉(zhuǎn)換的二進(jìn)制數(shù)先除以10000,商為萬(wàn)位數(shù),再將余數(shù)除以1000,商為千位數(shù),以此類(lèi)推,求出百十位數(shù),剩下的為個(gè)位數(shù)。最后各個(gè)數(shù)加上30H,即為對(duì)應(yīng)字符。4.匯編源程序代碼DATA SEGMENTN=15TOP DB 5 DUP(0AH) DB N DUP( ), Please input a number to choose the arithmetic operation, 0DH,0AH DB N DUP( ), , 0DH,0AH DB N DUP( ),1add

19、 2subtract 3multiply, 0DH,0AH DB N DUP( ),4divide qreturn to DOS, 0DH,0AH DB N DUP( ), , 0DH,0AH DB N DUP( ),Choice (.4.q):$MESG1 DB 0DH,0AH,Please press number: .4.q !$ MESG2 DB 0DH,0AH,Please input the first number :$MESG3 DB 0DH,0AH,Please input the second number :$MESG4 DB 0DH,0AH,Play Add :$MES

20、G5 DB 0DH,0AH,Play Subtract :$MESG6 DB 0DH,0AH,Play Multiply :$MESG7 DB 0DH,0AH,Play Divide :$MESG8 DB 0DH,0AH,The Result :$MESG9 DB 0DH,0AH,PRESS Q RETURN DOC,ANY PRESS RETURN START!$BUF1 DB 6 ; 十進(jìn)制數(shù)的緩沖區(qū),可接收6個(gè)字符 DB ; 保存,用于10號(hào)調(diào)用時(shí)DOC填入實(shí)際輸入字符數(shù) DB 6 DUP() ; 一個(gè)符號(hào)位,四位數(shù)字ASCII碼,加上一個(gè)回車(chē)符BUF2 DW ; 將第一個(gè)數(shù)轉(zhuǎn)換為二進(jìn)制

21、后,放于這里BUF3 DB 6 DUP(),$ ; 將結(jié)果轉(zhuǎn)換為ASCII碼后,放在這里DATA ENDSSTACK SEGMENT STACKSTACKCODE SEGMENTASSUME CS:CODE , DS:DATASTART: MOV A*,DATAMOV DS,A* MOV AH,00H ; 設(shè)置屏幕顯示方式 MOV AL,2 INT 10H MOV AH,09H ; 顯示菜單 MOV D*,OFFSET TOP INT 21HAA: MOV AH,01H ; 從鍵盤(pán)接收一個(gè)數(shù)字INT 21H CMP AL,1 ; 與1比擬 JNE NE*T1 ; 不等于1就轉(zhuǎn)到NE*T1 JM

22、P JIA ; 等于1就轉(zhuǎn)到加法程序NE*T1: CMP AL,2 ; 與2比擬 JNE NE*T2 ; 不等于2就轉(zhuǎn)到NE*T2 JMP JIAN ; 等于2就轉(zhuǎn)到減法程序NE*T2: CMP AL,3 ; 與3比擬 JNE NE*T3 ; 不等于3就轉(zhuǎn)到NE*T3 JMP CHENG ; 等于3就轉(zhuǎn)到乘法程序NE*T3: CMP AL,4 ; 與4比擬 JNE NE*T4 ; 不等于4就轉(zhuǎn)到NE*T4 JMP CHU ; 等于4就轉(zhuǎn)到除法程序NE*T4: CMP AL,q ; 與q比擬 JNE NE*T5 ; 不等于q就轉(zhuǎn)到NE*T5 MOV AH,4CH ; 回DOS INT 21HNE

23、*T5: MOV AH,09H ; 顯示MESG1MOV D*,OFFSET MESG1INT 21H JMP AA ; 跳到AAA1 PROC NEAR MOV AH,09H ; 提示輸入第一個(gè)數(shù) MOV D*,OFFSET MESG2 INT 21H MOV AH,0AH ; 接收第一個(gè)數(shù) MOV D*,OFFSET BUF1 INT 21H CALL A2 ; 調(diào)用A2進(jìn)展ASCII-二進(jìn)制的轉(zhuǎn)換 MOV BUF2,A* ; 把第一個(gè)數(shù)轉(zhuǎn)換的二進(jìn)制放在BUF2 MOV AH,09H ; 提示輸入第二個(gè)數(shù) MOV D*,OFFSET MESG3 INT 21H MOV AH,0AH ; 接

24、收第二個(gè)數(shù) MOV D*,OFFSET BUF1 INT 21H CALL A2 ; 調(diào)用A2把第二個(gè)數(shù)進(jìn)展ASCII-二進(jìn)制轉(zhuǎn)換RETA1 ENDPA2 PROC NEAR MOV CL,BUF1+1 ; 把BUF1+1中的實(shí)際鍵入的字符數(shù)放入CL MOV CH,0 ; CH清零 MOV B*,OFFSET BUF1+2 ; 把第一個(gè)數(shù)字的地址放在B* PUSH B* ; 保存B*中的值 PUSH C* ; 保存C*中的值L1: MOV AL,B* AND AL,0FH ; 把ASCII碼轉(zhuǎn)換為十進(jìn)制 MOV B*,AL ; 存放十進(jìn)制 INC B* ; 下一個(gè)數(shù)字的地址 LOOP L1 P

25、OP C* ; 恢復(fù)C* POP B* ; 恢復(fù)B* MOV A*,0 ; 將累加和賦零 MOV SI,10L2: MUL SIADD AL,B*ADC AH,0INC B* LOOP L2 ; 累加乘10L3: RET A2 ENDPJIA: MOV AH,09H ; 加法程序MOV D*,OFFSET MESG4INT 21H CALL A1 ; 調(diào)用A1 ADD A*,BUF2 ; 把轉(zhuǎn)換后的放在BUF2中的第一個(gè)數(shù)和放在A* JMP A3 ; 的第二個(gè)數(shù)相加JIAN: MOV AH,09H ; 減法程序MOV D*,OFFSET MESG5INT 21H CALL A1 MOV B*,

26、A* ; 把轉(zhuǎn)換后的放在A*的第二個(gè)數(shù)放到B* MOV A*,BUF2 ; 把轉(zhuǎn)換后放在BUF2中的第一個(gè)數(shù)放到A* SBB A*,B* ; 兩數(shù)相減 JMP A3CHENG: MOV AH,09H ; 乘法程序MOV D*,OFFSET MESG6INT 21H CALL A1 MOV B*,A* ; 把轉(zhuǎn)換后的放在A*的第二個(gè)數(shù)放到B* MOV A*,BUF2 ; 把轉(zhuǎn)換后的放在BUF2中第一個(gè)數(shù)放到A* MUL B* ; 兩數(shù)相乘 JMP A3CHU: MOV AH,09H ; 除法程序MOV D*,OFFSET MESG7INT 21H CALL A1 MOV D*,A* ; 把轉(zhuǎn)換后

27、的放在A*的第二個(gè)數(shù)放到D* MOV A*,BUF2 ; 把轉(zhuǎn)換后的放在BUF2中第一個(gè)數(shù)放到A* DIV DL ; 兩數(shù)相除,商在AL里 MOV AH,0H ; 使AH清零 JMP A3A3: MOV BUF3,+ ; 把BUF3放+ CMP A*,0 ; 把結(jié)果于0比擬 JGE L4 ; A*0轉(zhuǎn)到 L4 NEG A* ; A*0將A*取反 MOV BUF3,- ; 把BUF3放-L4: CWDMOV B*,10000 DIV B* ; 商為第一位數(shù)字放在AL,余數(shù)放在D*CALL BB MOV BUF3+1,AL ; 把第一個(gè)數(shù)放在BUF3+1單元中 MOV A*,D* ; 把放在D*中

28、的余數(shù)放到A* CWD MOV B*,1000 DIV B* ; 商為第二位數(shù)字放在AL,余數(shù)放在D*CALL BB MOV BUF3+2,AL ; 把第二個(gè)數(shù)放在BUF3+2單元中 MOV A*,D* ; 把放在D*中的余數(shù)放到A* MOV BL,100 DIV BL ; 商為第三位數(shù)字放在AL,余數(shù)放在AHCALL BB MOV BUF3+3,AL ; 把第三個(gè)數(shù)放在BUF3+3單元中 MOV AL,AH ; 把放在AH 中的余數(shù)放到AL CBW MOV BL,10 DIV BL ; 商為第四位數(shù)字放在AL,余數(shù)放在ACALL BB MOV BUF3+4,AL ; 把第四個(gè)數(shù)放在BUF3+

29、4單元中 ADD AH,30H ; 把個(gè)位轉(zhuǎn)為ASSCII碼 MOV BUF3+5,AH ; 把第五個(gè)數(shù)放在BUF3+5單元中 MOV AH,09H ; 提示結(jié)果 MOV D*,OFFSET MESG8 INT 21H MOV AH,09H MOV D*,OFFSET BUF3 ; 把放在BUF3緩沖區(qū)中的結(jié)果顯示出來(lái)INT 21H MOV AH,09H ; 提示是返回DOS還是重新計(jì)算 MOV D*,OFFSET TOP INT 21H JMP NE*T5 ; 其他數(shù)字重新計(jì)算BB PROC NEAR CMP AL,0H ; 與零比擬 JE L5 JMP L6L5: MOV AL,20H ;

30、 等于零,賦AL空格JMP L7L6: ADD AL,30H ; 不等于零,把數(shù)轉(zhuǎn)為ASSCII碼L7: RETBB ENDPA4: MOV AH,4CH ; AL等于Q就返回DOSINT 21HCODE ENDSEND START5、調(diào)試運(yùn)行結(jié)果5.1 操作說(shuō)明1按提示輸入1,2,3,4。21:加法 ADD。32:減法 SUB。43:乘法 MUL。54:除法 DIV。輸入一個(gè)十進(jìn)制數(shù),回車(chē)。再輸入一個(gè)十進(jìn)制數(shù),回車(chē)。顯示計(jì)算結(jié)果。退出按q。5.2 調(diào)試運(yùn)行結(jié)果1進(jìn)入系統(tǒng)界面,程序運(yùn)行截圖如圖5.1所示。圖5.1 進(jìn)入系統(tǒng)界面2加法:算法選擇1,按提示輸入兩個(gè)十六進(jìn)制數(shù),回車(chē)后顯示計(jì)算式和結(jié)果。程序運(yùn)行截圖如圖5.2所示。圖5.2 加法程序截圖3減法:算法選擇2,按提示輸入兩個(gè)十進(jìn)制數(shù),回車(chē)后顯示計(jì)算結(jié)果,程序運(yùn)行截圖如圖5.3所示。圖5.3 減法程序截圖4乘法:算法選擇3,按提示輸入兩個(gè)十進(jìn)制數(shù),回車(chē)后顯示計(jì)算結(jié)果。程序運(yùn)行截圖如圖5.4所示。圖5.4 乘法程序截圖5除法:算法選擇3,按提示出入兩個(gè)十進(jìn)制數(shù),回車(chē)后顯示計(jì)算結(jié)果,程序運(yùn)行截圖如圖5.5所示。圖5.5 除法程序截圖6退出:按q鍵即可退出程序。程序運(yùn)行截圖如圖5.6所示。圖5.6 退出運(yùn)行截圖程序運(yùn)行后可以看出,程序完成了十進(jìn)制加減乘除四則運(yùn)算,按q鍵則退出程序,符合設(shè)計(jì)要求。同

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論