Настройка и работа в Linux

         

Ладно, а как мы передаём параметры ?


Перед тем как вызвать прерывание BIOS, нам нужно загрузить данные в заранее определённом формате в регистры процессора. Предположим, мы используем прерывание 0x13, предназначенное для чтения/записи с дискеты. Прежде чем вызвать его, мы должны определить адрес в оперативной памяти, куда будут загружены данные. Также мы должны передать информацию о номере устройства (fd0 - 0x00, fd1 - 0x01, hda - 0x80, hdb - 0x81 и т.д.), цилиндре, секторе и количестве копируемых секторов. Эти данные должны быть загружены в определённые регистры. Всё это вам станет понятно после того, как вы прочтёте описание работы кода загрузочного сектора, который мы разработаем чуть позже.

Есть одна очень важная деталь, о которой вы должны знать -- одно и тоже прерывание может использоваться для различных целей. Всё это зависит от номера функции, который указывается в регистре ah (иногда ax). К примеру, прерывание 0x10 может быть использовано как для вывода на экран строки, так и для получения координат курсора. Если мы запишем в регистр ah значение 0x03, то тем самым при вызове прерывания 0x10 мы выберем функцию, используемую для получения координат курсора. Для вывода строки на экран мы записываем в регистр ah значение 0x13, которое является номером функции вывода строки на экран.



Содержание раздела