微机原理课设数制转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计任务书
学生:专业班级:
指导教师:工作单位:理工大学
题目:数制转换3
任务容:
通过键盘输入一个8进制数,通过屏幕提示菜单选择转换成2进制,10进制或者16进制数并显示。
要求完成的主要任务:
设计方案的选择与确定:
根据题目要求,参考相关文献资料,选择合适的软硬件设计方案。
图纸绘制:
确定硬件方案,完成完整硬件系统连线图的绘制。
程序编制:
确定软件方案,绘制系统软件流程图,完成汇编程序的编制。
说明书撰写:
完成课程设计说明书的撰写,字数不少于3000字。
时间安排:
资料检索与收集2天
系统方案设计与确定1天
系统设计与程序编写3天
说明书撰写3天
答辩1天
指导教师签名:年月日
系主任(或责任教师)签名:年月日
目录
摘要 .................................................................................................. I
1 原理分析 (2)
2 分析任务及要求 (4)
2.1数制转换算法 (4)
2.1.1 八进制转换成二进制 (4)
2.1.2八进制转换成十进制 (4)
2.1.3八进制转换成十六进制 (4)
3 程序设计流程 (5)
3.1绘制程序流程图 (5)
3.2设计思路 (6)
4 汇编语言源程序设计 (7)
4.1堆栈段和数据段程序设计 (7)
4.2主程序设计 (7)
4.3输入八进制数程序 (9)
4.4输出二进制数程序 (9)
4.5输出十进制数程序 (10)
4.6输出十六进制数程序 (11)
4.7回车键确定程序 (12)
5 结果分析 (13)
6 小结与体会 (16)
参考文献 (17)
附录 (18)
摘要
本次程序设计主要是利用汇编语言中的DOS调用和各种进制间的转换来实现通过键盘输入一个8进制数,在屏幕上提示菜单选择转换成2进制,10进制或者16进制数并显示。
汇编语言是面向机器的程序设计语言。汇编语言比机器语言易于读写、调试和修改,同时也具有执行速度快,占用存空间少等优点,但在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植,本次设计主要是利用8086汇编语言进行设计。
常说汇编语言过时,是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为IT软件,也是我们常说的Windows编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序时成倍的优秀,但是代价是需要更长的时间来优化,假如是对计算机原理及编程基础不扎实,实在是得不偿失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花几倍甚至是几十倍的时间,不如使用其它语言来完成只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下得必然结果。
但是,这也并不代表汇编语言是没有用的、不需要学的,相反,只有在理解和掌握汇编语言的基础上,才能更好的使用其它高级语言。
关键词:汇编,汇编语言,机器语言,DOS调用
数制转换课程设计
1原理分析
进位计数制是人们利用符号来计数的方法。一种进位计数制包含一组数码符号和两个基本因素。数码是用不同的数字符号来表示一种数制的数值,这些数字符号称为”数码”。基是数制所使用的数码个数称为”基”。权是某数制每一位所具有的值称为”权”。
十六进制(Hexadecimal) 0.1.2.3.4.5.6.7.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,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。小数部分的方法叫乘2取整法,就是将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。换句话说就是0舍1入。读数要从前面的整数读到后面的整数。
二进制转换为十进制不分整数和小数部分,方法(按权相加法)是将二进制每位上的数乘以权,然后相加之和即是十进制数。
二进制转换为十六进制用取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。
将十六进制转换为二进制,取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。
十进制转换成十六进制的方法与十进制转换成二进制的方法相同,但不同的是每次除以16。