帶顯示界面的加法器_第1頁
帶顯示界面的加法器_第2頁
帶顯示界面的加法器_第3頁
帶顯示界面的加法器_第4頁
帶顯示界面的加法器_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、華北科技學院課程設計說明書設計題目:帶顯示界面的加法器課程名稱:匯編語言課程設計 班級:計科B09-2姓名:趙凱東 學號:200907014212設計時間:2011-6-20 至 2011-7-1指導教師:李冬艷評 語:評閱成績:評閱教師:一、課程設計的性質(zhì)和目的性質(zhì):匯編語言是計算機科學與技術(shù)專業(yè)及網(wǎng)絡工程本科學 生必修的專業(yè)課程。目的:進行程序設計方法和技能的基本訓練,鞏固在課堂上學到 的有關(guān)程序設計的基本知識和基本方法,通過實際動手能力的培 養(yǎng),進一步熟悉匯編語言的結(jié)構(gòu)和使用方法,達到能獨立閱讀、編 制和調(diào)試一定規(guī)模的匯編語言程序的水平。二、課程設計的要求1、遵循模塊化、結(jié)構(gòu)化的程序設計

2、方法。2、要求程序必須正確。3、程序簡明易懂,多運用輸入輸出提示,出錯信息及必要的注 釋。4、要求程序結(jié)構(gòu)合理,語句使用得當。5、適當追求編程技巧和程序運行效率。三、主要儀器設備及軟件計算機、MASMi匚編軟件。四、課程設計題目題目:帶顯示界面的加法器用匯編語言設計一個加法器,實現(xiàn)加法求和運算。所有數(shù)據(jù)在 菜單界面上輸入,輸入結(jié)果也在菜單上顯示,按車鍵則退出加法器菜單并返回DOS系統(tǒng),否則繼續(xù)進行加法運算五、課題分析及設計思路1、這個題目是做一個帶顯示界面的加法器,它的主要難度是做 一個顯示界面;3、在界面的輸出這就用到了 BIOS的10號類型的顯示中斷功能, 主要用到了設置光標,以及清屏功能

3、,;4、該加法器的功能就和普通的設計加法一樣,只不過要和置光 標功能及清屏功能配合將光標置于合適位置,在合適的區(qū)域清屏;5、數(shù)據(jù)儲存方式,由于存在位數(shù)不定的整數(shù),根據(jù)其特點,整 數(shù)部分以有符號二進制形式儲存與字單位存儲區(qū)中;6、模塊的劃分,宏定義模塊,子程序模塊,輸入模塊,輸出模 塊,刪除模塊,多重循環(huán)模塊,繼續(xù)模塊,主程序及界面模塊。其中 每個功能模塊都有獨立的輸入輸出接口,有一定獨立性;六、程序主要流程1、存儲單元清零的流程圖:No2、求和的流程圖:BX=10000SUMAX/BX 的商AX-AX/BX的余數(shù)BX=1000SUM+2 AX/BX 的商AX-AX/BX的余數(shù)BX=100HE+

4、4 AX/BX 的商AXAX/BX的余數(shù)BX=10SUM+6 AX/BX 的商SUM+8 AX/BX 的余3、輸入數(shù)字的流程圖:七、源代碼及主要代碼分析解釋和其功能效果展示DATAS SEGMENT STR1 DB0AH,0DH, *STR2 DB 0AH,0DH, *Huan ying shi yong Jia Fa Qi * TOC o 1-5 h z STR3 DB0AH,0DH, *STR4DB0AH,0DH,*STR5 DB0AH,0DH, *STR6DB0AH,0DH,*Qidong Jia Fa Qi qing EN 1*STR7 DB0AH,0DH, *STR8DB0AH,0D

5、H,*Enqi ta ren yi jian TUI CHU*STR9 DB0AH,0DH, *STR10 DB0AH,0DH, *STR11 DB0AH,0DH,*STR12 DB0AH,0DH, *STR13 DB0AH,0DH, *STR14 DB0AH,0DH, *STR15 DB0AH,0DH, *STR16 DB0AH,0DH, *STR17 DB0AH,0DH, *STR18 DB0AH,0DH, *LENGTH1 EQU $-STR1;Mstr1 的字節(jié)數(shù)STR19 DB Hui che tui chu,qi ta jian ji xu!$ STR20 DB Qing zai

6、ci shu ru!$ ERR DB CUO WU!Qing zai ci shu ru!$ STR21 DB Beijiashu:,$ STR22 DB Jiashu:, $STR23 DB Jieguo:,$STR24 DB Qing xuan ze: $ str25 db Jia Fa Qi Yun Xing Zhong.$;以上都是字符串的定義JIASHU DW ? BEIJIASHU DW ? HE DW ?;變量的定義/以上是要顯示的字符串和程序中出現(xiàn)的變量的定義模塊的代碼./SHOW MACRO M;定義顯示字符串宏LEA DX,M MOV AH,9 INT 21HENDMGUA

