收藏 分享(赏)

微机原理课设 数制转换.doc

上传人:精品资料 文档编号:10892662 上传时间:2020-01-18 格式:DOC 页数:25 大小:197.45KB
下载 相关 举报
微机原理课设 数制转换.doc_第1页
第1页 / 共25页
微机原理课设 数制转换.doc_第2页
第2页 / 共25页
微机原理课设 数制转换.doc_第3页
第3页 / 共25页
微机原理课设 数制转换.doc_第4页
第4页 / 共25页
微机原理课设 数制转换.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

1、武汉理工大学微机原理与接口技术课程设计说明书I课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 武汉理工大学 题 目: 数制转换 3 任务内容:通过键盘输入一个 8 进制数,通过屏幕提示菜单选择转换成进制,10 进制或者6 进制数并显示。要求完成的主要任务: 设计方案的选择与确定:根据题目要求,参考相关文献资料,选择合适的软硬件设计方案。图纸绘制:确定硬件方案,完成完整硬件系统连线图的绘制。程序编制:确定软件方案,绘制系统软件流程图,完成汇编程序的编制。说明书撰写:完成课程设计说明书的撰写,字数不少于 3000 字。时间安排:资料检索与收集 2 天系统方案设计与确定 1 天系统设计

2、与程序编写 3 天说明书撰写 3 天答辩 1 天指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日武汉理工大学微机原理与接口技术课程设计说明书II目录摘要 I1 原理分析 12 分析任务及要求 32.1 数制转换算法 .32.1.1 八进制转换成二进制 .32.1.2 八进制转换成十进制 .32.1.3 八进制转换成十六进制 .33 程序设计流程 43.1 绘制程序流程图 .43.2 设计思路 .54 汇编语言源程序设计 64.1 堆栈段和数据段程序设计 .64.2 主程序设计 .64.3 输入八进制数程序 .84.4 输出二进制数程序 .84.5 输出十进制数程序 .94.6

3、输出十六进制数程序 104.7 回车键确定程序 115 结果分析 .126 小结与体会 .15参考文献 .16附录 .17武汉理工大学微机原理与接口技术课程设计说明书I摘要本次程序设计主要是利用汇编语言中的 DOS 调用和各种进制间的转换来实现通过键盘输入一个 8 进制数,在屏幕上提示菜单选择转换成进制,10 进制或者6 进制数并显示。汇编语言是面向机器的程序设计语言。汇编语言比机器语言易于读写、调试和修改,同时也具有执行速度快,占用内存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植,本次设计主要是利用 8086 汇编语言进行设计

4、。常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为 IT 软件,也是我们常说的 Windows 编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序时成倍的优秀,但是代价是需要更长的时间来优化,假如是对计算机原理及编程基础不扎实,实在是得不偿失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花几倍甚至是几十倍的时间,不如使用其它语言来完成只要最终结果不比汇编语

5、言编写的差太多,就能抢先一步完成,这是市场经济下得必然结果。但是,这也并不代表汇编语言是没有用的、不需要学的,相反,只有在理解和掌握汇编语言的基础上,才能更好的使用其它高级语言。关键词:汇编,汇编语言,机器语言,DOS 调用武汉理工大学微机原理与接口技术课程设计说明书2数制转换课程设计1原理分析进位计数制是人们利用符号来计数的方法。一种进位计数制包含一组数码符号和两个基本因素。数码是用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码” 。基是数制所使用的数码个数称为”基” 。权是某数制每一位所具有的值称为”权” 。 十六进制(Hexadecimal) 0.1.2.3.4.5.6.7.

6、8.9.A.B.C.D.E.F 十进制(Decimal) 0.1.2.3.4.5.6.7.8.9 八进制(Octal) 0.1.2.3.4.5.6.7 二进制(Binary) 0.1 在计算机内部采用二进制计数制,但在实际应用中,需要计算机处理的信息是多种多样的,如各种进位制的数据,不同语种的文字符号和各种图像信息等。但在计算机中采用的是二进制计数制。本次课程设计通过所学的微机原理,用汇编语言编写程序,实现二进制转换成十进制或十六进制,十进制转换成二进制或十六进制,十六进制转换成二进制或十进制。 十进制转换为二进制整数部分的方法叫做除 2 取余法,每次将整数部分除以 2,余数为该位权上的数,而

7、商继续除以 2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。小数部分的方法叫乘 2 取整法,就是将小数部分乘以 2,然后取整数部分,剩下的小数部分继续乘以 2,然后取整数部分,剩下的小数部分又乘以 2,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是 0 还是 1,取舍,如果是零,舍掉,如果是 1,向入一位。换句话说就是 0舍 1 入。读数要从前面的整数读到后面的整数。 二进制转换为十进制不分整数和小数部分,方法(按权相加法)是将二进制每位上的数乘

