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