Относительная адресация
Абсолютный (Aинд) адрес формируется как сумма адресов исполнительного (Aисп) и сегментного (Aсегм):
Aабс = Aсегм + Aисп.
Aсегм — 20-битовый начальный адрес сегмента, который является увеличенным в 16 раз (сдвинутым на 4 бита влево) 16-битовым адресом сегмента A'сегм, хранящемся в одном из 16-битовых сегментных регистров. Начальный адрес сегмента в таком варианте всегда кратен 16 байтам, и он может быть полностью идентифицирован значением A'сегм (сегмент всегда состоит из целого числа параграфов, а параграф равен 16, то есть:
Aсегм = 16 · A'сегм = A'сегм0000.
16-битовый исполнительный адрес может в ПК представлять собой сумму 3-х адресов:
Aисп = Aсмещ[+Aбаз][+Aинд]
l Aсмещ — 16-битовый адрес смещения относительно начала сегмента (или относительно базы, если есть Aбаз);
l Aбаз — 16-битовый адрес смещения базы адреса операнда относительно начала сегмента;
l Aинд — адрес индекса (или просто индекс) — дополнительная составляющая адреса операнда, использующаяся часто при программировании циклических процессов с массивами и таблицами. Индекс должен быть непосредственно задан в соответствующем регистре МПП.
При адресации данных могут использоваться все составляющие адреса:
Aабс данных = Aсегм + Aисп = Aсегм + Aсмещ[+Aбаз][+Aинд]
Aсегм = 16 A'сегм, A'сегм берется из регистра DS по умолчанию или из регистра ES, если это указано в программе. Aбаз и Aинд берутся, соответственно, из регистров BX и индексных (SI или DI), а Aсмещ в явном или неявном виде указываются в программе.
При адресации команд программы могут использоваться только две составляющие адреса:
Aабс команд = Aсегм + Aисп = Aсегм + Aсмещ
A'сегм берется из регистра CS, а Aсмещ — из регистра IP.
Стековая адресация
В стековой памяти (стеке) доступ к ячейкам памяти не произвольный, а по принципу «последний записанный операнд первым считывается» (FILO).
Aабс стека = Aсегм + [Aбаз] + Aсмещ
16-битовый адрес сегмента A'сегм берется из регистра SS, смещения относительно начала сегмента стека автоматически считываются из регистров BP (смещение базы стека — Aбаз) и SP (смещение активной ячейки стека, в которую записывается или из которой считывается информация, — «вершины стека» относительно базы — Aсмещ).
В защищенном (многопрограммном) режиме работы микропроцессора начальные адреса сегментов хранятся в таблицах дескрипторов и имеют длину 24 или 32 бита (в зависимости от типа МП) В сегментных регистрах в этом режиме хранятся селекторы, содержащие адресные ссылки на соответствующие таблицы дескрипторов.
Вопросы для самопроверки
1. Сформулируйте основные свойства алгоритма.
2. Рассмотрите способы записи алгоритма.
3. Приведите и поясните типовой состав машинных команд.
4. Рассмотрите возможные структуры машинных команд.
5. Поясните назначение системного и прикладного программного обеспечения.
6. Назовите основные режимы работы компьютеров и дайте им краткую характеристику.
7. Что такое прерывания работы программы и каково их назначение?
8. Назовите и поясните виды прерываний.
9. Рассмотрите последовательность действий машины при выполнении прерывания.
10. Назовите виды и особенности адресации ячеек памяти в ПК.
11. Напишите формулу для расчета абсолютного адреса данных.
12. Какие регистры микропроцессорной памяти используются для адресации данных?
13. Напишите формулу для расчета абсолютного адреса команды программы.
14. Какие регистры микропроцессорной памяти используются для адресации команд программы?
15. Напишите формулу для расчета адреса стека.
16. Какие регистры микропроцессорной памяти используются для адресации ячеек стековой памяти?
Дата добавления: 2021-09-25; просмотров: 397;