Stack segment
Stack Segment Para Stack 'Stack'
DW 256 DUP (0)
Tos Label Word
Stack ends
Code segment
Code segment
Assume CS: Code, SS: Stack, DS: Data
PROC Main
Main Proc Far
Mov AX, Stack
Mov SS, AX
Mov SP, Offset TOS
Push DS
XOR AX, AX
Push AX
Again:
MOV AH, 0
INT 16H
MOV BX, AX
CMP Al, 1BH
JZ EXIT
Call binihex
MOV DL, 20H
MOV AH, 2
Int 21h
MOV DL, BL
MOV AH, 2
Int 21h
MOV DL, DH
MOV AH, 2
Int 21h
MOV DL, 0AH
MOV AH, 2
Int 21h
JMP Again
EXIT:
RET
Main endp
PROC BINIHEX
BiniHex Proc
MOV CH, 4
Rotate:
MOV CL, 4
ROL BX, CL
MOV Al, BL
And Al, 0FH
Add Al, 30H
CMP Al, 3ah
JL Print
Add Al, 7
PRINT:
MOV DL, Al
MOV AH, 2
Int 21h
Dec ch
Jnz Rotate
RET
BiniHex Endp
Code ends
End main