| Справочник программиста на персональном компьютере фирмы IBM | 118 |
HOLDCS DW 0 ;вектор прерывания
SOUND_NOW? DB 1 ;звук включен?
FIRST_NOTE? DB 1 ;первая нота?
END_NOTE DW 0 ;счетчик конца ноты
WHICH_NOTE DW 0 ;указатель на текущую ноту
;-инициализация вектора прерывания
;изменение вектора
PUSH DS ;сохраняем регистр
MOV AX,SEG MELODY2 ;сегмент процедуры
MOV DS,AX ;помещаем в DS
MOV DX,OFFSET MELODY2 ;смещение процедуры
MOV AL,1CH ;номер вектора прерывания
MOV AH,25H ;функция установки вектора
INT 21H ;изменение вектора
POP DS ;восстановление регистра
;
;-программа работает дальше, постоянно вызывая процедуру
;
;-в конце программы восстанавливаем вектор прерывания
MOV DX,0FF53H ;восстанавливаем оригинальные
MOV AX,0F000H ;значения для вектора 1CH
MOV DS,AX ;
MOV AL,1CH ;номер прерывания
MOV AH,25H ;функция установки вектора
INT 21H ;восстанавливаем вектор
RET ;
;-это само прерывание
Предыдущая страница 118 Следующая страница
217506378
|