汇编语言代码转换 大小写,二进制,十进制,16进制的相互转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《微机原理与接口技术》
课程设计(学年论文)
说明书
课题名称:代码转换程序设计(A3-2)
学生学号:
专业班级:
学生姓名:
学生成绩:
指导教师:***
课题工作时间: 2011-6-13 至 2011-6-18
武汉工程大学教务处制
填写说明:
1. 一、二、三项由指导教师在课程设计(学年论文)开始前填写并交由学生保管;
2. 四、五两项由学生在完成课程设计后填写,并将此表与课程设计一同装订成册交给指导教师;
3. 成绩评定由指导教师按评定标准评分。

4. 此表格填写好后与正文一同装订成册。

课程设计评审标准(指导教师用)
代码转换程序设计说明书
1、方案论证
(1)大小写字母、二进制与十六进制、十六进制与十进制的转换方法在计算机系统中有多种数制和编码,常用的有二进制,八进制以及16进制。

这些数制和编码虽然在储存形式上各有差异,但彼此也相互联系。

大小写转换,主要利用小写字母比大小字母大20H的关系,将小写字母减20H就转换为大写字母,将大写字母加20H就转换为小写字母。

二进制,十进制以及16进制,主要利用0到9的数值等于相应ASCALL码减30H,而A到F的数值等于相应ASCALL码减37H,这样即可利用移位,除十取余取整等方法实现其相互转换。

(2)宏汇编程序设计要点
宏是源程序中的一段有独立功能的程序代码。

宏指令,用户自定义的指令。

编程序时候,将多次使用的功能用一条宏指令来代替。

汇编包括指令,伪指令,宏指令。

前两个都是规定的,最后一个是自己设计的。

好处是用起来方便定义,但是要先定义,后调用,其优点是可以随时随地的调用宏汇编程序。

2、程序设计
(1)总体设计
对“实现从键盘输入16位二进制数,转换成4位十六进制数显示出来。

”的分析处理。

首先将键盘输入的二进制数以二进制形式储存起来:每次输入,将其ASCALL码值将减去30H,然后左移一位,在然后与下个输入的减30H的数相加,这样就将键盘输入的值以二进制形式储存在寄存器中.
二进制转换为16进制数输出:用循环指令左移四位,取出最低4位,利用16进制所对应的ASCALL码值比其本身大30H或37H的关系,将低位转换成对应的ASCALL码值,再调用DOS系统显示字符功能,将转换后的字符显示出来,如此循环四次即可.
程序总流程图:
(2)程序设计
二进制转十六进制流程图:
程序代码及注释:
;
PUBLIC XP
EXTRN INFO4:BYTE,INFO1:BYTE,INFO2:BYTE
CODE SEGMENT
XP PROC FAR
ASSUME CS:CODE
CALL DEC2BIN ;调用将键盘输入的ASCALL值转换为二进制数LEA DX,INFO2
MOV AH,9
INT 21H ;显示提示信息
CALL BIN2HEX;调用将储存的二进制转换为16进制函数
MOV DL,'H'
MOV AH,2
INT 21H
RET
CAL: MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
LEA DX,INFO4
MOV AH,9
INT 21H;输入非二进制数,显示错误
DEC2BIN PROC NEAR
LEA DX,INFO1
MOV AH,9
INT 21H;显示提示信息
XOR BX,BX ;BX清零
NEWCHAR: MOV AH,1
INT 21H ;键盘输入,存放在AL中
CMP AL,0DH
JE RE;如果输入回车键,键盘输入结束
SUB AL,30H
JL CAL
CMP AL,1
JG CAL ;输入为非二进制数,显示错误并退出
CBW
XCHG AX,BX
MOV CX,2
MUL CX
XCHG AX,BX
ADD BX,AX
JMP NEWCHAR;将键盘输入的制转换为二进制数,存放在
BX中,并且每输入一个值,先将BX左移一位再相加. RE: MOV DL,'B'
MOV AH,2
INT 21H
RET
DEC2BIN ENDP
BIN2HEX PROC NEAR
MOV C H,4
ROTATE: MOV CL,4
ROL BX,CL ;BX每左移4位输出,四位二进制表示一位十六
进制
MOV A L,BL
AND A L,0FH
ADD A L,30H
CMP A L,3AH
JL PRINTIT ;结果若为0到9的数,则加30H后直接输出
ADD AL,07H ;结果若为A到F的数,则加30H后再加07H直接输出
PRINTIT: MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNE ROTATE
RET
BIN2HEX ENDP
CRLF PROC NEAR
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H ;回车换行
RET
CRLF ENDP
XP ENDP
CODE ENDS
END
3、程序调试步骤与结果
(1)编辑源程序
(2)汇编源程序
(3)连接程序
(4)在TD中调试程序
(5)程序运行结果
结果说明:当输入小写字母(如a)时,就转换成相应的大写字母(如A),反之亦然;当如入二进制(如1011B),,就转换成相应的十六进数(000BH),反之亦然;如果输入的字母或数字不符合要求,就会显示“INPUT ERROR”
4、结论。

相关文档
最新文档