Объясните пожалуста, почему в ниже приведённой части программы данные о времени не записываются в файл, а происходит вывод на экран??


wywod proc near
push ax
push cx
push dx
; Поделим это число на десять. Остаток - правая цифра -
; получится в AL, частное в AH.
aam
; Запомним младшую цифру, перейдём к частному.
mov cl, al
mov al, ah
; Его тоже поделим на десять. В AL получим вторую цифру,
; в AH - частное от деления исходного числа на 100.
; А это старшая цифра, ведь в один байт помещаются
; максимум трёхзначные числа.
aam
mov ch, al
mov dl, ah
; Итак, теперь цифры числа хранятся в DL, CH, CL.
; Приступим к выводу. Заготовим номер функции.
mov ah, 02h
; Переведём все цифры в символы.
add dl, 30h
add cx, 3030h
; Теперь попытаемся избежать вывода незначащих нулей.
; Если старшая цифра не ноль, начинаем вывод с неё.
cmp dl, 30h
jnz ob1 ;short
; Если ноль, то проверяем вторую цифру.
cmp ch, 30h
jnz ob2 ;short
; Если она тоже ноль, то выведем только младшую,
; даже если и она ноль.
jmp ob2 ;3 ;short
ob1:
mov dl,dl
int 21h
ob2: mov dl,ch
int 21h
ob3: mov dl,cl
int 21h
pop dx
pop cx
pop ax
ret
wywod endp

;....

mov ax,3D01h
mov dx,offset File_Name
int 21h
jc Error_
mov Handle,ax

; если файл открыт успешно...
mov ah,40h
mov bx,Handle
mov cx,10

mov AH,2Ch ; CH - час, CL - мин, DH - сек, DL - 1/100 сек
int 21h

mov al,ch
call wywod
mov al,cl
call wywod
mov al,dh
call wywod


int 21h

mov ah,3Eh
mov bx, Handle
int 21h
;файл закрыт
jmp ex
Error_:
mov AH,09h
mov DX,offset Err
int 21h
ex:

mov ah,08h
int 21h

mov ax,4c00h
int 21h

;....
File_Name db 'g:\file.txt',0
Handle dw 0
Err db 'Error!$'
chas db 0
min db 0
sec db 0