На этом шаге мы познакомимся с типами прерываний.
Все прерывания делятся на две большие группы: BIOS- и DOS-прерывания. Рисунок 1 предыдущего шага как раз иллюстрирует выполнение BIOS-прерывания. Рассмотрим более подробно выполнение DOS-прерываний.
Как было отмечено, при загрузке DOS в памяти компьютера располагаются два файла: IO.SYS (или IBMBIO.COM) и MSDOS.SYS (или IBMDOS.COM), которые обеспечивают, в том числе, выполнение DOS-прерываний. Заметим, что так как модули DOS обеспечивают большое количество разных дополнительных проверок, то операции DOS обычно проще в использовании и менее машиннозависимы, чем их BIOS аналоги.
Модуль IO.SYS (IBMBIO.COM) обеспечивает интерфейс с BIOS низкого уровня. Эта программа выполняет управление вводом-выводом при чтении данных из внешних устройств в память и записи из памяти на внешние устройства.
Модуль MSDOS.SYS (IBMDOS.COM) содержит средства управления файлами и ряд сервисных функций, таких как блокирование и деблокирование записей.
Порядок выполнения DOS-прерывания следующий. Когда пользовательская программа выдает запрос на прерывание (например, INT 21H), то в модуль MSDOS.SYS (IBMDOS.COM) через регистры передается определенная информация. Затем модуль MSDOS.SYS (IBMDOS.COM) транслирует эту информацию в один или несколько вызовов IO.SYS (IBMBIO.COM), который, в свою очередь, вызывает соответствующую подпрограмму BIOS. Указанные связи приведены на рисунке 1.
Рис.1. Выполнение DOS- (сплошные линии) и BIOS-прерываний (пунктирные линии)
В дальнейшем мы будем пользоваться двумя прерываниями: BIOS INT 10H и DOS INT 21H.
На следующем шаге мы приведем примеры прерываний.