Вкратце, процесс, протекающий при исполнении скомпилированного кода можно описать следующим образом: При исполнении процедуры 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!», после чего начинает исполняться в бесконечном цикле.
Рубрика: Женский интерес