当前位置:文档之家› 微机实验--十六进制数转换为二进制数程序

微机实验--十六进制数转换为二进制数程序

一、实验目的
掌握键盘接收数据的方法,并了解键盘数据显示时需要转换为ASCII码及转换原理。

二、实验内容
编写程序,将键盘键入的四位十六进制数转换为等值的二进制数,并在屏幕上显示。

三、程序流程图
十六进制数转换为二进制数程序流程图
四、实验源程序
CRLF MACRO
PUSH AX
PUSH DX
MOV AH,02H
MOV DL,0DH
INT 21H
MOV AH,02H
MOV DL,0AH
INT 21H
POP DX
POP AX
ENDM
DATA SEGMENT
MESS DB 'INPUT HEXNUMBER:','$'
ERROR DB 'INPUT ERROR',0DH,0AH,'$'
DATA ENDS
STACK SEGMENT
STA DW 32 DUP(?)
TOP DW ?
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK START: MOV AX,DATA
MOV DS,AX
MOV ES,AX
MOV SP,TOP
LLL: MOV AH,09H
MOV DX,OFFSET MESS
INT 21H
CRLF
XOR DX,DX
MOV BL,04H
GGG: MOV AH,01H
INT 21H
JZ PPP
CMP AL,20H
JZ PPP
CMP AL,30H
JB KKK
SUB AL,30H
CMP AL,0AH
JB KKK
SUB AL,07H
CMP AL,0FH
JBE GETS
CMP AL,2AH
JB KKK
CMP AL,2FH
JA KKK
SUB AL,20H
GETS: MOV CL,04H
SHL DX,CL
XOR AH,AH
ADD DX,AX
DEC BL
JNZ GGG
CRLF
CALL ZHXS
CRLF
JMP LLL
KKK: PUSH DX
CRLF
MOV AH,09H
MOV DX,OFFSET ERROR INT 21H
POP DX
PPP: CRLF
MOV AX,4C00H INT 21H ZHXS PROC
MOV CX,0010H MOV BX,DX TTT: ROL BX,1
MOV DL,BL
AND DL,01H ADD DL,30H MOV AH,02H INT 21H
LOOP TTT
RET
ZHXS ENDP
CODE ENDS
JB GETS
CMP AL,11H
END START
五、实验结果
六、思考题
键盘接收的字符是什么形式的?程序中是如何转换的?
答:键盘接收到的字符是ASCII码形式。

若输入的字符为0~9,则将该SACII 码减去30H转换为十六进制数;若为A~F,则将该SACII码减去37H转换为十六进制数。

然后再进行十六进制数与二进制数的转换。

七、实验总结
通过本次实验,了解了键盘接收字符的方法,并知道了键盘数据显示时需要转换为ASCII码及转换原理,实验中,通过同学间的讨论和老师的指导,完成了实验的要求,增强了动手的能力和同学之间的合作能力。

相关主题