| Номер прерывания | Операция | Номер прерывания | Операция | 
| 00H | Деление на ноль | 14H | Прерывание сериального порта | 
| 01H | Пошаговое выполнение | 16H | Ввод с клавиатуры | 
| 02H | Немаскируемое прерывание | 17H | Вывод на принтер | 
| 03H | Точка останова | 19H | Чтение boot-сектора | 
| 04H | Переполнение | 1AH | Чтение и установка таймера | 
| 05H | Печать экрана | 1BH | Контроль прерывания от клавиатуры | 
| 08H | Системный таймер | 1CH | Контроль прерывания от таймера | 
| 09H | Прерывание клавиатуры | 1DH | Таблица видео адресов | 
| 0EH | Контроль дискеты | 1EH | Таблица дисковых адресов | 
| 10H | Видео прерывание | 1FH | Адреса ASCII символов | 
| 11H | Проверка оборудования | 21H | Прерывание DOS | 
| 12H | Проверка памяти | 33H | Прерывание мышки | 
| 13H | Ввод/вывод на диск | 
Часть векторов свободна (вектора с номерами 60h÷66h) и может быть использована в прикладных программах пользователем. Необходимо только позаботиться о том, чтобы адрес программы пользователя, предназначенной для обработки прерывания, попал в соответствующий вектор прерывания. Для этого можно воспользоваться функцией номер25h операционной системы DOS. Этой функции должны быть переданы следующие параметры: в регистре AL – номер модифицируемого вектора прерывания, в регистрах DS:DX – адресная пара точки входа в программу обработки прерывания.
Заканчиваться программа обработки прерывания должна заканчиваться восстановлением сохраненного состояния регистра флагов и возвратом в точку вызова программы обработки прерывания. Осуществить эти действия можно специальной командой iret, которой должна оканчиваться программа обработки прерывания.
Пример.
.model small
.stack 256
.data
line db 1
coloumn db 10
sym db 01h
atrb db 19h
.code
new_65h proc
mov ah,6 ; Функция задания окна
mov al,0 ; Режим создания окна
mov bh,atrb ; Атрибут символов в окне
mov cx,0 ; Левый верхний угол
mov dh,24 ; Нижний правый угол
mov dl,79
int 10h ; Прерывание BIOS
iret ; Возврат из обработки прерывания
new_65h endp
main proc
mov ax,@data
mov ds,ax
mov ax,2565h ; Функция заполнения вектора ;прерывания 65
lea dx,new_65h ; Смещение функции обработки ;прерывания
push ds
push cs
pop ds ; Сегмент функции обработки пре;рывания
int 21h ; Вызов DOS
pop ds ; Восстановление индекса сегмента
; данных
m1: int 65h ; Вызов прерывания пользователя
mov ah,2 ; Функция позиционирования курсора
mov bh,0 ; Видеостраница
mov dh,line ; Строка
mov dl,coloumn ; Столбец
int 10h ; Прерывание BIOS
mov ah,0ah ; Функция вывода символа
mov al,sym ; Символ
mov bh,0 ; Видеостраница
mov cx,60 ; Количество повторений
int 10h
inc sym
inc atrb
inc line
cmp line,23
jl m2
mov ah,1
mov line,ah
m2: mov ah,8 ; Функция ввода символа без эха
int 21h ; воспринимает Ctrl/c
jmp m1
main endp
end main
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.