Номер прерывания |
Операция |
Номер прерывания |
Операция |
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).
Ссылка на скачивание - внизу страницы.