8、以权,然后相加之和即是十进制数。 武汉理工大学微机原理与接口技术课程设计说明书3二进制转换为十六进制用取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边) ,即整数的最高位(最低位)添 0,凑足四位。 将十六进制转换为二进制,取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。 十进制转换成十六进

9、制的方法与十进制转换成二进制的方法相同,但不同的是每次除以 16。武汉理工大学微机原理与接口技术课程设计说明书42分析任务及要求题目内容:通过键盘输入一个 8 进制数,通过屏幕提示菜单选择转换成进制,10 进制或者 16 进制数并显示。设计要求:根据题目要求,参考相关文献资料,选择合适的软硬件设计方案。图纸绘制:确定硬件方案,完成完整硬件系统连线图的绘制。程序编制:确定软件方案,绘制系统软件流程图,完成汇编程序的编制。通过对题目进行分析,容易看出本次设计可分为 3 个部分:输入、进制转换、输出显示。输入可通过 DOS 调用0AH,输入一个八进制数;进行数值转换;输出也通过 DOS 调用09H,

10、实现输出并显示。2.1数制转换算法2.1.1 八进制转换成二进制由八进制向二进制转换可将每一位八进制数对应于三位二进制数,依次进行替换,转换方式如下所示(左边是一位八进制数,右边是该八进制数所对应的二进制数):0000;1001;2010;3011;4100;5101;6110;7111;2.1.2八进制转换成十进制八进制向十进制的转换可通过按基数位权的展开方式来实现,方法是将八进制每位上的数乘以权,然后相加之和即是十进制数。2.1.3八进制转换成十六进制若将八进制直接向十六进制转换,则比较复杂,故可以将八进制先转换为二进制再转换为十六进制。将八进制转换为二进制的算法在第一节已经说明,这里不再

11、赘述,故下面只说明二进制转换为十六进制的算法(左边为二进制数,4 个一组,右边为 16 进制):武汉理工大学微机原理与接口技术课程设计说明书500000;00011;00102;00113;01004;01015;01106;01117;10008;10019;1010A;1011B;1100C;1101D;1110E;1111F;3程序设计流程3.1绘制程序流程图YNN开始显示 MENU从键盘输入数字显示 ERROR重新显示 MENU输入数字是否小于4? DONE武汉理工大学微机原理与接口技术课程设计说明书6图3-1 程序流程图3.2设计思路首先对原理进行分析,了解不同进制数之间是如何进行转

12、换的,充分认识汇编语言的指令系统,掌握各个汇编语言的指令系统,掌握各个汇编指令的功能及用法,了解各种程序结构(顺序、分支、循环和子程序)的特点。首先定义堆栈段,再定义数据段,在数据段中输入 MENU 中要显示的内容,再建一个表 TABLE,TABLE 中的内容为 L1,L2,L3。然后根据题目要求设计简单的程序流程图,再根据流程图设计出每一个模块的汇编语言程序,然后再通过调用、跳转、转移等方法将各个子程序连接在一起。这样依据题目要求的汇编程序就初步完成了。本次利用的软件是 MF2KP,首先在 MF2KP 环境下输入设计的汇编程序,然后编译、连接、运行。DONE数字为 1,转向 L1输入一个八进

13、制数转换为二进制数并输出显示 返回主程序数字为 1,转向 L1输入一个八进制数转换为十进制数并输出显示 返回主程序数字为 1,转向 L1输入一个八进制数转换为十六进制数并输出显示 返回主程序武汉理工大学微机原理与接口技术课程设计说明书74汇编语言源程序设计4.1堆栈段和数据段程序设计 首先定义堆栈段和数据段的程序,程序设计如下所示:DATA SEGMENTMENU DB Please Input Your Choice:1:Bin2,2:Dec10,3:Hex16,0dh,0ah,$Mess1 db Please input a Oct8 number:,0dh,0ah,$Mess2 db O

14、utput Bin2 is:,0dh,0ah,$Mess3 db Output Dec10 is:,0dh,0ah,$Mess4 db Output Hex16 is:,0dh,0ah ,$ERROR DB ERROR!PLEASE INPUT YOUR CHOICE AGAIN , $TABLE DW AA1, L1,L2,L3DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA 4.2主程序设计MAIN PROC FARASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXAA1:LEA DX,MENUMOV AH

