org 100h
use16
        cli
zero_counter:
        call    get_count
        cmp     dx,-1
        jne     zero_counter
        rdtsc
        mov     [tempdat],eax
        mov     cx,12h
        mov     bx,-1
sec_delay:
        call    get_count
        cmp     dx,bx
        ja      .done
        mov     bx,dx
        jmp     sec_delay
.done:
        mov     bx,-1
        loop    sec_delay
.remainder:
        call    get_count
        cmp     dx,-34ddh
        ja      .remainder
        rdtsc
        sub     eax,[tempdat]
        call    print_dec
        sti
        int     20h

get_count:
        mov     al,0     
        out     43h,al
        in      al,40h
        mov     dl,al
        in      al,40h
        mov     dh,al
        ret

print_dec:
        push    word 0
  .zero_loop:
        mov     cx,3
  .loop:
        xor     edx,edx
        mov     ebx,10
        div     ebx
        or      dl,30h
        push    dx
        or      eax,eax
        jz      .end_numb
        loop    .loop
        push    word ','
        jmp     .zero_loop
  .end_numb:
        pop     dx
        or      dx,dx
        jz      .end
        mov     ah,2
        int     21h
        jmp     .end_numb
  .end:
        mov     dl,0ah
        mov     ah,2
        int     21h
        mov     dl,0dh
        mov     ah,2
        int     21h
        ret

tempdat:
