предоставляют довольно широкие возможности по
Использование системных функций
Системные функции MS-DOS и BIOS (Basic Input/Output System — базовая система ввода/вывода) предоставляют довольно широкие возможности по управлению внешними устройствами — дисками, видеосистемой, таймерами, манипулятором мыши и т. п. Интерфейс их вызова из программ, написанных на языке ассемблера, построен на использовании программного прерывания — машинной команды INT — по следующей схеме:
запоминание в стеке содержимого регистров центрального процессора;
формирование в регистрах исходной информации для работы системной функции INT n;
извлечение из регистров результатов работы системной функции;
восстановление регистров по информации из стека.
В принятой схеме аргумент п в команде INT задает номер группы системных функций, код регистра АН — номер подфункции, а содержимое других регистров, если это необходимо, рассматривается как исходные данные для работы выбранной подфункции. Результат работы системной функции также заносится в машинные регистры, содержимое которых должно быть сохранено для последующей обработки.
Перечень машинных регистров, задействованных в обработке программных прерываний, приведен в табл. 10.1. Вас не должно смущать, что некоторые из терминов в этой таблице использованы без детального объяснения.
Таблица 10.1. Машинные регистры обработки программных прерываний
|
|
|
|
|
Регистр
|
Назначение
|
|
|
АХ
|
Основной сумматор. Используется и в качестве регистра данных при обмене с портами
|
|
|
вх
|
Дополнительный сумматор. Чаще используется как начальный адрес (база) в командах с индексной адресацией
|
|
|
сх
|
Счетчик циклов. Может использоваться в качестве операнда в арифметических операциях
|
|
|
DX
|
Основной регистр в операциях ввода/вывода. В сочетании с АХ используется как часть 32-разрядного сумматора в "длинной арифметике"
|
|
|
|
|
|
|
|
|
|
|
Регистр
|
Назначение
|
|
|
ВР |
Указатель базы. Используется для организации локальных стеков в процедурах и функциях |
|
|
SI |
В сочетании с базой сегмента данных (регистр DS) задает адрес источника информации (индекс источника) |
|
|
DI |
В сочетании с базой сегмента данных (регистр DS) задает адрес приемника информации (индекс приемника) |
|
|
DS |
Начальный адрес (база) основного сегмента данных |
|
|
ES |
Регистр базы дополнительного сегмента данных |
|
|
Flags
|
Регистр с битами признаков состояния центрального процессора
|
|
|
|
|
|
<
Содержание Вперед