7、NGBIAO MACRO M1,M2MOV DH,M1MOV DL,M2MOV BH,0MOV AH,02INT 10HENDMQINGPING MACRO M1,M2,M3,M4,M5MOV AH,6MOV AL,M1MOV BH,0dHMOV CH,M2MOV CL,M3MOV DH,M4MOV DL,M5 INT 10H ENDM/以上為程序中出現(xiàn)的三種宏的代碼。/DATAS ENDSSTACKS SEGMENT STACKS ENDS CODES SEGMENT;定義光標宏;行(丫坐標);列以坐標);顯示頁碼;用文本坐標下,設置光標位置;定義清屏標宏;向上滾屏;滾動行數(shù)(0-清窗口);

8、空白區(qū)域的缺省屬性,此處顏 色設置為淺品紅色(0dH)。;窗口的左上角位置,Y坐標;,X坐標;窗口的右上角位置,Y坐標;,X坐標ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV AL,3;設置80*25 16色文本MOV AH,0;設置顯示模式為80*25彩色文本模式INT 10H/以上三句代碼是DIOS的10號功能AH=0的設置顯示方式的調(diào)用,al=3,即設置為80*25 16色文本的顯示模式。/MOV BP, SEG STR1;取段地址MOV ES,BPMOV BP, OFFSET STR1;取偏移地址MOV

9、CX,LENGTH1MOV DX,0MOV BL,02H;顯示的屬性(顏色)設置,此處設置的是綠色(02H)MOV AL,0;光標位置不變(1改變)屬性存在BL中,2和3的屬MOV AH,13H性不在BL中;在TELETYPE模式下顯示字符串INT 10H/以上為調(diào)用DIOS10號功能,ah=13的顯示字符串,ES:BP=字符串地址,。乂=字 符串長度,(dx)dh/dl=起始行/列,bh/bl=葉號/屬性(顏色),只有一頁, 所以bh沒有設置。下圖(圖一)為以上顯示代碼的效果圖,即為初始界面。其 光標的位置是由該圖下面的guangbiao 10, 20和SHOW STR24兩句代碼決定的,

10、guangbiao 10,20決定了字符串str24的輸出位置,圖中光標的的位置是在這句 字符串輸出后順延得到的,此處光標的坐標應為10.34。/(圖一)QINGPING 1,10,34,10,45;清屏宏調(diào)用,使輸入部分的字體顏色改變,使之美觀GUANGBIAO 10,20SHOW STR24;光標宏調(diào)用,確定字符串的輸入位置;顯示(字符串輸出)宏調(diào)用MOV AH,1INT 21H;鍵盤輸入并回顯/以上兩句調(diào)用DOS的ah=01鍵盤輸入并回顯功能,輸入字符在al中。/CMP AL,1;輸入1進入加法器JNE LOOP8/以上兩句代碼是比較選擇的,決定是否進入加法器,輸入1進入加法器,然后繼續(xù)

11、執(zhí)行以下代碼,否則跳到LOOP8, LOOP8是一段終止代碼,及退出程序。/QINGPING 3,6,19,6,53GUANGBIAO 7,18 show str25GUANGBIAO 12,20SHOW STR21GUANGBIAO 13,20SHOW STR22GUANGBIAO 14,20SHOW STR23/以上代碼是在選擇了 “1”(即輸入了“1 ”)進入加法器后,馬上執(zhí)行的代碼, 四個字符串的輸出位置依次有四個光標的設置位置決定,效果如下圖(圖二)。 而此處代碼基本解決了這個題目的首要難題一帶界面顯示,而整個界面的布 局主要由光標的設置決定,在這里對整個顯示窗口的坐標把我至關(guān)重要。

12、同時 在這里對于“ str25 ”語句的輸出還有應用的清屏宏為其清理出必要的顯示空間, 這里同樣要把握好相關(guān)的坐標。/(圖二)MOV SI, -2MOV CX,5LOOP1:;存儲器清零ADD SI,2MOV HESI,0LOOP LOOP1MOV BX,0LOOP2:;輸入被加數(shù)QINGPING 3,12,30,12,45 /此處清屏為被加數(shù)、加數(shù)、運算結(jié)果提供現(xiàn)實空間/GUANGBIAO 12,30/此處的光標設置即為圖二中光標位置/CALL INPUT/此處調(diào)用輸入子程序“INPUT”,輸入被加數(shù),輸入后的效果如下圖(圖三)/(圖三)MOV BEIJIASHU,BX/此處對被加數(shù)進行保存

