CSEG SEGMENT ASSUME CS:CSEG,DS:DSEG DISP_LINE PROC NEAR MOV AX,DSEG MOV DS,AX 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 MOV AX,4C00h INT 21h 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 CSEG ENDS DSEG SEGMENT LINE DB 30h, 31h, 32h, 33h, 34h, 35h, 36h, 37h DB 38h, 39h, 3Ah, 3Bh, 3Ch, 3Dh, 3Eh, 3Fh DSEG ENDS SSEG SEGMENT STACK DW 256 DUP (?) SSEG ENDS END DISP_LINE