Сведения о вопросе

DUNKER

06:22, 25th August, 2020

Теги

boot   bios    

Состояние регистров после загрузки

Просмотров: 398   Ответов: 7

Я работаю над загрузчиком boot на машине x86.

Когда BIOS копирует содержимое MBR в 0x7c00 и переходит к этому адресу, есть ли стандартное значение для содержимого регистров? Имеют ли регистры стандартные значения?

Я знаю, что регистры сегментов обычно устанавливаются в 0, но иногда будут 0x7c0. А как насчет других аппаратных регистров?



  Сведения об ответе

DAAA

05:55, 3rd August, 2020

Эта среда раннего выполнения имеет высокую степень реализации, что означает реализацию вашего конкретного BIOS. Никогда не делайте никаких предположений относительно содержания регистров. Они могут быть инициализированы в 0, но они также могут содержать случайное значение.

из OS dev Wiki, где я получаю информацию, когда я играю с моей игрушкой OS


  Сведения об ответе

dump

09:07, 6th August, 2020

Лучшим вариантом было бы ничего не предполагать. Если они имеют смысл, вы обнаружите, что с другой стороны, когда вам нужна информация, которую они предоставляют.


  Сведения об ответе

FAriza

01:25, 10th August, 2020

Не определено, я полагаю? Я думаю, что это зависит от материнской платы и CPU, и должно рассматриваться как случайное для вашего же блага.


  Сведения об ответе

COOL

17:25, 16th August, 2020

Вы всегда можете инициализировать их самостоятельно, чтобы начать с известного состояния.


  Сведения об ответе

pumpa

06:05, 7th August, 2020

Самая безопасная ставка-предположить неопределенное.


  Сведения об ответе

PIRLO

12:12, 27th August, 2020

Единственное, что я знаю, чтобы быть хорошо определенным, это состояние процессора сразу после сброса.

Для записи вы можете найти, что в руководстве разработчика программного обеспечения Intel Vol 3 Глава 8: "PROCESSOR MANAGEMENT AND INITIALIZATION" в таблице под названием " IA-32 состояния процессора после включения питания, сброса или INIT"


  Сведения об ответе

qwerty101

00:46, 19th August, 2020

Всегда предполагайте неопределенность, иначе вы столкнетесь с плохими проблемами, если когда-либо попытаетесь перенести архитектуры.

Нет ничего похожего на боль от переноса кода, который предполагает, что все неинициализированное будет установлено на ноль.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться