Я изучаю BIOS и у меня есть несколько вопросов.

  1. Что подразумевается под "Это последние 16 байтов памяти в конце первого мегабайта памяти"?

  2. Первая инструкция BIOS - это переход, который переходит к основной программе BIOS, но куда он попадает?

  3. Откуда берется оригинальный код BIOS?

Меня тоже интересует POST? Как POST-сигналы выполняются процессором?

3 ответа3

1

@ tommieb75: Это то место, где процессор в конечном итоге будет прыгать, но только если BIOS удастся найти загрузочный сектор на подключенном периферийном устройстве (жесткий диск, правильно отформатированный флэш-накопитель USB, компакт-диск El Torito, TFTP с сервера PXE и т. д.). Этот загрузочный сектор будет иметь подпись 0x55AA в конце. Примером-прототипом является MBR, который может делать все, что захочет, но, как правило, снова просматривает таблицу разделов для одного (и только одного) загрузочного флага, перемещается с адреса 0x7C00 (туда, где зависит от его кода), загружается первый сектор этого раздела в 0x7C00, и переходит к нему. Этот загрузочный сектор раздела также должен иметь подпись 0x55AA.

Что касается первоначального вопроса ... нет фиксированного адреса, по которому процессор получает команду от ПЗУ BIOS; это зависит от того, что хочет автор BIOS. Адрес 16 байтов ниже конца 1 мегабайта - это просто что-то жестко закодированное в самом процессоре; это задокументированное / определенное поведение (Intel, ассоциация AMD и другие). Очевидно, что 16 байт кода - это не много кода, поэтому обычно это просто "длинный переход" (загрузка регистров CS и IP) в другое место в ПЗУ BIOS. Этот код обрабатывает POST и вышеупомянутое расположение допустимого загрузочного сектора для выполнения.

1
  1. Смещает от 0x0ffff0 до 0x0fffff физической памяти компьютера.
  2. В код BIOS, который кто-то ранее написал и записал в энергонезависимую память.
1

Чтобы ответить на второй вопрос, BIOS переходит к 0x7c00, который является началом кода загрузочного сектора (я понял это из отладки и создания загрузочных секторов ...), в свою очередь загрузочный сектор загружается в это смещение в памяти.

POST - это самотестирование при включении, когда подпрограммы BIOS выполняют проверку аппаратных устройств, таких как память, клавиатура, диск и экран, он издает звуковой сигнал, если проверка завершается неудачно в зависимости от рассматриваемого устройства, например, если происходит сбой жесткого диска , 2 звуковых сигнала, в звуковом сигнале есть варианты, чтобы обозначить имеющиеся проблемы. Это довольно редко в настоящее время, когда BIOS более надежны и аппаратное обнаружение гораздо надежнее, чем тогда ...Диски MFM/RLL были проблематичны с BIOS, если они не из сомнительной партии дисков .... Клавиатуры с BIOS печально известны тем, что отображают «Hit F1 для продолжения», если нет клавиатур ....

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .