; Get int8 handler adress
mov ax,3508h
int 21h
mov ipsave_8, bx
mov ax, es
mov cssave_8, ax
; Get int60h handler adress
mov ax,3560h
int 21h
mov ipsave_60, bx
mov ax, es
mov cssave_60, ax
push ds
mov dx, offset int_8
mov ax, seg int_8
mov ds, ax
; Set out int8h handler
mov ah, 25h
mov al, 8h
int 21h
pop ds
push ds
mov dx, offset int_60
mov ax, seg int_60
mov ds, ax
; Set our int60h handler
mov ah, 25h
mov al, 60h
int 21h
pop ds
mov ah,0h
; Working with klav
int 16h
push ds
mov dx, ipsave_8
mov ax, cssave_8
mov ds, ax
; Restore int8h native handler
mov ah, 25h
mov al, 8h
int 21h
pop ds
push ds
mov dx, ipsave_60
mov ax, cssave_60
mov ds, ax
; Restore int60h native handler
mov ah, 25h
mov al, 60h
int 21h
pop ds
; Exit
mov ah,4Ch
int 21h
main ENDP
int_8 proc FAR
push ax
mov ax, dseg
mov es,ax
mov ax,word ptr es:cnt
inc ax
cmp ax,18
jne m0
int 60h
mov ax,0
m0:
mov word ptr es:cnt,ax
pop ax
jmp dword ptr es:adr_int8
iret
int_8 ENDP
int_60 proc FAR
push ax
push bx
push es
push ds
push di
mov ax, dseg
mov es,ax
mov ax,word ptr es:sec
inc ah
cmp ah,10
jne mn10
mov ah,0
inc al
cmp al,10
jne mn10
mov al,0
inc al
mn10:
mov word ptr es:sec,ax
add al,30h
add ah,30h
mov word ptr es:msg+1,ax
mov ax, dseg
mov ds,ax
; Color Display
mov ax,0B800h
mov es,ax
lea bx, msg
; Where to display
mov di,7D0h
m1:
mov al,[bx]
cmp al,'$'
je m_ex
mov es:[di],al
inc di
inc bx
mov es:[di],word ptr 0F0h
inc di
jmp m1
m_ex:
pop di
pop ds
pop es
pop bx
pop ax
; Unset ISR int flag
mov al,20h
out 20h,al
iret
int_60 ENDP
cseg ENDS
END start
Результатом работы программы будет выведенный по центру экрана счетчик секунд, прошедших с момента запуска программы. Если не нажата ни одна клавиша на клавиатуре, программа досчитает до 99 секунд.
Программа 6. Напишите программу вывода на экран времени работы вашей программы. Для этого в тело основной программы включите цикл, ограничивающий время работы. Функции коррекции времени удобнее реализовать в пользовательском прерывании Int 60h, а функции преобразования в символьный вид и вывод на экран располагайте в теле основной програмы. Окончание цикла можно установить по значению относительного времени работы программы.
itime.asm
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.