Примитивы ввода-вывода и других системных операций BIOS и DOS.
Схема: регистры - прерывание - регистры.
Registers=record
case integer of
0:(AX,BX,CX,DX,BP,SI,DI,DS,ES,Flag:word);
1:(AL,AH,BL,BH,CL,CH,DL,DH:byte);
end;
Intr(nom:byte; var R:Registers);
MsDos(var R:Registers); - прерывание номер $21 DOS.
Пример: прерывание $10(BIOS) - обмен данными с дисплеем
Функц.
| Исходные данные
| Результат
|
8
| AH=8; BH=0 - страница дисплея;
| (AL) - символ в тек поз курс;(AH) - атрибут
|
9
| AH=9; BH=0 - страница дисплея;
(BL) - атрибут символа;
(CX) - счетчик; (AL) - символ;
| Помещает в текущую позицию курсора
(СХ) штук символов (AL)
с атрибутом (BL)
|
10
| AH=10; BH=0 - страница дисплея;
(CX) - счетчик; (AL) - символ;
| Помещает в текущую позицию курсора
(СХ) штук символов (AL)
с текущим атрибутом
|
$11
| чтение конфигурации системы
|
$13
| обмен данными с диском
|
$20 - $3F
| прерывания DOS.
|
$21
| функции DOS.
|
$25
| абсолютное чтение с диска.
|
$26
| абсолютная запись на диск.
|
$27
| завершение программы с сохранением ее в памяти (резидентная программа).
|
{Ex_07_10}