15、,09HINT 21HMOV AH,01HINT 21HSUB AL,30HCMP AL,04HJB DONELEA DX,ERROR武汉理工大学微机原理与接口技术课程设计说明书8MOV AH,09HINT 21HJMP AA1DONE:CMP AL,01HJZ L1CMP AL,02HJZ L2CMP AL,03HJZ L3L1:CALL INOCTCALL FAR CRLFCALL FAR OUTBINCALL FAR CRLFJMP AA1L2:CALL INOCTCALL CRLF CALL OUTDECCALL CRLFJMP AA1L3:CALL FAR INOCTCALL FAR

16、 CRLFCALL FAR OUTHEXCALL FAR CRLFJMP AA1MAIN ENDP MOV AH,4CHINT 21HCODE ENDSEND START武汉理工大学微机原理与接口技术课程设计说明书94.3输入八进制数程序INOCT PROC NEARLEA DX,MESS1MOV AH,09HINT 21HMOV BX,0INOL1:MOV AH,01HINT 21HCMP AL,0DHJZ INOEXITSUB AL,30HCMP AL,9JBE INOL2SUB AL,7INOL2:MOV CL,3SHL BX,CLOR BL,ALJMP INOL1INOEXIT:RET

17、INOCT ENDP4.4输出二进制数程序 OUTBIN PROC NEARLEA DX,MESS2MOV AH,09HINT 21HMOV CX,16OBL1:ROL BX,1MOV DL,BLAND DL,01H武汉理工大学微机原理与接口技术课程设计说明书10OR DL,30HMOV AH,02HINT 21HLOOP OBL1RETOUTBIN ENDP4.5输出十进制数程序OUTDEC PROCLEA DX,MESS3MOV AH,09HINT 21HMOV CX,10000CALL DECL1MOV CX,1000CALL DECL1MOV CX,100CALL DECL1MOV C

18、X,10CALL DECL1MOV CX,1CALL DECL1RETOUTDEC ENDPDECL1 PROC NEARMOV AX,BXMOV DX,0DIV CXMOV BX,DXMOV DL,AL武汉理工大学微机原理与接口技术课程设计说明书11ADD DL,30HMOV AH,2INT 21HRETDECL1 ENDP4.6输出十六进制数程序OUTHEX PROCLEA DX,MESS4MOV AH,09HINT 21HMOV CX,4OHL1:ROL BX,1ROL BX,1ROL BX,1ROL BX,1MOV DL,BLAND DL,0FHADD DL,30HCMP DL,39H

19、JBE OHL2ADD DL,7OHL2:MOV AH,02HINT 21HLOOP OHL1RETOUTHEX ENDPCODE ENDSEND START武汉理工大学微机原理与接口技术课程设计说明书124.7回车键确定程序CRLF PROCMOV AH,02HMOV DL,0DHINT 21HMOV DL,0AHINT 21HRET CRLF ENDP武汉理工大学微机原理与接口技术课程设计说明书135结果分析调试运行后首先出现的界面是:请输入您的选择:转换为二进制输出则输入 1;转换为十进制输出则输入 2;转换为十六进制输出则输入 3;结果如下图4-1 所示:图 5-1 请输入您的选择 上

20、述选择输入后,就显示:请输入一个八进制数,结果如下图 4-2 所示:图 5-2 请求输入一个八进制数武汉理工大学微机原理与接口技术课程设计说明书14此后输入按照界面提示输入相应的数字即可完成各数制间的转换,其算法已在前面详细说明,这里不再赘述。图 5-3 将八进制转换成二进制数输出图 5-4 将八进制转换成十进制数输出武汉理工大学微机原理与接口技术课程设计说明书15图 5-5 将八进制转换成十六进制数输出武汉理工大学微机原理与接口技术课程设计说明书166小结与体会“微机原理与系统设计”作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,围绕微型计算机原理和应用主题,以e

21、meu8086CPU 为主线,系统介绍微型计算机的基本知识,基本组成,体系结构和工作模式,从而使学生能较清楚地了解微机的结构与工作流程,建立起系统的概念。这次微机原理课程设计,在设计的这些日子里,可以说得是甘苦与共,甘的是可以学到很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。深刻了解了老师生科经常强调的东西,比如画流程图的习惯。起先我并不十分在意。但是,这次课程设计完全颠覆了我以前的认识,在这次课程设计中,画程序方框图显得尤为重要。通过流程图,在做设计的过程中,我清楚的知道每一步要做什么,每一步要完成什么任务,而且在程序调试的过程中也有利于查错。相比之

22、前错误的做法,究其原因还是因为课本上用到的基本都是一些基础性质的程序,思路已经相当清晰再画流程图显得多余。其次,以前对于编程工具的使用还处于一知半解的状态上,但是经过一段编程的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在实际设计的过程中遇到问题,可以说是难以预测的,各种各样的问题都会出现,同时也会在设计的过程中发现自己

