Изменение значения регистра временного сегмента загрузки - PullRequest
1 голос
/ 02 апреля 2019

Когда BIOS передает управление коду, загруженному из MBR, первая инструкция выглядит как

jmpi go, BOOTSEG

где go - другая метка, предшествующая следующей инструкции, а BOOTSEG - 0x07c0. Причина выполнения такой инструкции, по-видимому, заключается в том, что когда BIOS передает управление, регистры сегментов устанавливаются в ноль, и эта инструкция устанавливает регистр сегмента на соответствующие значения (в данном случае 0x07c0).

Мой вопрос: почему регистр сегмента должен быть установлен на это значение? Тот факт, что инструкция jmp выполняется должным образом, показывает, что загруженный MBR-код может нормально выполняться без изменения значений сегмента. Что произойдет, если это изменение сегмента не будет сделано?

...