高手帮小弟修改一下,编写程序,将键盘接受到的四位十六进制数转换为等值的二进制数,再显示在终端上。

2025-03-04 19:03:15
推荐回答(1个)
回答1:

DATAS SEGMENT
MSG1 DB 'HEX:$'
MSG2 DB 0DH,0AH,'BIN:$'
BUF DB 5,?,5 DUP(?)
DATAS ENDS

CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
LEA DX,MSG1
MOV AH,9
INT 21H
LEA DX,BUF
MOV AH,0AH
INT 21H
LEA DX,MSG2
MOV AH,9
INT 21H
MOV CL,BUF+1
XOR CH,CH
JCXZ EXIT
MOV SI,2
NEXT:MOV BL,BUF[SI]
CMP BL,'9'
JBE OK
SUB BL,7
OK:SUB BL,30H
PUSH CX
MOV CL,4
SHL BL,CL
MOV CX,4
OUTPUT: MOV DL,'0'
SHL BL,1
JNC SKIP
INC DL
SKIP:MOV AH,2
INT 21H
LOOP OUTPUT
MOV DL,20H
MOV AH,2
INT 21H
POP CX
INC SI
LOOP NEXT

EXIT: MOV AH,4CH
INT 21H
CODES ENDS
END START