欢迎来到天天文库
浏览记录
ID:38749062
大小:431.17 KB
页数:12页
时间:2019-06-18
《张欣 17号 微机原理课程设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、微机原理课程设计微机原理课程设计报告书设计项目:键盘录入数据的转换与显示程序设计班级:10级通信姓名:张欣学号:20100306117指导教师:袁静微机原理课程设计目录一、设计任务-1-二、设计内容-1-三、设计原理-2-四、程序流程图-3-五、程序代码-5-六、程序运行结果-8-七、程序调试中的问题及解决方法-9-八、心得收获-10-九、参考书目-10-微机原理课程设计一、设计任务键盘录入数据的转换与显示程序设计。二、设计内容1.设计内容编写一个程序,能从键盘读入两个5位十进制数(1个符号位和4位数值位),并将这两个十进制
2、数分别转换为二进制数,然后求其和,再将和以十进制形式在屏幕上显示。该程序主要是十进制与二进制数之间的相互转换。由于用户输入的数一般是十进制表示的,而这些数在计算机内存储、运算时一般都用二进制,这就涉及到了十进制数向二进制数的转换问题;当计算结果需要显示时,又要将二进制数转换为十进制,这又涉及到了二进制数如何转换为十进制数的问题。由于在计算机内这种转换经常进行,所以二进制数与十进制数之间的转换算法是应掌握的基本算法之一。从键盘接收的十进制数以ASCII码形式存放在内存单元中,先将其转换为十进制数字,再用累加和乘10加X的方法变
3、成二进制数,如将358转换为二进制数,可先将累加和赋0,再计算(((0*10+3)*10+5)*10+8),结果为二进制数,再由符号位决定是否需要求补。在显示结果前,首先要把二进制表示的和转换成十进制数字,转换时,先检查和的符号位,以决定输出“+”还是“-”。若是负数,应先求补,得到原码后即可与正数作统一处理。转换方法为将和的二进制数除以10000,商即为万位数,再将余数除以1000,商即为千位数,以此类推,求出百、十位数,剩下的为个位数。最后,将各个数加上30H,即成为对应字符。利用DOS中断的21号功能进行字符的接收和显
4、示。2.设计思路程序分为主程序和子程序,主程序主要是接收从键盘输入的数、两个数的求和以及和的显示;子程序分别实现将十进制数转换为二进制和将二进制数转换为十进制数。用户输入的数据限制在4位(不含符号位)以内。这样,数值在-9999~+9999范围以内,转换为二进制后在16位补码的表示范围内,而其相加后的和也在16位补码的表示范围内,同时,在将二进制数转换为十进制数显示时,也只考虑万位以下数字的转换即可。-9-微机原理课程设计三、设计原理1.程序分为主程序和子程序,主程序主要是接收从键盘输入的数,两个数的求和,以及和的显示;子程
5、序分别实现十进制数转换为二进制和将二进制数转换为十进制数。2.先输入主程序。输入两个数时,键盘接收的十进制数以ASCII码形式存放在内存单元中,将其转换为十进制数字。数值在-9999至+9999范围内。3.主程序中,两个二进制数数求和,结果也在16位补码的表示范围内。4.主程序中,和显示前,首先把二进制转换为十进制数,检查和的符号位,若为负数则求补。5.子程序中,实现十进制数转换为二进制方法是先将累加和赋0,再用累加和乘10加X得出结果。转换后在16位补码的表示范围内,如果为负数,则需求补。6.子程序中,实现二进制数转换为十
6、进制前先检查符号位,若为负数则求补,转换方法为将二进制数除以1000,再将余数除以1000,依次类推,求出百,十位数,剩下的为个位数,最后将各个数加上30H,即成为对应字符。-9-微机原理课程设计四、程序流程图主程序流程图-9-微机原理课程设计ASC_TO_BIN子程序流程图BIN_TO_ASCII子程序流程图-9-微机原理课程设计INT21H号中断是一个系统中断,中断程序根据中断前写入AH中的值决定中断的功能,中断程序执行的流程图如图中断程序流程图五、程序代码DATASEGMENTCOMMONINPUT_MESSAGEDB
7、0AH,'PLEASEINPUTANUMBER(LESSTHAN5FIGURES):$'QUIT_MESSAGEDB0AH,'ENTERQORqTOQUITANYOTHERTOCONTINUE:$'IN_ASC_BUFDB6;十进制数的输入缓冲区,共可接收6个字符DB?;保留,用于10号调用时DOS填入实际输入字符个数DB6DUP(?);一个符号位,四位数字ASCII码,加上一个回车符,共计6字符BIN_BUF1DW?;一个数转换为二进制后,放于此处OUTPUT_MESSAGEDB0AH,'THESUMIS:','$'OUT
8、_ASC_SUMDB6DUP(?),'$';将二个数的和转换为ASCII码后,放于此处,;以供9号调用显示DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATAslPROCFARSTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETINPUT_M
此文档下载收益归作者所有