13、/LOOP3:;輸入加數(shù)QINGPING 1,16,10,16,52GUANGBIAO 13,30/此處的光標設置即為圖三中光標顯示的位置,即要輸入加數(shù)的位置/MOV BX,0CALL INPUT /調(diào)用輸入子程序輸入加數(shù),輸入后效果如下圖(圖四)/(圖四)MOV JIASHU,BX /對加數(shù)進行保存/;相加;擴展并求結(jié)果各位數(shù)值;余數(shù)給AXLOOP4:GUANGBIAO 14,30 /此處的光標設置為加發(fā)運算后得到的結(jié)果輸出的位置/MOV AX,BEIJIASHUADD AX,JIASHUCWDMOV DX,0MOV BX,10000DIV BXMOV HE,AXMOV AX,DXCWDMO

14、V BX,1000DIV BXMOV HE+2,AXMOV AX,DXCWDMOV BX,100DIV BXMOV HE+4,AXMOV AX,DXCWDMOV BX,10DIV BXMOV HE+6,AXMOV HE+8,DX/以上代碼是對加法計算后的結(jié)果進行除法處理,從最高位開始依次將每位上的 數(shù)字存儲到HE中/MOV SI,-2MOV CX,5LOOP5:ADD SI,2;結(jié)果輸出MOV DX,HESIADD DX,30HMOV AH,02INT 21HLOOP LOOP5;每位循環(huán)輸出/依次輸出HE中的數(shù)字,即輸出運算結(jié)果,其效果圖如下(圖五)/LOOP6:GUANGBIAO 16,2

15、0;退出或繼續(xù)SHOW STR19/上面兩句代碼的功能是在指定的16.20位置輸出提示語句str19,即為下圖(圖 五)中的最后一句字符/(圖五)GUANGBIAO 10,36/此處的光標設置即為圖五中光標位置/MOV AH,01INT 21HCMP AL,0DH;回車退出JNE LOOP7GUANGBIAO 17,30、/以上這幾句代碼實現(xiàn)了“按回車退出,其他任意鍵繼續(xù)”的功能,調(diào)用dos的ah=01 的輸入并回顯功能,然后與0d (回車)比較,如果不相等則跳到loop7繼續(xù)運行 加法器,效果如圖七所示,此處按的是任意鍵“g”,也可以按其他鍵;如果相 等,則執(zhí)行下面的代碼,程序運行結(jié)束,下圖

16、(圖六)是按了回車后的效果圖/MOV AH,4CHINT 21H(圖六)LOOP7:QINGPING 1,16,15,16,53GUANGBIAO 16,20SHOW STR20JMP LOOP1/以上代碼為選擇了繼續(xù)后執(zhí)行的,首先顯示了一句提示語句,然后跳到loop1 整個加法器重新運行。效果圖如下(圖七)/(圖七)LOOP8:GUANGBIAO 17,30MOV AH,4CH INT 21H/一切若是運行正常,在選擇了摁回車后,則會跳到loop8,程序到此運行結(jié)束/ERROR:QINGPING 1,16,15,16,53 GUANGBIAO 16,20 SHOW ERR JMP LOOP1

17、/以上代碼執(zhí)行后的結(jié)果如下圖(圖八)/(圖八);定義子程序;輸入回車輸入結(jié)束INPUT PROC NEAR LP1:MOV AH,01INT 21HCMP AL,0dH JE EXIT/此處為判斷輸入是否結(jié)束,如果輸入回車則跳到EXIT,輸入子程序結(jié)束, 否則繼續(xù)輸入直到遇到回車/CMP AL,30HJB ERRORCMP AL,39HJA ERROR;不是09之間則顯示錯誤/此處為本程序中的糾錯功能,若輸入的不是數(shù)字(0-9),則會跳到ERROR 顯示出提示錯誤的語句,并跳到loop1,對所有儲存器清零,加法器重新運行, 從輸入被加數(shù)再次開始,界面效果如圖七所示。/SUB AL,30HCBW

18、XCHG AX,BXMOV CX,10MUL CXADD BX,AX;跳轉(zhuǎn)直到輸入回車JMP LP1EXIT:RETINPUT ENDPCODES ENDSEND START八、心得體會1、在完成了這個加法器的編程后,突然發(fā)現(xiàn)匯編其實挺簡的, 而這個題目也有點太簡單了,有點后悔沒有找個更難一點的題 目。可是仔細想了之后,這個題目簡單嗎?如果只是僅僅的完成 所有要求的目的是簡單,可是要將這個簡單的題目做好,而且做 到最好,它并不是一件容易的事,所以自己再次對整個程序進行 調(diào)試完善,力求更好。但最后還是由于自己所學有限,和時間的 限制,還有自己的2個想法未能實現(xiàn),(1)有漢字輸出,(2) 運算結(jié)果可以突破65535,達到更多的數(shù)位。2、在編寫代碼前,一定要有一個系統(tǒng)的思路,并要做好流 程圖,最好是可以

溫馨提示

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

評論

0/150

提交評論