Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Сегментная модель памяти процессоров Intel




Помещает в регистр ax слово, которое находится в сегменте, указанном в DS, со смещением на два больше, чем число находящееся в bx. Такая форма адресации используется для доступа к линейным структурам данных, например к массивам, тогда в качестве константы используется адрес начала массива, а в регистре хранится индекс текущего элемента.

Как и в случае с прямой адресацией, DS используется по умолчанию, но не всегда. Если смещение берется из регистров SP(ESP) или BP(EBP) то в качестве сегментного регистра применяется SS.

Если на сегмент данных, в котором находится требуемое значение указывает регистр DS, то имя сегментного регистра можно в команде не писать, DS будет использован по умолчанию.

Косвенная адресация. Адрес операнда в памяти может находиться в регистре. До процессора 80386 для такого хранения можно было использовать только регистры BX, SI, DI и BP, но начиная с 386 таких ограничений нет. Пример:

mov ax, [bx]

Адресация по базе со сдвигом. Возможно скомбинировать два предыдущих способа адресации. Следующая команда:

mov ax, [bx+2]

Косвенная адресация с масштабированием. Этот метод адресации полностью идентичен предыдущему, однако с его помощью можно прочитать элемент массива слов, двойных слов или учетверенных слов, поместив номер элемента в регистр. Пример:

mov ax, [esi*2+2]

Множитель может быть равен 1, 2, 4 и 8. В данном способе адресации могут быть использованы только 32 разрядные регистры.

Адресация по базе с индексированием. В этом методе адресации смещение операнда в памяти вычисляется как сумма чисел, содержащихся в двух регистрах, и константы, если она указана. Пример:

mov ax, [bx+si+2]

Адресация по базе с индексированием и масштабированием. Эта форма является комбинацией двух предыдущих, в качестве регистров можно использовать только 32х разрядные регистры. Пример:

mov ax, [ecx + edx*4 + 2]

В процессорах Intel используется сегментная организация памяти. Сегментом называется область, которая начинается на границе параграфа, то есть по любому адресу, который делится на 16 без остатка, то есть логически вся адресуемая память делится на некоторые области называемые сегментами. Сегменты могут быть пересекающимися, смежными и даже совпадающими. Максимальный размер сегмента (64 Кб) определяется максимальным значением смещения, которое может поместиться в регистре. Хотя сегмент может располагаться в любом месте памяти и иметь размер до 64 Кбайт, он требует столько памяти, сколько необходимо для выполнения программы. Начало сегмента определяется значением, находящемся в соответствующем сегментном регистре.

Имеется три основных типов сегментов:

1. Сегмент кода. Сегмент кода содержит машинные команды, которые будут выполняться. Обычно первая выполняемая команда находится в начале этого сегмента и операционная система передает управление по адресу данного сегмента для выполнения программы. Регистр сегмента кодов (CS) адресует данный сегмент.

Сегмент данных. Сегмент данных содержит определенные данные, константы и рабочие области, необходимые программе. Регистр сегмента данных (DS) адресует данный сегмент.

Сегмент стека. Стек содержит адреса возврата как для программы для возврата в операционную систему, так и для вызовов подпрограмм для возврата в главную программу. Для адресации этого сегмента используется регистр SS.




Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 643; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.