Исходный код BIOS расширения

Вкратце, процесс, протекающий при исполнении скомпилированного кода можно описать следующим образом: При исполнении процедуры POST, системная BIOS проверяет каждую плату расширения PCI на наличие BIOS расширения PCI, исследуя ре­гистр Xrombar Соответствующей платы. Если плата реализует BIOS рас­ширения, то системная BIOS копирует ее из области, указанной регист­ром Xrombar, В область BIOS-расширений в RAM. Затем системная BIOS исполняет безусловный переход к функции Init в BIOS расширения PCI — После того как BIOS расширения PCI закончит выполнение функции ини­циализации, управление передается обратно системной BIOS. Системная BIOS проверяет размер инициализированной BIOS расширения PCI штатного режима работы. BIOS расширения PCI следующей платы PCI копируется в RAM по следующему адресу: Таким образом, область ненужного кода предыдущей BIOS Расширения, скопированной в RAM, Переписывается следующей BIOS Расширения. После того как все BIOS расширения PCI инициализированы, системная BIOS переводит область BIOS расширений в RAM в состояние «только чтение». Если вам требуется, чтобы код мог самомодифицироваться, вы можете предотвратить его защиту от записи, скопировав его в RAM по ад­ресу 0000: OOOOh. После этого системная BIOS выполняет процедуру загрузки операционной системы. Процесс начинается с поиска устройства IPL. Если по умолча­нию BIOS материнской платы сконфигурирована таким образом, чтобы удаленно загружать операционную систему по сети, устройством IPL бу­дет сетевая плата. Прерывание i9H указывает на точку входа для загрузки вектора BEV расширения Plug-and-Play BIOS сетевой платы и передает управление по этому адресу. Код будет исполняться в защищенной от записи области RAM, на которую указывает вектор BEV. Таким образом, в коде не будет перезаписываемых участков, если только часть этого кода не была загружена в область RAM, в которую раз­решена запись, и не исполняется из этой области. После этого исполняется наша собственная Plug-and-Play BIOS платы расширения PCI. Код нашей BIOS расширения копируется из области BIOS расширений в область RAM С физическим адресом Oooo_ooooh И продолжает исполнение оттуда. При исполнении, код переводит компью­тер в 32-битный защищенный режим и выводит на монитор строку «Hello world!», после чего начинает исполняться в бесконечном цикле.



Рубрика: Женский интерес

Комментарии закрыты.