Видимая часть регистра

Видимая часть регистра это всего лишь метка-заполнитель, а настоящим регистром, ответственный
За фактическое преобразование адресов, является теневой дескрипторный Любые действия над ним отражаются на выполнении любых преобразо­ваний адресов кода, стека или данных. В этом случае, в 16-битном защищен­ном режиме нужно использовать сегмент стека с «базовым адресом», соот­ветствующим физическому адресу Oxf_oooo. Это не представляет проблем, так как Значение Oxf_ooooуже было загружено в поле базового адреса деск­Рип Горного кэша регистра ss В начале исполнения кода блока начальной за­Грузки. Именно благодаря этому код, приведенный в листинге 4.3, и исполня­ется без всяких проблем. В листинге 4.5 показан еще один пример реализации макроса rom_call. Инструкция Retn По адресу Fooo:6036 В коде, приведенном в листинге 4.5, Должна Сработать В Конце исполнения F000_6000_write_pci_byte, Если реги­стровая пара Ss:sp Указывает на 0xf_61di. Так в действительности и проис­ходит, потому что регистр Ss Содержит значение Oxfjdooo в поле базового адреса его дескрипторного кэша, а регистр Sp Содержит значение 6iDih. Та­ким образом, регистровая пара Ss:sp Указывает на физический адрес Еще одна интересная особенность кода BIOS — использование кэша процес­сора в качестве RAM. Кэш процессора используется как стек во время ис­полнения кода BIOS из чипа ROM BIOS, когда системная RAM еще недос­тупна. Обратите внимание, что RAM не станет доступной до тех пор, пока код начальной загрузки не убедится в ее физическом присутствии в системе. Таким образом, операции со стеком приходится выполнять обходным путем при помощи макроса Rom_call, Как было показано в предыдущем разделе.



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

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