《二进制数和十六进制数之间转换.docx》由会员分享,可在线阅读,更多相关《二进制数和十六进制数之间转换.docx(10页珍藏版)》请在三一办公上搜索。
1、二进制数和十六进制数之间转换北 华 航 天 工 业 学 院 课程设计报告 设计课题:二进制数和十六进制数之间转换专业班级:学生姓名:指导教师:设计时间: 3 1 北华航天工业学院电子工程系 微型计算机原理与接口技术 课程设计任务书 姓 名: 指导教师: 课程设计题目: 代码转换(二进制数和十六进制数之间转换) 已知技术参数和设计要求: 1编写一个程序,要求从键盘上连续输入二进制或十六进制字符,然后在屏幕上自动显示出二-十六进制之间转换的结果。 2利用ROL和RCL循环指令以及十六进制数所对应的ASCII码比其本身大30H或37H的关系, 将输入数转换成对应的ASCII码,再调用DOS系统功能调
2、用中的2号功能,将转换后的字符显示出来。 所需仪器设备: 计算机、MASM软件 成果验收形式: 程序说明,计算机演示,设计报告 参考文献: 微机原理与接口技术 8086实验指导书 十六周:程序编辑,上机运行结果 时间 十七周:验收成果 安排 指导教师: 教研室主任: 年 月 日 专 业: 职 称: 电子信息工程 班 级: 讲师 2 内 容 摘 要 在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCII码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计
3、算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。 索引关键词:代码转换 二进制 十六进制 DOS系统 3 目 录 一 概 述4 1-1设计目的4 1-2设计要求4 二 方案设计与论证4 2-1二进制向十六进制的转换4 2-2十六进制向二进制的转换4 三 程序分析5 四 程序流图7 五 运行结果10 六 心得体会10 七 参考文献10 4 一、 概述 1. 设计目的 增进对汇编语言的认识,加强汇编语言编辑能力; 掌握汇编语言的中断调用的功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现了对硬件的控制;
4、了解和掌握汇编语言程序的设计过程,方法和实现,为以后的学习打下良好的基础; 培养分析解决问题的能力; 提高科技论文写作能力。 2设计要求 按屏幕提示要求输入,从屏幕上获得正确结果。 二、方案设计与论证 在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。 模块1实现二
5、进制数向十六进制数的转换,用循环左移指令ROL每次移动4位,取出移到最低的4位,利用十六进制数所对应的ASCll码比其本身大30H或37H的关系,将低4位转换成对应的ASCll码,再调用DOS系统功能调用中的2号功能,将转换后的字符显示出来。如此循环4次。 模块2实现十六进制数向二进制数的转换,完成此功能需要两个步骤,第一步是十六进制数的输入和对应二进制数的转换。方法是利用DOS系统功能调用中的1号输入字符的功能,接收键盘输入的十六进制数,将其转换成对应的二进制数。BX中存放的是二进制数的结果,利用算术左移指令每次将BX左移4位,然后与下一次转换后的数相加。如此循环4次,得到对应的二进制数。第
6、二步是显示转换后的二进制数,方法是利用ROL和RCL指令,从最高位起循环取出每位二进制数,将其转换成对应的ASCll码,调用DOS系统功能调用中的2号功能显示。 5 三 程序分析 DATAS SEGMENT BUF DB PLIEASE ENTER CHARACTERS,0DH,0AH,$ DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AH,1 INT 21H CMP AL,5 JB NEXT2 NEXT: MOV AX,DATAS MOV DS,AX LEA DX,BUF MOV AH,9 INT 21H MOV C
7、L,4 MOV CH,4 SUB BX,BX L1: MOV AH,1 INT 21H MOV AH,0 CMP AL,A JB L2 AND AL,0FH ADD AL,9 JMP L3 L2: AND AL,0FH L3: SHL BX,CL ADD BX,AX DEC CH JNZ L1 MOV CX,10H L4: ROL BX,1 MOV DX,BX AND DX,1H OR DL,30H CMP DL,3AH JB DDD ; ;将CH-1 9号功能调用,键盘显示 BX清零 AL与A比较 A则转移到L2子程序AL和0F按位与 AL和9相加,结果送回AL BX逻辑左移4次 BX中的值
8、左移1位 DL和30H按位或 6 ;十六进制转为二进制;低于 ;将; ADD DL,07H DDD: MOV AH,2 ;2号功能调用,键盘显示 INT 21H LOOP L4 ;L4循环 JMP OOO NEXT2: MOV AX,DATAS ;二进制转为十六进制 MOV DS,AX LEA DX,BUF MOV AH,9 INT 21H MOV CX,10H SUB AX,AX SUB DX,DX L6: MOV AH,1 INT 21H AND AX,0FH SHL DX,1 ADD DL,AL LOOP L6 MOV CH,4 MOV CL,4 LLP: ROL DX,CL PUSH
9、DX AND DX,0FH OR DL,30H CMP DL,3AH JB DDT ADD DL,07H DDT: MOV AH,2 INT 21H POP DX DEC CH JNZ LLP OOO: MOV AH,4CH INT 21H CODES ENDS END START ;AX清零 ;入栈 ;出栈 ;返回DOS 7 四、程序流图 开始 键盘输入字母 判断输入否大于5 是 否 调用NEXT2子程序 调用NEXT子程序 结束 8 CL 4,CH 4, AX,BX清零 键盘输入一个数,AH 0 AL与OFH按位求与结果送AL之后加9 判断AL是否大于A 是 AH 0 AL与OFH按位求与
10、结果送AL BL左移AL位,最高位移入CF DX与BX求和结果送到DX, CH判断CH是否等于0 否 CX 10 是 BX左移循环移位 、,DX BX DX与1H按位求与,DL与30H按位求是 判断DL是否大于否 调用2号功能显示,CX减1 DL加07H 判断CX是否等于0 否 是 结束 9 五、运行结果 六、心得体会 通过这次课程设计,我对汇编语言有了更进一步的认识,加强了我用汇编语言编程的能力,经过努力,我完成了简单的课程设计。 在开始之前,首先复习了一下相关知识,尤其是汇编语言.定下题目,仔细思考了编程思路及所需要的程序流程,并上网查阅了类似资料,经历了一周多的时间,最终完成了题目。 这
11、次课设最大的收获就是巩固了所学的知识,并认识到自己的不足之处,在理论学习和运用方面还存在很到不足,以后再学习理论的基础上不断进行实践操作来巩固理论,这是我这次课程设计的最大收获,同时培养了对微机原理这门课的兴趣。 七、参考文献 微型计算机原理与接口技术 张荣标编著 机械工业出版社 10 电子工程系 微机原理与接口技术 课程设计成绩评定表 专业: 班级: 学号: 姓名: 课题名称 设计任务与要求 代码转换(二进制十六进制数之间转换) 已知技术参数和设计要求: 1编写一个程序,要求从键盘上连续输入二进制或十六进制字符,然后在屏幕上自动显示出二-十六进制之间转换的结果。 2. 利用ROL和RCL循环指令以及十六进制数所对应的ASCII码比其本身大30H或37H的关系, 将输入数转换成对应的ASCII码,再调用DOS系统功能调用中的2号功能,将转换后的字符显示出来。 指导教师评语 建议成绩: 指导教师: 评定成绩: 课程负责人: 课程小组评定 年 月 日 11