



版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、【課題 5】模擬十進(jìn)制計算器(加,減)(一)設(shè)計要求1.通過小鍵盤輸入,做十進(jìn)制的加、減運算,允許五位數(shù)以內(nèi)的不同數(shù)位的2 個數(shù)相加或相減,連加與/或連減。七段數(shù)碼管顯示器的高位作為符號位,其他5 位作為輸入數(shù)據(jù)和計算結(jié)果的顯示。2.數(shù)字用小鍵盤0 9;功能鍵為: A , B, C, D。C開始運算(包括取消沒有完成的運算),六位七段數(shù)碼管全部顯示0。A ,加法操作。B,減法操作。D,計算并顯示結(jié)果。3.運算規(guī)則(按照一般計算器的功能要求):a.輸入第一個數(shù)據(jù),顯示器跟隨顯示。b.按或 ,顯示器內(nèi)容不變。c.再輸入第二個數(shù)據(jù),顯示器跟隨顯示。d.按,顯示器顯示計算結(jié)果,當(dāng)超出能顯示的最大值時,
2、顯示“F”(溢出)。e.按 C,清除顯示,重新開始運算。(二)提示1.七段數(shù)碼管顯示和鍵盤可參考軟件實驗9、 10, LED 顯示實驗,以及可參閱教材第9章有關(guān)章節(jié)。2.顯示是動態(tài)的、要不斷刷新,建議把鍵盤輸入與運算作為主程序,動態(tài)顯示作為子程序,在主程序中調(diào)用顯示子程序。(三)要完成的工作1.設(shè)計出完整的匯編語言程序。2.上機調(diào)試,在實驗系統(tǒng)中通過驗收。3.寫出課程設(shè)計報告,內(nèi)容包括:設(shè)計思想、功能流程圖、結(jié)果討論和完整的源程序。; ( 1) 通過小鍵盤做十進(jìn)制的加、 減運算, 允許不同數(shù)位的 5 個數(shù)相加或相減。 七段數(shù)碼管顯示器作輸入數(shù)據(jù)和結(jié)果數(shù)據(jù)的顯示。; ( 2) 數(shù)字用小鍵盤 0
3、9,A、 B、 C、 D 作功能鍵。;C開始運算(包括撤銷運算),顯示 0。;A 。;B 。;D。;E 退出,返回DOS。; ( 3) 運算順序:; 輸入一原始數(shù)據(jù),顯示器跟隨顯示。; 按 + 或 - ,顯示器內(nèi)容不變。; 再輸入一數(shù)據(jù),顯示器跟隨顯示。; 按 = ,顯示器顯示結(jié)果數(shù)據(jù),當(dāng)超出能顯示的最大值時,顯示“FFFFF”(溢出)。; 按 C,重新開始運算。; 按 E,結(jié)束退出。;*;8086 系列微機接口實驗系統(tǒng)軟件實驗項目1/15; 鍵盤掃描顯示實驗;*INIT MACRO NAMEmov NAME+0,0ffhmov NAME+1,0c0hmov NAME+2,0ffhmov NA
4、ME+3,0ffhmov NAME+4,0ffhmov NAME+5,0ffhENDMcodesegmentassume cs:codeOUTSEG equ 0ffdch;段控制口OUTBIT equ 0ffddh;位控制口 / 鍵掃口IN_KEYequ 0ffdeh;鍵盤讀入口LedBufdb10 dup(?);顯示緩沖Storedb10 dup(?);存放顯示第一組數(shù)據(jù)numdb10 dup(?)Store1db10 dup(?);用于存放第一組數(shù)據(jù)num1db10 dup(?);用于存放第二組數(shù)據(jù)flagdb0;作為標(biāo)記位,若為1 代表加為0 代表減tempdb0jinweidb0jie
5、weidb0in_flagdb 0Key_Buff db30dup(?);用于鍵盤輸入的存儲org 1000hStart:INIT StoreINIT numINIT LedBufmov si,-1;設(shè)置數(shù)組的下標(biāo)mov Store1+0,0mov Store1+1,0mov Store1+2,0mov Store1+3,0mov Store1+4,0mov num1+0,02/15mov num1+1,0mov num1+2,0mov num1+3,0mov num1+4,0MLoop:call Disp;顯示call GetKey;掃描鍵盤并讀取鍵值cmp al,20hje LLjmp L
6、L1LL: mov temp,0jmp MLoopLL1: push dxmov dl,tempmov temp,1cmp al,09hja transmitcmp Key_Buffsi,aljz inkey_flagjmp LL2inkey_flag:cmp temp,dlpop dxjz MLoopjmp LL2;!注意要加這一句transmit:jmp SPECIAL ;特殊字符特殊處理LL2: inc simov Key_Buffsi,al;將鍵盤輸入的鍵盤碼放到Key_Buff 中cmp si,5jae abcpush dxmov dl,Store1+1mov Store1+0,dl
7、mov dl,Store1+2mov Store1+1,dlmov dl,Store1+3mov Store1+2,dlmov dl,Store1+4mov Store1+3,dl3/15mov Store1+4,alpop dxjmp bcdabc:mov di,sisub di,5push dxmov dl,num1+1mov num1+0,dlmov dl,num1+2mov num1+1,dlmov dl,num1+3mov num1+2,dlmov dl,num1+4mov num1+3,dlmov num1+4,alpop dxjmp bcdbcd:and al,0fh;顯示鍵碼m
8、ov ah,0mov bx,offset LEDMAPadd bx,axmov al,bxcmp si,5jae next1mov Storesi+1,aljmp back1next1: mov di,sisub di,5mov numdi+1,aljmp start1back1: push dx;將 Store 里的數(shù)據(jù)放到Led 中,方便以后顯示mov dl,Store+1mov LedBuf+1,dlmov dl,Store+2mov LedBuf+2,dlmov dl,Store+3mov LedBuf+3,dlmov dl,Store+4mov LedBuf+4,dlmov dl,S
9、tore+5mov LedBuf+5,dl4/15pop dxjmp MLoopstart1:INIT LedBufcall Disp;jmp MLoopback2: push dxmov dl,num+1mov LedBuf+1,dlmov dl,num+2mov LedBuf+2,dlmov dl,num+3mov LedBuf+3,dlmov dl,num+4mov LedBuf+4,dlmov dl,num+5mov LedBuf+5,dlpop dxjmp MLoopback3: push dxmov dl,Store+0mov LedBuf+0,dlmov dl,Store+1mo
10、v LedBuf+1,dlmov dl,Store+2mov LedBuf+2,dlmov dl,Store+3mov LedBuf+3,dlmov dl,Store+4mov LedBuf+4,dlmov dl,Store+5mov LedBuf+5,dlpop dxjmp MLoopSPECIAL:cmp al,0ahjne decremov flag,1mov si,4jmp MLoopdecre: cmp al,0bhjneRestartmov flag,05/15movsi,4jmpMLoopRestart: cmp al,0chjneExitmovflag,0jmpStartExi
11、t: cmpal,0ehjne DisplaymovStore+0,0Ch;顯示 "P"movStore+1,0ffhjmp back1Display:cmp al,0dhje printjmp back3print: cmp flag,0je subbjmp addasubb:movcl,num1+0;比較兩數(shù)大小,如果用小數(shù)減大數(shù)則交換數(shù)據(jù)movbl,Store1+0cmpbl,cljb jiaohmovcl,num1+1movbl,Store1+1cmpbl,cljb jiaohmovcl,num1+2movbl,Store1+2cmpbl,cljb jiaohmov
12、cl,num1+3movbl,Store1+3cmpbl,cljb jiaohmovcl,num1+4movbl,Store1+4cmpbl,cljb jiaohjmpjianfa6/15jiaoh: push dx;交換兩個數(shù)組中的數(shù)值mov dh,num1+0mov dl,Store1+0mov num1+0,dlmov Store1+0,dhmov dh,num1+1mov dl,Store1+1mov num1+1,dlmov Store1+1,dhmov dh,num1+2mov dl,Store1+2mov num1+2,dlmov Store1+2,dhmov dh,num1+3
13、mov dl,Store1+3mov num1+3,dlmov Store1+3,dhmov dh,num1+4mov dl,Store1+4mov num1+4,dlmov Store1+4,dhmov Store0,0BFh;最高位顯示“ - ”pop dxjianfa: mov cl,num1+4;最低位相減movbl,Store1+4cmpbl,cljae H1movjiewei,1mov bh,0ahsubbh,claddbl,bhmovcl,bljmp F1H1:subbl,clmovcl,bljmp F1F1:moval,clandal,0fh;顯示鍵碼mov ah,0mov b
14、x,offset LEDMAP7/15add bx,axmoval,bxmovStore5,almov cl,num1+3;第二位相減movbl,Store1+3subbl,jieweicmp bl,0Fh;考慮 0 被借位變成 FjzN1jmp M1N1:mov bl,09hjmp M1M1:mov jiewei,0cmpbl,cljae H2movjiewei,1mov bh,0ahsubbh,claddbl,bhmovcl,bljmp F2H2:subbl,clmovcl,bljmp F2F2:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LED
15、MAPadd bx,axmoval,bxmovStore4,almov cl,num1+2;第三位相減movbl,Store1+2subbl,jieweicmp bl,0Fh;考慮 0 被借位變成 FjzN2jmp M2N2:mov bl,09h8/15jmp M2M2:mov jiewei,0cmp bl,cljae H3mov jiewei,1mov bh,0ahsub bh,cladd bl,bhmov cl,bljmp F3H3:subbl,clmovcl,bljmp F3F3:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAPadd
16、bx,axmoval,bxmovStore3,almov cl,num1+1;第四位相減movbl,Store1+1subbl,jieweicmp bl,0Fh;考慮 0 被借位變成 FjzN3jmp M3N3:mov bl,09hjmp M3M3:mov jiewei,0cmpbl,cljae H4movjiewei,1mov bh,0ahsubbh,claddbl,bhmovcl,bljmp F4H4:9/15subbl,clmovcl,bljmp F4F4:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAPadd bx,axmoval,b
17、xmovStore2,almov cl,num1+0;最高位相減movbl,Store1+0subbl,jieweimovjiewei,0cmpbl,cljae H5movjiewei,1subcl,bljmp F5H5:subbl,clmovcl,bljmp F5F5:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAPadd bx,axmoval,bxmovStore1,aljmp back3ADDa:mov cl,num1+4 ;最低位執(zhí)行加法mov bl,Store1+4add cl,blcmp cl,0ah10/15jbHsubcl,0
18、ahincjinweiH:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAPadd bx,axmoval,bxmovStore5,almov cl,num1+3 ;第二位加法movbl,Store1+3addcl,bladdcl,jinweimovjinwei,0cmp cl,0ahjbHAsubcl,0ahincjinweiHA:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAPadd bx,axmoval,bxmovStore4,almov cl,num1+2 ;第三位執(zhí)行加法movbl,S
19、tore1+2addcl,bladdcl,jinweimovjinwei,0cmp cl,0ahjbHBsubcl,0ahincjinweiHB:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAP11/15add bx,axmoval,bxmovStore3,almov cl,num1+1 ;執(zhí)行加法movbl,Store1+1addcl,bladdcl,jinweimovjinwei,0cmp cl,0ahjbHCsubcl,0ahincjinweiHC:moval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset
20、LEDMAPadd bx,axmoval,bxmovStore2,almov cl,num1+0 ;最高位執(zhí)行加法movbl,Store1+0addcl,bladdcl,jinweimovjinwei,0cmp cl,0ahjaecontinuemoval,clandal,0fh;顯示鍵碼mov ah,0mov bx,offset LEDMAPadd bx,axmoval,bxmovStore1,aljmp back3continue:mov Store0,8Ehmov Store1,8Ehmov Store2,8Ehmov Store3,8Eh12/15mov Store4,8Ehmov Store5,8Ehjmp back3; 系統(tǒng)原有的函數(shù)直接調(diào)用Disp:mov bx,offset LEDBufmov cl,6;共 6 個八段管mov ah,00100000b;從左邊開始顯示DLoop:mov dx,OUTBITmov al,0out dx,al;關(guān)所有八段管mov al,bxmov dx,OUTSEGout dx,almov dx,OUTBITmov al,ahoutdx,al;顯示一位八段管push axmov ah,1call Delaypop axshrah,1inc bxdeccljnz DLoopmov dx,OUTBITmov
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字智慧方案5494丨商業(yè)辦公綜合體智能化系統(tǒng)匯報方案
- 液壓馬達(dá)的振動與噪音抑制考核試卷
- 環(huán)境地質(zhì)工程課件
- 《能量分配器件》課件
- 2025年嘧菌酯合作協(xié)議書
- 小學(xué)勞動教育意義及建議
- 2025年工程瑞雷波儀項目建議書
- 2025年環(huán)境控制系統(tǒng)項目合作計劃書
- 2025年重癥監(jiān)護(hù)臨床信息系統(tǒng)項目建議書
- 醫(yī)學(xué)顯微鏡技術(shù)原理與應(yīng)用
- 新疆可克達(dá)拉職業(yè)技術(shù)學(xué)院招聘事業(yè)單位人員筆試真題2024
- 重慶金太陽2025屆高三5月聯(lián)考英語及答案
- 護(hù)理事業(yè)編試題及答案
- 全國新能源汽車關(guān)鍵技術(shù)技能大賽理論知識競賽題庫
- 2025屆貴州省遵義第四中學(xué)高考英語全真模擬密押卷含解析
- 人工氣道濕化管理
- 2025屆湖北省武漢市高中畢業(yè)生4月調(diào)研考試英語試題答案
- 人工智能在食品檢測中的創(chuàng)新應(yīng)用探討
- 2025-2030中國骨形態(tài)發(fā)生蛋白2行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025年高考語文備考之新題型:成語填空專項訓(xùn)練(含答案)
- 職場溝通職場溝通與人際關(guān)系處理知到課后答案智慧樹章節(jié)測試答案2025年春山東管理學(xué)院
評論
0/150
提交評論