




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
匯編語言課程設(shè)計(jì)報(bào)告(20--20年度第1學(xué)期)課題名稱:課題名稱:代碼轉(zhuǎn)換程序?qū)I(yè)XXXXX學(xué)生姓名XXX班級XXXXXXX學(xué)號XXXX指導(dǎo)教師XXXX完成日期XXXX目錄TOC\o"1-5"\h\z\u目錄 21概述 11.1課程設(shè)計(jì)目的 11.2課程設(shè)計(jì)內(nèi)容 12程序需求分析 12.1程序目標(biāo) 12.2主體功能 12.3開發(fā)環(huán)境 13程序概要設(shè)計(jì) 13.1程序的功能模塊劃分 13.2程序流程圖 24程序詳細(xì)設(shè)計(jì) 44.1程序功能菜單模塊設(shè)計(jì) 44.2小寫字母向大寫字母轉(zhuǎn)換模塊設(shè)計(jì) 44.3大寫字母向小寫字母轉(zhuǎn)換模塊設(shè)計(jì) 54.4二進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì) 54.5十六進(jìn)制數(shù)向二進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì) 54.6十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì) 65小結(jié) 7參考文獻(xiàn) 9附錄 10附錄1源程序清單 10代碼轉(zhuǎn)換程序設(shè)計(jì)1概述1.1課程設(shè)計(jì)目的1、通過利用匯編語言寫代碼轉(zhuǎn)換程序,更好的掌握匯編語言,通過實(shí)踐來鞏固匯編語言的理論知識。2、鞏固并加深對匯編語言程序設(shè)計(jì)知識的理解3、進(jìn)一步掌握和應(yīng)用匯編語言集成開發(fā)環(huán)境4、提高運(yùn)用匯編語言解決實(shí)際問題的能力5、掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力(書寫課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告)1.2課程設(shè)計(jì)內(nèi)容功能菜單的編制;小寫字母向大寫字母的轉(zhuǎn)換;大寫字母向小寫字母的轉(zhuǎn)換;二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換;十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換;十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換。2程序需求分析2.1程序目標(biāo)實(shí)現(xiàn)代碼轉(zhuǎn)換:大小寫字母之間轉(zhuǎn)換,二進(jìn)制、十進(jìn)制、十六進(jìn)制之間的相互轉(zhuǎn)換。2.2主體功能模塊2、模塊3選項(xiàng),進(jìn)行大小寫字母的轉(zhuǎn)換,顯示出待轉(zhuǎn)換的字母及轉(zhuǎn)換后的字母。在實(shí)際應(yīng)用中,不僅有數(shù)值的運(yùn)算,還有更多的是大量的非數(shù)值的處理,特別是在現(xiàn)代或今后的社會活動(dòng)中,非數(shù)值處理在管理程序、文字處理和過程控制中將會得到廣泛的應(yīng)用。模塊4、模塊6、模塊7選項(xiàng),進(jìn)行數(shù)制的轉(zhuǎn)換,顯示出待轉(zhuǎn)換數(shù)值及轉(zhuǎn)換后的數(shù)值。本選項(xiàng)的功能時(shí)實(shí)現(xiàn)十進(jìn)制數(shù)向二進(jìn)制和十六進(jìn)制的轉(zhuǎn)換。由于用戶輸入的數(shù)一般是用十進(jìn)制表示的,而這些數(shù)在計(jì)算機(jī)內(nèi)存儲、運(yùn)算時(shí)一般都是用二進(jìn)制,這就涉及到了十進(jìn)制數(shù)向二進(jìn)制的轉(zhuǎn)換問題,所以二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換算法是匯編語言程序員應(yīng)該掌握的基本算法之一。2.3開發(fā)環(huán)境MicrosoftWindows7MASM3程序概要設(shè)計(jì)3.1程序的功能模塊劃分設(shè)計(jì)一個(gè)字母和數(shù)制之間的轉(zhuǎn)化的程序,用戶通過輸入不同的數(shù)字,來選擇要實(shí)現(xiàn)的功能。輸入6可直接退出程序。本程序共有7個(gè)模塊:模塊5為主模塊,調(diào)用模塊1和模塊7。開始顯示提示信息調(diào)用功能接收鍵盤輸入信息實(shí)現(xiàn)小寫字母向大寫字母的轉(zhuǎn)換開始顯示提示信息調(diào)用功能接收鍵盤輸入信息實(shí)現(xiàn)小寫字母向大寫字母的轉(zhuǎn)換實(shí)現(xiàn)大寫字母向小寫字母的轉(zhuǎn)換實(shí)現(xiàn)二進(jìn)制數(shù)向十六進(jìn)制數(shù)的轉(zhuǎn)換實(shí)現(xiàn)十六進(jìn)制數(shù)向二進(jìn)制數(shù)的轉(zhuǎn)換實(shí)現(xiàn)十六進(jìn)制數(shù)向十進(jìn)制數(shù)的轉(zhuǎn)換輸出錯(cuò)誤是“2”?是“3”?是“4”?是“5”?是“6”?是“1”?退出YNYYYYYNNNNN3.2程序流程圖圖3-1程序流程圖4.1程序功能菜單模塊設(shè)計(jì)4.2小寫字母向大寫字母轉(zhuǎn)換模塊設(shè)計(jì)4.3二進(jìn)制數(shù)向十六進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)4.4十六進(jìn)制數(shù)向二進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)4.5十六進(jìn)制數(shù)向十進(jìn)制數(shù)轉(zhuǎn)換模塊設(shè)計(jì)5小結(jié)通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)匯編語言方面的知識,在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過親自動(dòng)手編程,使我們掌握的知識不再是紙上談兵。在課程設(shè)計(jì)過程中,我們不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。最終把程序調(diào)試成功。這次課程設(shè)計(jì)終于順利完成了,在設(shè)計(jì)中遇到了很多問題,最后在和同學(xué)的討論下,還有網(wǎng)上搜索的結(jié)果下,終于游逆而解。在今后社會的發(fā)展和學(xué)習(xí)實(shí)踐過程中,一定要不懈努力,不能遇到問題就想到要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退,那樣永遠(yuǎn)不可能收獲成功,收獲喜悅,也永遠(yuǎn)不可能得到社會及他人對你的認(rèn)可!課程設(shè)計(jì)給我很多專業(yè)知識以及專業(yè)技能上的提升,同時(shí)又給了我許多思考方法,給了我很多思考思路,給了我很大的自由發(fā)揮空間。同時(shí),設(shè)計(jì)讓我感觸很深。使我對抽象的理論有了具體的認(rèn)識。通過這次課程設(shè)計(jì),我掌握了匯編語言更多知識,這些是課本上沒有的。我認(rèn)為,在這學(xué)期的實(shí)驗(yàn)中,不僅培養(yǎng)了獨(dú)立思考、動(dòng)手操作的能力,在各種其它能力上也都有了提高。更重要的是,在實(shí)驗(yàn)課上,我們學(xué)會了很多學(xué)習(xí)的方法。而這是日后最實(shí)用的,真的是受益匪淺。要面對社會的挑戰(zhàn),只有不斷的學(xué)習(xí)、實(shí)踐,再學(xué)習(xí)、再實(shí)踐。這對于我們的將來也有很大的幫助。回顧起此課程設(shè)計(jì),至今我仍感慨頗多,從理論到實(shí)踐,在這段日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過的知識,而且學(xué)到了很多在書本上所沒有學(xué)到過的知識。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識與實(shí)踐相結(jié)合起來,從理論中得出結(jié)論,才能真正的掌握所學(xué)的知識,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過程中遇到問題,可以說得是困難重重,但可喜的是最終都得到了解決。課程設(shè)計(jì)過程中,也對團(tuán)隊(duì)精神的進(jìn)行了考察,讓我們在合作起來更加默契,在成功后一起體會喜悅的心情。團(tuán)結(jié)就是力量,只有互相之間默契融洽的配合才能換來最終完美的結(jié)果。此次設(shè)計(jì)也讓我明白了思路即出路,有什么不懂不明白的地方要及時(shí)請教或上網(wǎng)查詢或者同學(xué)間相互討論,只要認(rèn)真鉆研,動(dòng)腦思考,動(dòng)手實(shí)踐,就沒有克服不了的難題。參考文獻(xiàn)[1]劉其明.匯編語言程序設(shè)計(jì)教程[M].江蘇:中國礦業(yè)大學(xué)出版社,2010.10[2]沈美明.IBM-PC匯編語言程序設(shè)計(jì)實(shí)驗(yàn)教程[M].北京:清華大學(xué)出版社,2010.6 附錄附錄1源程序清單源程序:DATAS SEGMENTmenu DB 0AH,0DH,'' DB 0AH,0DH,'Pleasechoiceaction:',0AH,0DH DB 0AH,0DH,'1.Letterchange' DB 0AH,0DH,'2.BinarytoHexadecimal' DB 0AH,0DH,'3.HexadecimaltoBinary' DB 0AH,0DH,'4.HexadecimaltoDecimal' DB 0AH,0DH,'q.Exit' DB 0AH,0DH,'',0AH,0DH,'$'STR1 DB 0AH,0DH,'PleaseinputaLetter',0AH,0DH,'$'STR11 DB 0AH,0DH,'ThebigLetteris:',0AH,0DH,'$'STR12 DB 0AH,0DH,'ThelitteLetteris:',0AH,0DH,'$'STR13 DB 0AH,0DH,'PleaseconfirmyoujustinputedisaLetter',0AH,0DH,'$'STR2 DB 0AH,0DH,'Pleaseinputthebinarystring,Entertoconfirm',0AH,0DH,'$'STR21 DB 0AH,0DH,'ThestringHexadecimalis:',0AH,0DH,'$'STR3 DB 0AH,0DH,'PleaseinputtheHexadecimalstring,Entertoconfirm',0AH,0DH,'$'STR31 DB 0AH,0DH,'changetobinaryis:',0AH,0DH,'$'STR4 DB 0AH,0DH,'changetoDecimalis:',0AH,0DH,'$'DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS;宏定義字符輸入charin MACRO ;宏定義無參數(shù)的字符輸入功能 MOVAH,01H ;系統(tǒng)調(diào)用輸入一個(gè)字符用于功能選擇 INT21H ;字符默認(rèn)輸入到AL中ENDM;宏定義數(shù)字輸入數(shù)字輸入到AL中numin MACRO charin SUBAL,48ENDM;宏定義字符串輸入strin MACROSTRINGIN ;將字符串輸入到字符串STRINGIN中 LEADX,STRINGIN ;將STRINGIN的偏移地址送到DX寄存器 MOVAH,0AH ;0AH字符串輸入功能 INT21H ;調(diào)用系統(tǒng)中斷ENDM ;宏定義字符輸出charout MACRO outchar ;宏定義將字符outchar輸出 PUSHAX PUSHDX MOVDL,outchar MOVAH,02H ;系統(tǒng)調(diào)用輸出字符outchar INT21H ;調(diào)用系統(tǒng)中斷調(diào)用過程中會改變AL中的值,故將AX中的值入棧保存 POPDX POPAXENDM;宏定義數(shù)字輸出numout MACROoutnum PUSHAX PUSHDX MOVDL,outnum ADDDL,48 ;將數(shù)值轉(zhuǎn)換為對應(yīng)得數(shù)值字符 MOVAH,02H ;系統(tǒng)調(diào)用輸出字符outchar INT21H ;調(diào)用系統(tǒng)中斷調(diào)用過程中會改變AL中的值,故將AX中的值入棧保存 POPDX POPAXENDM;宏定義字符串輸出strout MACROSTRINGOUT ;將字符串STRINGOUT輸出 PUSHAX PUSHDX LEADX,STRINGOUT ;將STRIN的偏移地址送到DX寄存器 MOVAH,9 ;09H字符串輸出功能 INT21H ;調(diào)用系統(tǒng)中斷 POP DX POP AXENDM;宏定義換行endl MACRO ;宏定義換行 PUSHAX PUSHBX PUSHCX PUSHDX MOVDL,0AH ;先輸出垂直Tab鍵 MOVAH,2 INT21H ;調(diào)用系統(tǒng)中斷實(shí)現(xiàn)輸出 MOVDL,0DH ;再將輸出輸出調(diào)至段首 INT21H ;調(diào)用系統(tǒng)中斷 POPDX POPCX POPBX POPAXENDM;宏定義以baseNum進(jìn)制輸出AX中的數(shù)值outAX MACRO baseNum ;宏定義換行 PUSHAX PUSHBX PUSHCX PUSHDX MOVBX,baseNum ;將要轉(zhuǎn)換成的進(jìn)制存入BX作為除數(shù) CALLoutAXp ;調(diào)用進(jìn)制輸出過程 POPDX POPCX POPBX POPAXENDM;過程定義 以baseNum進(jìn)制形式輸出存放在AX中的數(shù)值過程outAXp PROC MOVDX,0 ;初始化DX配合AX一起進(jìn)行處罰操作 MOVCX,0 ;用CX計(jì)數(shù)取得個(gè)余數(shù)個(gè)數(shù) outAXp_Circle: CMPAX,0 ;判斷AX中的值是否為0 JEoutAXp_NEXT ;是則跳轉(zhuǎn) DIVBX ;不是則進(jìn)行除10運(yùn)算商保存在AX中余數(shù)保存在DX中 PUSHDX ;將對10取到的余數(shù)入棧保存 MOVDX,0 ;將DX中的余數(shù)清空以便下一步對AX中的數(shù)進(jìn)行除10運(yùn)算 INCCX ;計(jì)數(shù)循環(huán)取得的余數(shù)個(gè)數(shù) JMPoutAXp_Circle outAXp_NEXT: ;循環(huán)輸出取得的余數(shù) POPAX CMPAL,10 ;當(dāng)余數(shù)小于10時(shí),直接將數(shù)值輸出 JB nout ADDAL,55 ;否則將余數(shù)轉(zhuǎn)化為對應(yīng)的字符10對應(yīng)字符'A' charoutAL JMPcout nout: numoutALcout: LOOPoutAXp_NEXT RET outAXp ENDP;宏定義以baseNum進(jìn)制輸入數(shù)據(jù)串到AX中,可輸入2-37進(jìn)制inAX MACRO baseNum ;宏定義換行 PUSHBX PUSHCX PUSHDX MOVCX,baseNum ;將要轉(zhuǎn)換成的進(jìn)制存入BX作為除數(shù) CALLinAXp ;調(diào)用進(jìn)制輸入過程 POPDX POPCX POPBXENDM;過程定義 以baseNum進(jìn)制形式輸出存放在AX中的數(shù)值過程inAXp PROC MOV AX, 0inAXp0: PUSHAXinAXp1: charin ;逐個(gè)字符進(jìn)行輸入,結(jié)果存放到AX中 CMPAL,13 JE inAXE ;當(dāng)按下Enter鍵后跳轉(zhuǎn)AX的輸出 CMPAL,'0' JB inAXp1 ;當(dāng)輸入字符小于'0'時(shí),跳轉(zhuǎn)inAXp1,跳轉(zhuǎn)重新進(jìn)行字符輸入 CMPAL,'9' JA inAXnext1 ;當(dāng)輸入字符大于'9'時(shí),跳轉(zhuǎn)inAXnext1進(jìn)一步進(jìn)行比較 SUB AL,48 ;當(dāng)字符在'0'-'9'之間時(shí),將字符轉(zhuǎn)化為對應(yīng)的數(shù)值 JMPinAXnum ;跳轉(zhuǎn)數(shù)值輸入 inAXnext1: CMPAL,'A' JB inAXp1 ;當(dāng)輸入字符小于'A'時(shí),跳轉(zhuǎn)重新進(jìn)行字符輸入 CMPAL,'Z' JA inAXnext2 ;當(dāng)輸入字符大于'Z'時(shí),跳轉(zhuǎn)inAXnext2進(jìn)一步進(jìn)行比較 SUB AL,55 ;當(dāng)字符在'A'-'Z'之間時(shí),將字符轉(zhuǎn)化為對應(yīng)的數(shù)值,并跳轉(zhuǎn)到數(shù)值輸入 JMPinAXnum inAXnext2: CMPAL,'a' JB inAXp1 ;當(dāng)輸入字符小于'A'時(shí),跳轉(zhuǎn)重新進(jìn)行字符輸入 CMPAL,'z' JA inAXp1 ;當(dāng)輸入字符小于'A'時(shí),跳轉(zhuǎn)重新進(jìn)行字符輸入 SUB AL,87 ;當(dāng)字符在'a'-'z'之間時(shí),將字符轉(zhuǎn)化為對應(yīng)的數(shù)值,并跳轉(zhuǎn)到數(shù)值輸入 JMPinAXnum inAXnum:MOVBH,0 ;將數(shù)值送到AX中 MOVBL,AL POP AX CMPAX,0 ;當(dāng)AX中的數(shù)值為0時(shí),跳過乘法操作 JE inAXadd MULCX ;乘以CX中的進(jìn)制基數(shù)inAXadd:ADDAX,BX JMPinAXp0 inAXE: POP AX ;將計(jì)算得到的數(shù)值出棧到AX中 RET inAXp ENDPSTART: MOVAX,DATAS ;將數(shù)據(jù)段地址送到AX中 MOVDS,AX ;由AX轉(zhuǎn)送到送到DS P0: strout menu ;字符串輸出宏調(diào)用輸出menu的提示菜單 charin ;宏調(diào)用字符輸入選擇相應(yīng)功能 CMPAL,'1' JE P1 CMPAL,'2' JE P2 CMPAL,'3' JE P3 CMPAL,'4' JE P4 CMPAL,'q' JE Pq CMPAL,'Q' JE Pq JMP P0
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 事故池施工合同范本
- 高中生二語動(dòng)機(jī)自我系統(tǒng)、學(xué)業(yè)浮力與英語成績的關(guān)系研究
- 敘事舞蹈創(chuàng)作中藏族舞蹈元素的運(yùn)用
- 農(nóng)村合作改造合同范例
- 借款續(xù)借補(bǔ)充合同范例
- 出口苗木采購合同范例
- 債權(quán)轉(zhuǎn)讓寫合同范例
- 共享拖掛式房車在旅游線路中的應(yīng)用研究
- 辦公窗簾定做安裝合同范本
- 辦公樓拆除施工方案
- 教科版六年級下冊科學(xué)第一單元《小小工程師》教材分析及全部教案(定稿;共7課時(shí))
- 小兒鋅缺乏癥剖析
- 古風(fēng)集市策劃方案
- 道路危險(xiǎn)貨物運(yùn)輸安全培訓(xùn)課件
- 社會工作綜合能力初級講義課件
- 青春期心理健康講座課件
- 《廣聯(lián)達(dá)培訓(xùn)教程》課件
- 兒童流感的防治和預(yù)防措施
- 美業(yè)招商課件
- 城市災(zāi)害學(xué)課件-地質(zhì)災(zāi)害(1)課件
- 面密度儀設(shè)備原理培訓(xùn)課件
評論
0/150
提交評論