print_hex:
    mov cx, 4
    mov di, HEX_OUT + 6

convert_loop:
    mov ax, dx
    and ax, 0x000F

    add al, '0'
    cmp al, '9'
    jbe not_hex_letter
    add al, 7

not_hex_letter:
    dec di
    mov [di], al

    shr dx, 4
    loop convert_loop

    mov bx, HEX_OUT
    call writeLn
    ret

HEX_OUT: db '0x0000', 0