23、的不足之处,例如对以前所学的知识掌握不够牢固、理解的不够深刻。通过这次课设我掌握了怎么去处理实际编程中出现的各类问题,其次在编程中发现了自己的弱点,最后巩固了理论知识,提高了自己的动手能力。这次微原课设圆满完成,个中滋味确是只有自己亲身经历才明白。这次的设计,让我对微机原理的理解又更深了一层,提高了我将理论与实际相结合和解决问题的能力。同时,我要感谢帮助我的小伙伴们,他们的建议,指导,帮武汉理工大学微机原理与接口技术课程设计说明书17我分析让我顺利完成课设。通过这次课设,作为工科生的我应该谨记:程序只有在经常的读和写中才可提高,在以后学习编程语言的时候,应该要多动手实践编程,实践出真知是亘古不

24、变的真理。参考文献1 潘峰主编.微型计算机原理与汇编语言.第三版.西安: 电子工业出版社,20032 韩志军.微机原理课程的教学改革与实践J. 南京工程学院学报(社会科学版).2003.123 杨素行微型计算机系统原理及应用 ,北京,清华大学出版社,2004 年4微机实验及课程设计教程 (试用版 2.0) ,东南大学微机系统与接口课程组,2009 年 2 月5 周佩玲.微型计算机原理与接口技术.电子工业出版社,20056 谭浩强.微型计算机原理及应用.清华大学出版社,2001武汉理工大学微机原理与接口技术课程设计说明书18附录以下为实际完整程序段DATA SEGMENTMENU DB Plea

25、se Input Your Choice:1:Bin2,2:Dec10,3:Hex16,0dh,0ah,$Mess1 db Please input a Oct8 number:,0dh,0ah,$Mess2 db Output Bin2 is:,0dh,0ah,$Mess3 db Output Dec10 is:,0dh,0ah,$Mess4 db Output Hex16 is:,0dh,0ah ,$ERROR DB ERROR!PLEASE INPUT YOUR CHOICE AGAIN , $TABLE DW AA1, L1,L2,L3DATA ENDSCODE SEGMENTASSU

26、ME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXAA1:LEA DX,MENUMOV AH,09HINT 21HMOV AH,01HINT 21HSUB AL,30HCMP AL,08H武汉理工大学微机原理与接口技术课程设计说明书19JBE DONELEA DX,ERRORMOV AH,09HINT 21HJMP AA1DONE:CMP AL,01HJZ L1CMP AL,02HJZ L2CMP AL,03HJZ L3L1:CALL INOCTCALL CRLFCALL OUTBINCALL CRLFJMP AA1L2:CALL INOCTCALL C

27、RLF CALL OUTDECCALL CRLFJMP AA1L3:CALL INOCTCALL CRLFCALL OUTHEXCALL CRLFJMP AA1CRLF PROCMOV AH,02HMOV DL,0DH武汉理工大学微机原理与接口技术课程设计说明书20INT 21HMOV DL,0AHINT 21HRET CRLF ENDPINOCT PROC NEARLEA DX,MESS1MOV AH,09HINT 21HMOV BX,0INOL1:MOV AH,01HINT 21HCMP AL,0DHJZ INOEXITSUB AL,30HCMP AL,9JBE INOL2SUB AL,7

28、INOL2:MOV CL,3SHL BX,CLOR BL,ALJMP INOL1INOEXIT:RETINOCT ENDPOUTBIN PROC NEARLEA DX,MESS2MOV AH,09HINT 21HMOV CX,16武汉理工大学微机原理与接口技术课程设计说明书21OBL1:ROL BX,1MOV DL,BLAND DL,01HOR DL,30HMOV AH,02HINT 21HLOOP OBL1RETOUTBIN ENDPOUTDEC PROCLEA DX,MESS3MOV AH,09HINT 21HMOV CX,10000CALL DECL1MOV CX,1000CALL DE

29、CL1MOV CX,100CALL DECL1MOV CX,10CALL DECL1MOV CX,1CALL DECL1RETOUTDEC ENDPDECL1 PROC NEARMOV AX,BXMOV DX,0DIV CX武汉理工大学微机原理与接口技术课程设计说明书22MOV BX,DXMOV DL,ALADD DL,30HMOV AH,2INT 21HRETDECL1 ENDPOUTHEX PROCLEA DX,MESS4MOV AH,09HINT 21HMOV CX,4OHL1:ROL BX,1ROL BX,1ROL BX,1ROL BX,1MOV DL,BLAND DL,0FHADD DL,30HCMP DL,39HJBE OHL2ADD DL,7OHL2:MOV AH,02HINT 21HLOOP OHL1RETOUTHEX ENDPCODE ENDS武汉理工大学微机原理与接口技术课程设计说明书23END START

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报