ВУЗ:
Составители:
44
граммы), данных, стека и дополнительных данных. Для обраще-
ния
к командам и данным, находящимся в других сегментах, необ-
ходимо изменять содержимое сегментных регистров, что позво-
ляет использовать все пространство памяти емкостью 1 Мб. Сег-
ментные регистры инициализируются в начале программы пу-
тем засылки в них соответствующих констант. Частный случай
загрузки всех сегментных регистров нулями приводит к органи-
зации памяти, характерной для 8080, т.е. фактически к отказу от
сегментации памяти.
В сегментном регистре хранится 16 старших битов
20-битового начального адреса сегмента. Четыре младших бита
адреса принимаются равными нулю и дописываются справа к
содержимому сегментного регистра при вычислении физических
адресов ячеек памяти. Поэтому начальные адреса сегментов все-
гда кратны 16. Поскольку других ограничений на размещение
сегментов в памяти нет, сегменты могут быть соседними (смеж-
ными), неперекрывающимися, частично или полностью пере-
крывающимися. Физическая ячейка памяти может принадле-
жать одному или нескольким сегментам.
Физический адрес ячейки памяти представляет 20-
битовое число в диапазоне 0–FFFFFh, которое однозначно опре-
деляет положение каждого байта в пространстве памяти емко-
стью
1 Мб. Так как МП 8086 является 16-битовым, то все операции
при вычислении физического адреса производятся с 16-бито-
выми адресными объектами.
Логический адрес ячейки памяти состоит из двух 16-бито-
вых беззнаковых значений: начального адреса сегмента, кото-
рый называется также просто базой или сегментом, и внутри-
сегментного смещения, которое определяет расстояние от нача-
ла сегмента до этой ячейки. Для вычисления физического адреса
база сегмента сдвигается влево на четыре бита и суммируется со
смещением, как показано на рис. 2.6, где также приведены воз-
можные источники компонентов логического адреса (ЕА – эф-
граммы), данных, стека и дополнительных данных. Для обраще- ния к командам и данным, находящимся в других сегментах, необ- ходимо изменять содержимое сегментных регистров, что позво- ляет использовать все пространство памяти емкостью 1 Мб. Сег- ментные регистры инициализируются в начале программы пу- тем засылки в них соответствующих констант. Частный случай загрузки всех сегментных регистров нулями приводит к органи- зации памяти, характерной для 8080, т.е. фактически к отказу от сегментации памяти. В сегментном регистре хранится 16 старших битов 20-битового начального адреса сегмента. Четыре младших бита адреса принимаются равными нулю и дописываются справа к содержимому сегментного регистра при вычислении физических адресов ячеек памяти. Поэтому начальные адреса сегментов все- гда кратны 16. Поскольку других ограничений на размещение сегментов в памяти нет, сегменты могут быть соседними (смеж- ными), неперекрывающимися, частично или полностью пере- крывающимися. Физическая ячейка памяти может принадле- жать одному или нескольким сегментам. Физический адрес ячейки памяти представляет 20- битовое число в диапазоне 0–FFFFFh, которое однозначно опре- деляет положение каждого байта в пространстве памяти емко- стью 1 Мб. Так как МП 8086 является 16-битовым, то все операции при вычислении физического адреса производятся с 16-бито- выми адресными объектами. Логический адрес ячейки памяти состоит из двух 16-бито- вых беззнаковых значений: начального адреса сегмента, кото- рый называется также просто базой или сегментом, и внутри- сегментного смещения, которое определяет расстояние от нача- ла сегмента до этой ячейки. Для вычисления физического адреса база сегмента сдвигается влево на четыре бита и суммируется со смещением, как показано на рис. 2.6, где также приведены воз- можные источники компонентов логического адреса (ЕА – эф- 44
Страницы
- « первая
- ‹ предыдущая
- …
- 42
- 43
- 44
- 45
- 46
- …
- следующая ›
- последняя »