В общем программа запускается, но вместо того чтобы записать точное текущее время в файл она записывает то число которое выведено на экран консоли, но как я понял при нажатии стрелки вверх либо вниз выводит на экран консоли конкретно то время, которое было при нажатии кнопки. И ещё одно "но" записывает оно не два числа как секунду, а воспринимает их за ASCII код какого-то символа и записывает его.
Код: Выделить всё
.model small
.stack 256
.data
a db '/ /'
sec db 0,0,13,10
;--------Na fon----------
lin db 0
col db 0
;-----Adresy Failiw------
Y1 db 'Y1.TXT', 0
Y2 db 'Y2.TXT', 0
;--------Identyfikatory Failiw---------
id1 dw 0
id2 dw 0
;--------Povidomlennja---------
txt1 db 'Zapyszit potoczne znaczennja sekundy w odyn z dwoh failiv klaviszamy Up i Down',0
txt2 db 'Klavisza Up-Y1 a Down-Y2',0
txt3 db 'Bye---Bye!!!',0
.code
assume ds:@data es:@data, cs:@code
start:
mov ax,@data
mov es,ax
mov ds,ax
;___VSTANOVYMO_VIDEO-RERZYM___
mov ah,00h
mov al,3
int 10h
;***INSTRUKCIJA***
;___PEREMISZCZENNJA KURSORU_1___
mov col, 1
mov lin, 2
;___VYVID POVIDOMLENJA_1___
mov ah, 13h
mov al, 0
mov cx, 78
mov dh, lin
mov dl, col
mov bl, 0b1h
mov bp, offset txt1
int 10h
inc lin
;___PEREMISZCZENNJA KURSORU_2___
mov col, 27
inc lin
inc col
;___VYVID POVIDOMLENJA_2___
mov ah, 13h
mov al, 0
mov cx, 24
mov dh, lin
mov dl, col
mov bl, 0b1h
mov bp, offset txt2
int 10h
inc lin
;***SEKUNDY***
;___VYZNACZYMO_POTOCZNYJ_CZAS___
m1:mov ah,2ch
int 21h
mov sec,dh
mov al,dh
aam
xchg ah,al
add ax,3030h
mov ax, offset sec
;___VYVODYMO_CEKUNDY___
mov al,sec
mov ah,0
mov bh,10
div bh
add al,30h
mov a+1,al
add ah,30h
mov a+2,ah
;___VYVID_ZNACZENNJA_SEKUNDY___
mov ah, 13h
mov al,1
mov bh,0
mov bp, offset a
mov cx,4
mov bl, 01001110b
mov dh,0
mov dl,38
int 10h
;***OBROBKA_ROZSZYRENOHO_VVODU***
keyb: xor ax, ax
int 16h
cmp ah, 53h
jz del
cmp ah, 48h
jz up
cmp ah, 50h
jz down
jmp keyb
up:
;FILE_1 (Y1)----------------------------------------------------
mov ah, 3ch
mov cx, 00000000b
mov dx, offset Y1
int 21h
mov id1, ax
;***VIDKRYTY_FAIL_1***
mov ah, 3dh
mov al, 2
mov dx, offset Y1
int 21h
;___Zapys u file_1___
mov ah, 40h
mov bx, id1
mov dx, offset sec
mov cx, 2
int 21h
jmp cls
down:
;FILE_2 (Y2)----------------------------------------------------
mov ah, 3ch ;Funkcii stvorennja failu
mov cx, 00000000b ;Atrybuty failu
mov dx, offset Y2 ;Adresa ASCII-rjadka
int 21h ;Pereryvanja
mov id2, ax ;Zanesennja v zminnu identyfikatora
;***VIDKRYTY_FAIL_2***
mov ah, 3dh
mov al, 2
mov dx, offset Y2
int 21h
;---------------------
;___Zapys u file_2___
mov ah, 40h
mov bx, id2
mov cx,4h
mov dx, offset sec
mov cx, 2
int 21h
jmp cls
;***ZAKRYTTJA_FAILIV***
;FILE_1 (Y1)
cls:mov ah, 3eh
mov bx, id1
int 21h
;FILE_2 (Y2)
mov ah, 3eh
mov bx, id2
int 21h
JMP m1
del:
;***DEL***
;___PEREMISZCZENNJA KURSORU_3___
mov col, 26
inc lin
inc col
;___VYVID POVIDOMLENJA_3___
mov ah, 13h
mov al, 0
mov cx, 12
mov col, 34
mov lin, 6
mov dh, lin
mov dl, col
mov bl, 0b1h
mov bp, offset txt3
int 10h
inc lin
exit: mov ax,4c00h
int 21h
end start