二进制数和十六进制数之间转换
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北华航天工业学院
课程设计报告(论文)
设计课题:二进制数和十六进制数之间转换专业班级: 3
学生姓名:
指导教师:
设计时间:
北华航天工业学院电子工程系
微型计算机原理与接口技术课程设计任务书
指导教师:教研室主任:
年月日
内容摘要
在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCII码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。
索引关键词:代码转换二进制十六进制DOS系统
目录
一概述 (4)
1-1设计目的 (4)
1-2设计要求 (4)
二方案设计与论证 (4)
2-1二进制向十六进制的转换 (4)
2-2十六进制向二进制的转换 (4)
三程序分析 (5)
四程序流图 (7)
五运行结果 (10)
六心得体会 (10)
七参考文献 (10)
一、概述
1.设计目的
(1)增进对汇编语言的认识,加强汇编语言编辑能力;
(2)掌握汇编语言的中断调用的功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现了对硬件的控制;
(3)了解和掌握汇编语言程序的设计过程,方法和实现,为以后的学习打下良好的基础;
(4)培养分析解决问题的能力;
(5)提高科技论文写作能力。
2设计要求
按屏幕提示要求输入,从屏幕上获得正确结果。
二、方案设计与论证
在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。
模块1实现二进制数向十六进制数的转换,用循环左移指令ROL每次移动4位,取出移到最低的4位,利用十六进制数所对应的ASCll码比其本身大30H(0-9)或37H(A-Z)的关系,将低4位转换成对应的ASCll码,再调用DOS系统功能调用中的2号(显示字符)功能,将转换后的字符显示出来。如此循环4次。
模块2实现十六进制数向二进制数的转换,完成此功能需要两个步骤,第一步是十六进制数的输入和对应二进制数的转换。方法是利用DOS系统功能调用中的1号输入字符的功能,接收键盘输入的十六进制数,将其转换成对应的二进制数(若是0-9之间的数,直接屏蔽高4位;若是A-F之间的数,在屏蔽高4位后还要加9)。BX中存放的是二进制数的结果,利用算术左移指令每次将BX 左移4位,然后与下一次转换后的数相加。如此循环4次,得到对应的二进制数。第二步是显示转换后的二进制数,方法是利用ROL和RCL指令,从最高位起循环取出每位二进制数,将其转换成对应的ASCll码,调用DOS系统功能调用中的2号(显示字符)功能显示。
三程序分析
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 ;9号功能调用,键盘显示
MOV CL,4
MOV CH,4
SUB BX,BX ;BX清零
L1: MOV AH,1
INT 21H
MOV AH,0
CMP AL,'A' ;AL与A比较
JB L2 ;低于A则转移到L2子程序
AND AL,0FH ;AL和0F按位与
ADD AL,9 ;AL和9相加,结果送回AL JMP L3
L2: AND AL,0FH
L3: SHL BX,CL ;将BX逻辑左移4次
ADD BX,AX
DEC CH;将CH-1
JNZ L1
MOV CX,10H
L4: ROL BX,1 ;BX中的值左移1位
MOV DX,BX
AND DX,1H
OR DL,30H ;DL和30H按位或
CMP DL,3AH
JB DDD
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 ;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 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 ;返回DOS CODES ENDS
END START