Дизассемблирование области начальной загрузки AMI BIOS

Код начальной загрузки в AMI BIOS более сложен по сравнению с Award BIOS. Тем не менее, как и все прочие BIOS для х86-совместимых процессо­ров, AMI BIOS начинает исполнение по адресу Oxffff_fffo . С этого адреса мы и начнем дизассембли­ровать BIOS для материнской платы Soltek SL865PE. Так как процесс загр файла в IDA Pro был подробно рассмотрен в Главе 2, я не буду на нем внимание. Первой инструкцией в коде начальной загрузки AMI BIOS является инструкция безусловного перехода к таблице переходов. Я не буду подробно рассматривать все элементы таблицы переходов, приве­денной в листинге 5.32, а лишь вкратце опишу элементы, оказывающие Сияние на исполнение кода блока начальной загрузки. Процедуры, вызываемые переходами в таблице переходов, подготавливают систему к исполнению кода в RAM цели осуществляется тестирование подсистемы RAM, и по мере необхо­димости выполняется предварительная инициализация DRAM. Наиболее интересным элементом в таблице переходов является переход к функции области стека Setup_stack. Определение этой функции представлено Код, выделенный полужирным шрифтом по адресу 0х8000:0хА255 в листин­Ге 5.35 исполняется особенным образом. Начнем рассмотрение со Значении Стека сразу же перед исполнением инструкции Retf В процедУРе Copy_decomp_biock. Имейте в виду, что перед исполнением адресу OxFOOO: 0хА08Е, Адрес следующей инструкций т. е. 0хА091, Проталкивается на стек. Таким образом, исполнением инструкции Retf В процедуре Copy_decomp_biock, Стек как показано на Теперь, когда мы входим в функцию Decomp_biock_start, Сразу же Инструкцией ret, значения стека, показанные на рис. 5.6, уже вытолкну стека, за исключением значения на дне стека, т. е. 0хА091. Таким образом исполняется инструкция ret, управление будет передано к смещению



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

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