Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
архитектура эвм / EVM_3_lektsia_01-03 / материалы из интернета-1 / Лекция 1 История развития вычислительной техники. Цель.doc
Скачиваний:
172
Добавлен:
16.04.2015
Размер:
1.14 Mб
Скачать

3 Адресация регистров и ячеек памяти в пк

Адресация операндов в командах программы может быть:

 непосредственной;

 прямой;

 косвенной;

 ассоциативной;

 неявной.

Непосредственная адресациязаключается в указании в команде самого значения операнда, а не его адреса.

Прямая адресациясостоит в указании в команде непосредственно абсолютного или исполнительного адреса операнда.

Косвенная адресацияподразумевает указание в команде регистра(ов) или ячейки памяти, в которых находятся абсолютный, исполнительный адрес операнда или их составляющие.

Ассоциативная адресация —указание в команде не адреса, а идентифицирующего содержательного признака операнда, подлежащего выборке (применяется в ассоциативных запоминающих устройствах).

Неявная адресация —адрес операнда в команде не указан, но он подразумевается кодом операции.

Адресация ячеек основной памяти ПК имеет две разновидности:

 относительную;

 стековую.

Относительная адресация

Абсолютный (Аинд) адрес формируется как сумма адресов исполнительного (Аисп)

и сегментного (Асенм);

Аабссегмисп

Асегм— 20-битовый начальный адрес сегмента, который является увеличенным в 16 раз (сдвинутым на 4 бит влево) 16-битовым адресом сегмента хранящимся в одном из 16-битовых сегментных регистров. Начальный адрес сегмента в таком варианте всегда кратен 16 байтам, и он может быть полностью идентифицирован значением (сегмент всегда состоит из целого числа параграфов, а параграф равен 16 байт), то есть

Асегм=16 =0000

16-битовый исполнительный адрес может в ПК представлять собой сумму 3-х адресов:

Аиспсмещ[+Абаз][+Аинд]

где Асмещ – 16-битовый адрес смещения относительно начала сегмента (или относительно базы, если есть Абаз); Абаз– 16-битовый адрес смещения базы адреса операнда относительно начала сегмента; Аинд— адрес индекса (или просто индекс) — дополнительная составляющая адреса операнда, часто использующаяся при программировании циклических процессов с массивами и таблицами. Индекс должен быть непосредственно задан в соответствующем регистре МПП.

При адресации данныхмогут использоваться все составляющие адреса:

Аабс = Асегм+ Аисп= Асегм+ Асмещ[+Абаз][+Аинд]

где Асегм= 16 • ; берется из регистраDSпо умолчанию или из регистраES,

если это указано в программе; Абази Аиндберутся, соответственно, из регистров ВХ

и индексных (SIилиDI), аАсмещв явном или неявном виде указываются в программе.

При адресации командпрограммы могут использоваться только две составляющие адреса:

Аабс =Асегм+ Аисп= Асегм+ Асмещ= 16 + Асмещ

Асегм берется из регистраCS, а Асмещ— из регистраIP.

Стековая адресация

В стековой памяти (стеке) доступ к ячейкам памяти не произвольный, а по принципу «последний записанный операнд первым считывается» (FILO);

Аабс= Асегм+ [Абаз] + Асмещ

16-битовый адрес сегмента Асегмберется из регистраSS, смещения относительно начала сегмента стека автоматически считываются из регистров ВР (смещение базы стека — Абаз) иSP(смещение активной ячейки стека, в которую записывается или из которой считывается информация, — «вершины стека» относительно базы - Асмещ).

В защищенном (многопрограммном) режиме работы микропроцессора начальные адреса сегментов хранятся в таблицах дескрипторов и имеют длину 24 или 32 бит (в зависимости от типа МП). В сегментных регистрах в этом режиме хранятся селекторы, содержащие адресные ссылки на соответствующие таблицы дескрипторов.

Вопросы для самопроверки:

  1. Что такое машинная программа?

  2. Какова структура машинной команды?

  3. Каково разделение машинных команд по количеству используемых адресов?

  4. Приведите классификацию машинных команд по видам выполняемых операций.

  5. Охарактеризуйте каждый из способов адресации регистров и ячеек памяти.

Соседние файлы в папке материалы из интернета-1