ВУЗ:
Составители:
23
необходимо включить директиву ассемблера .386Р.
Программа начинается с описания структуры дескриптора сегмента.
В отличие от реального режима, в котором сегменты определяются их
базовыми адресами, задаваемыми программистом в явной форме, в
защищенном режиме для каждого сегмента программы должен быть
определен дескриптор – 8-байтовое поле, в котором в определенном
формате записываются базовый адрес сегмента, его длина и некоторые
другие характеристики (рисунок 1.8) [8].
Рисунок 1.8 – Дескриптор сегмента
Рисунок 1.9 – Селектор дескриптора
Теперь для обращения к требуемому сегменту программист заносит
в сегментный регистр не сегментный адрес, а так называемый селектор
(рисунок 1.9), в состав которого входит номер (индекс) соответствующего
сегмента дескриптора.
Процессор по этому номеру находит нужный дескриптор, извлекает
из него базовый адрес сегмента и, прибавляя к нему указанное в конкрет-
ной команде смещение (относительный адрес), формирует адрес ячейки
памяти. Индекс дескриптора (0, 1, 2 и т.д.) записывается в селектор,
начиная с бита 3, что эквивалентно умножению его на 8. Таким образом,
можно считать, что селекторы последовательных дескрипторов
представляют собой числа 0, 8, 16, 24 и т.д. Другие поля селектора,
которые для нашего случая принимают значения 0, будут описаны ниже.
необходимо включить директиву ассемблера .386Р. Программа начинается с описания структуры дескриптора сегмента. В отличие от реального режима, в котором сегменты определяются их базовыми адресами, задаваемыми программистом в явной форме, в защищенном режиме для каждого сегмента программы должен быть определен дескриптор – 8-байтовое поле, в котором в определенном формате записываются базовый адрес сегмента, его длина и некоторые другие характеристики (рисунок 1.8) [8]. Рисунок 1.8 – Дескриптор сегмента Рисунок 1.9 – Селектор дескриптора Теперь для обращения к требуемому сегменту программист заносит в сегментный регистр не сегментный адрес, а так называемый селектор (рисунок 1.9), в состав которого входит номер (индекс) соответствующего сегмента дескриптора. Процессор по этому номеру находит нужный дескриптор, извлекает из него базовый адрес сегмента и, прибавляя к нему указанное в конкрет- ной команде смещение (относительный адрес), формирует адрес ячейки памяти. Индекс дескриптора (0, 1, 2 и т.д.) записывается в селектор, начиная с бита 3, что эквивалентно умножению его на 8. Таким образом, можно считать, что селекторы последовательных дескрипторов представляют собой числа 0, 8, 16, 24 и т.д. Другие поля селектора, которые для нашего случая принимают значения 0, будут описаны ниже. 23
Страницы
- « первая
- ‹ предыдущая
- …
- 21
- 22
- 23
- 24
- 25
- …
- следующая ›
- последняя »