Обратите внимание, что новый модуль BIOS можно интегрировать в первоначальный двоичный файл с помощью утилиты Cbrom, применяя опцию /other. Фактически, эта опция только помещает в заголовок LZH упакованной версии вашего модуля правильный адрес назначения этого модуля после его распаковки. Поэтому необходимо распаковать модуль, вызывая в вашей процедуре, вставленной в таблицу переходов pOST, процедуру распаковки BIOS. Как вы помните из, адрес segment:offset, на который я ссылаюсь в этом контексте, является фиктивным- За исключением особых случаев, описанных расширение дуard BIOS всегда распаковывается в сегмент 4000h. показан снимок экрана утилиты Cbrom, выводящей подсказку, поясняющую, как следует использовать опцию /other. теперь перейдем к рассмотрению образца кода для распаковки сжатого компонента BIOS. показан код для 11-го элемента таблицы переходов POST. Этот код вызывает процедуры блока распаковщика BIOS для распаковки компонента расширения nnprom. bin. По этому образцу вы можете создать свою собственную специальную процедуру для распаковки внедренного обработчика прерывания I3h, если вам придется сжать его и сохранить как самостоятельный сжатый компонент BIOS. При создании вашего собственного специального кода необходимо следить за тем, чтобы при его исполнении не вторгнуться в адресное пространство, все еще используемое другими компонентами BIOS. Эта задача сложна, и может возникнуть такая ситуация, когда надежного пути ее решения не окажется. В этом случае, проблему можно решить, модифицируя вместо обработчика прерывания I3h обработчик прерывания I9h.
Рубрика: Женский интерес