4

Как работают расширения BIOS (дополнительные ПЗУ)? Я понимаю, что установленное устройство может иметь свой собственный BIOS, который добавляет функции в систему, но я не уверен, как они настроены.

Я продолжаю читать следующий диапазон адресов от 0x0C0000 до 0x0F0000, но я не понимаю, для чего он используется. Как будто диски хранятся по этим адресам, но я не вижу, как это работает. Что делать, если вы установили 2 устройства с ожидаемым значением 0x0C0000?

Затем BIOS переходит к дополнительному ПЗУ и начинает работать оттуда, мой следующий вопрос: когда ПЗУ записывает в таблицу векторов прерываний и перехватывает прерывание для указания на себя, на какой адрес это указывает?

Например, на VGA-карте к какому адресу будет подключаться INT 10h?

Или все дополнительное ПЗУ отображается в области от 0x0C0000 до 0x0F0000, и IVT будет указывать где-то в этом диапазоне?

Я знаю, что это касается старых технологий, которые больше не используются (например, с использованием прерываний), но мне интересно, как они работают.

Если кто-то может помочь ответить на вышеуказанные вопросы или просто дать краткий обзор, он будет очень признателен,

Спасибо

1 ответ1

6

В дни IBM PC с шиной ISA каждому устройству просто приходилось использовать разные адреса. Часто у них были аппаратные перемычки или dip-переключатели, которые можно было настроить для изменения адреса, чтобы избежать конфликтов. С появлением шины PCI аппаратные адреса автоматически конфигурируются аппаратным адресом для назначения каждому устройству уникального адреса.

Если опром перехватывает прерывание, он указывает на адрес в назначенном адресе, по которому живет опром. В случае VGA BIOS это обычно было в блоке 0xC0000. Используя отладчик msdos, вы можете проверить таблицу векторов прерываний, чтобы увидеть точку входа, и начать разбирать там инструкции, чтобы увидеть, что они сделали.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .