MAIN:
MOV AH,01H
INT 21H
CALL CRLF
CMP AL,31H
JE NEXT1
CMP AL,32H
JE NEXT2
CMP AL,33H
JE NEXT3
CMP AL,34H
JE NEXT4
JMP NEXT5
NEXT1:
LEA SI,Result
MOV BX,[SI]
CALL HEX
CALL CRLF
JMP MAIN
NEXT2:
MOV CX,5
MOV AX,Result
MOV SI,OFFSET BUFF
NEXT: XOR DX,DX
DIV WORD PTR[SI]
PUSH DX
OR AL,30H
MOV DL,AL
MOV AH,02H
INT 21H
INC SI
INC SI
POP AX
LOOP NEXT
CALL CRLF
JMP MAIN
NEXT3:
LEA SI,Result
MOV AX,[SI]
CALL BIN
CALL CRLF
JMP MAIN
NEXT4:
CALL EX
JMP MAIN
NEXT5:
CALL INTERROR
JMP MAIN
BIN proc near
PUSH BX
PUSH CX
PUSH DX
MOV BX,AX
MOV CX,16
S: MOV DX,30H
SHL BX,1
ADC DX,0
MOV AH,2
INT 21H
LOOP S
POP DX
POP CX
POP BX
RET
BIN endp
HEX proc near
MOV CH,04D
ROTATE:
MOV CL,04D
ROL BX,CL
MOV AL,BL
AND AL,0FH
ADD AL,30H
CMP AL,'9'
JBE PRINTF
ADD AL,07H
PRINTF:
MOV DL,AL
MOV AH,2
INT 21H
DEC CH
JNE ROTATE
RET
HEX endp
INTERROR proc near
LEA DX,IN_Err
MOV AH,09H
INT 21H
RET
INTERROR endp
CRLF proc near
LEA DX,LF
MOV AH,09H
INT 21H
RET
CRLF endp
EX proc near
MOV AH,4CH
INT 21H
RET
EX endp
CSEG ENDS
END START