Реферат: Вектор переривань та процедура обслуговування переривань
call ton2 ; Звуквисоти 2
jmp beg1 ; Перехід на початок циклу
beg3: cmp al,'q' ; = 'q' ?
jnz beg1 ; ͳ
int 20h ; Вихідзпрограми
startendp ; Кінець основної процедури
ton2 procnear ; Процедура генерації звука 2
movdx,duration ; Тривалість
movdi,frequency2 ; Коефіцієнт ділення 2
jmp ton0 ; Перехід на універсальну процедуру
ton1 proc near ; Процедура генерації звука 1
mov dx,duration ; Тривалість
mov di,frequency1 ; Коефіцієнт ділення 2
; Універсальна процедура генерації звука
; DX - тривалість, DI - коефіц. ділення
ton0 proc near
cli ; Заборона переривань
; Включення динаміка і таймера
in al,61h ; Читання стану системного порта В
or al,3 ; Дозвіл звучання (біти 0 и 1)
out 61h,al ; Запис в системний порт В
; Програмування поділювача частоти 2 канала
mov ax,di ; Поділювач частоти
out 42h,al ; Мол.байт частоти канал 2 таймера
xchgal,ah ; AH AL
out 42h,al ; Ст.байт частоти канал 2 таймера
; Формування затримки
mov cx,dx ; Лічильник циклу затримки
ton01: push cx ; Команди, що використовуються тільки для