题目要求
编写一个汇编语言程序,要求从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数
源代码
CODES SEGMENT
ASSUME CS:CODES
START:
MAIN PROC FAR
PUSH DS
SUB AX,AX
PUSH AX
CALL HEXIBIN
CALL CRLF
CALL BINDISPLAY
RET
MAIN ENDP
HEXIBIN PROC NEAR
MOV BX,0
MOV CH,4
MOV CL,4
INPUT:
MOV AH,1
INT 21H
SUB AL,30H
CMP AL,0
JB EXIT
CMP AL,9H
JNA ADD_TO
SUB AL,7H
CMP AL,0AH
JL EXIT
CMP AL,10H
JNG ADD_TO
SUB AL,20H
CMP AL,0AH
JL EXIT
CMP AL,10H
JGE EXIT
ADD_TO:
MOV AH,0
SHL BX,CL
ADD BX,AX
JMP INPUT
EXIT:
RET
HEXIBIN ENDP
CRLF PROC NEAR
MOV DL,0DH
MOV AH,2
INT 21H
MOV DL,0AH
MOV AH,2
INT 21H
RET
CRLF ENDP
BINDISPLAY PROC NEAR
MOV CX,16
DIS:
MOV DX,0
ROL BX,1
RCL DX,1
ADD DX,30H
MOV AH,2
INT 21H
LOOP DIS
MOV DL,42H
MOV AH,2
INT 21H
CALL CRLF
RET
BINDISPLAY ENDP
CODES ENDS
END START