CODE_DATA_SEG SEGMENT
ASSUME CS:CODE_DATA_SEG,DS:CODE_DATA_SEG
ORG 100h
DISP_LINE PROC NEAR
MOV BX,0
MOV CX,16
HEX_LOOP:
MOV DL,LINE[BX]
PUSH CX
MOV CL,4
SHR DL,CL
POP CX
CALL WRITE_DIGIT
MOV DL,LINE[BX]
AND DL,0Fh
CALL WRITE_DIGIT
MOV AH,02h
MOV DL,' '
INT 21h
INC BX
LOOP HEX_LOOP
INT 20h
DISP_LINE ENDP
WRITE_DIGIT PROC NEAR
ADD DL,30h
CMP DL,3Ah
JB DIGIT_OK
ADD DL,07h
DIGIT_OK:
MOV AH,02h
INT 21h
RET
WRITE_DIGIT ENDP
LINE DB 30h, 31h, 32h, 33h, 34h, 35h, 36h, 37h
DB 38h, 39h, 3Ah, 3Bh, 3Ch, 3Dh, 3Eh, 3Fh
CODE_DATA_SEG ENDS
END DISP_LINE