ВУЗ:
Составители:
44
(почти не описан в литературе и не рассматривается в фирменном
руководстве по программированию).
Для пользователей обычных персональных компьютеров линейная
адресация в чистом виде интереса не представляет по тем же причинам, что и
защищенный режим: DOS и BIOS функционируют только в реальном режиме
с 64-килобайт-ными сегментами, и при переходе в любой другой режим
программист оказывается один на один с аппаратурой ЭВМ — без
документации. Однако кроме чистых режимов процессоры Intel способны
работать и в режимах гибридных. Еще в 1989 году Томас Роден (Thomas
Roden) предложил использовать интересную комбинацию сегментной (для
кода и данных) и линейной (только для данных) адресации [2].
Предложенный им метод позволяет, находясь в обычном режиме DOS,
работать со всей доступной памятью в пределах четырехгигабайтного
адресного пространства процессора Intel 80386. Чтобы включить режим
линейной адресации данных, необходимо снять ограничения на размер
сегмента в теневом регистре, соответствующем одному из дополнительных
сегментных регистров FS или G5 (при необходимости описание архитектуры
процессора Pentium можно найти в документации [3-5], размещенной в
Интернете на сервере Intel для разработчиков). Через избранный регистр
можно обращаться к любой области памяти с помощью прямой адресации
или используя в качестве индексного любой 32-разрядный регистр общего
назначения. После снятия ограничения запись в выделенный для линейной
адресации сегментный регистр выполнять нельзя, иначе нарушится
информация в соответствующем ему теневом регистре (предел сегмента
сохранится, но начальный адрес будет перезаписан новым значением). Однако
стандартные компиляторы и функции DOS с регистрами FS и GS не работают,
и соответственно, при вызове процедур эти регистры можно вообще «не
трогать» — их не нужно сохранять и восстанавливать. Достаточно один раз
снять ограничение на размер адресного пространства, и после выхода из
(почти не описан в литературе и не рассматривается в фирменном руководстве по программированию). Для пользователей обычных персональных компьютеров линейная адресация в чистом виде интереса не представляет по тем же причинам, что и защищенный режим: DOS и BIOS функционируют только в реальном режиме с 64-килобайт-ными сегментами, и при переходе в любой другой режим программист оказывается один на один с аппаратурой ЭВМ — без документации. Однако кроме чистых режимов процессоры Intel способны работать и в режимах гибридных. Еще в 1989 году Томас Роден (Thomas Roden) предложил использовать интересную комбинацию сегментной (для кода и данных) и линейной (только для данных) адресации [2]. Предложенный им метод позволяет, находясь в обычном режиме DOS, работать со всей доступной памятью в пределах четырехгигабайтного адресного пространства процессора Intel 80386. Чтобы включить режим линейной адресации данных, необходимо снять ограничения на размер сегмента в теневом регистре, соответствующем одному из дополнительных сегментных регистров FS или G5 (при необходимости описание архитектуры процессора Pentium можно найти в документации [3-5], размещенной в Интернете на сервере Intel для разработчиков). Через избранный регистр можно обращаться к любой области памяти с помощью прямой адресации или используя в качестве индексного любой 32-разрядный регистр общего назначения. После снятия ограничения запись в выделенный для линейной адресации сегментный регистр выполнять нельзя, иначе нарушится информация в соответствующем ему теневом регистре (предел сегмента сохранится, но начальный адрес будет перезаписан новым значением). Однако стандартные компиляторы и функции DOS с регистрами FS и GS не работают, и соответственно, при вызове процедур эти регистры можно вообще «не трогать» — их не нужно сохранять и восстанавливать. Достаточно один раз снять ограничение на размер адресного пространства, и после выхода из 44
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »