Использование кэша процессора в качестве RAM

Использование кэша процессора в качестве RAM обычно реализуется как часть кода блока начальной загрузки. Это позволяет решить проблему отсут­ствия RAM для использования под стек в начале выполнения кода BIOS. Возможность эта не особенно широко распространена и поддерживается только современными процессорами и BIOS, такими как Award BIOS для ма­теринских плат AMD64. В листинге 4.6 показан дизассемблированный код блока начальной загрузки BIOS материнской платы Gigabyte K8N SLI как пример реализации применения кэша процессора в качестве RAM. Данная BIOS была выпущена 13 марта 2006 года.
К°Д> приведенный в листинге 4.6, не требует дополнительных объяснений. Наиболее важная функция реализуется инструкцией Rep lodsd По адресу 0646. Здесь 16 Кбайт данных записываются потоком в кэш, обновляя его содержимое и заставляя кэш указывать на диапазон ад­ресов, назначенный для использования в качестве RAM. Инструкцией Mov По а4ресу Fooo : 0665 Код устанавливает стек по предопределенному адресу кэша, используемого как RAM. Таким образом, эта область кэша выделяется для использования под стек. Именно таким образом эта область будет использо­ваться последующим кодом блока начальной загрузки. Материалы, представленные в Главе 2, дают всю информацию, необходимую для того, чтобы начать эффективную работу с IDA Pro. Предыдущий раздел данной главы содержит основную информацию о двоичной организации BIOS. Теперь я опишу основные этапы осуществления дизассемблирования BIOS с применением этих знаний.



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

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