Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Режимы адресации



Режимы адресации задаются трехразрядным полем режима адресации. Если команда содержит два адреса, то режимы адресации для каждого операнда задаются независимо друг от друга, каждый своим полем режима.

Трехразрядное поле режима адресации позволяет задать 8 основных режимов адресации. Режим адресации – это правило вычисления адреса операнда по заданному РОНу и, возможно, одному из дополнительных слов команды. Использование дополнительных слов команды также определяется режимом адресации. Но не все РОНы в МП ЭВМ PDP-11 равнозначны. Регистр R7– это счетчик команд. Использование этого регистра для задания режима адресации или бессмысленно или, для четырех режимов, дает эффекты новых режимов.

Таким образом, программист, меняя режимы и используя как обычные РОНы, так и счетчик команд, может задавать операнды в командах двенадцатью режимами адресации. Основные режимы адресаций представлены в табл.5.

Таблица 5 Основные режимы адресаций

 
Мнем. Название Описание
  R Регистровая В регистре–операнд
  (R) Регистровая косвенная В регистре – адрес операнда
  (R)+ Автоувеличение В регистре – адрес операнда. После использования, адрес увеличивается на длину операнда
  @(R)+ Автоувеличение косвенная В регистре – адрес адреса операнда. После использования, адрес увеличивается на 2.
  – (R) Автоуменьшение Содержимое регистра уменьшается на длину операнда, результат используется как адрес операнда
  @ – (R) Автоуменьшение косвенная Содержимое регистра уменьшается на 2, результат используется как адрес адреса операнда
  X(R) Индексная Сумма содержимого регистра и индекса используется как адрес операнда, в качестве индекса используется второе или третье слово команды
  @X(R) Индексная косвенная Сумма содержимого регистра и индекса используется как адрес адреса операнда, в качестве индекса используется второе или третье слово команды

Примеры (упорядочены по номерам режимов адресации):

0. CLR R0 ;очистка регистра R0.
1. CLR (R0) ;очистка ячейки памяти, адрес которой находится в R0
2. а) CLR (R0)+ ;очистка ячейки памяти, адрес которой находится в R0, после использования адреса он увеличивается на 2; в цикле: последовательная очистка ячеек памяти по смежным адресам в направлении их увеличения;
  b) mov R1, (R0)+ ;пересылка из вершины стека числа в R1, где R0 – указатель стека.
3. Clr @(R0)+ ;в цикле: последовательная очистка ячеек памяти по списку адресов.  
4. а) Clr –(R0) ;очистка ячейки памяти, адрес которой находится в R0, после использования адреса он уменьшается на 2; в цикле: последовательная очистка ячеек памяти по смежным адресам, но в направлении их уменьшения.
  b) mov –(R0), R1 ;засылка в стек числа из R1, где R0 – указатель;стека.
5. Clr @–(R0) ;в цикле: последовательная очистка ячеек памяти по обратному списку адресов.
6. Clr Х(R0) ;очистка ячейки памяти, расположенной по адресу Х+(R0), Х–число во втором слове команды.
7. Clr @Х(R0) ;очистка ячейки памяти, адрес которой расположен по адресу Х+(R0), Х –число во втором слове команды.

Режимы адресаций с использованием счетчика команд представлены в табл. 6.

Таблица 6. Режимы адресации с использованием счетчика команд
№ режима Мнемоника с использованием Название режима адресации с использованием счетчика команд Описание
обычного РОНа счетчика команд
  (PC)+ #A Непосредственный операнд Непосредственный операнд задан в команде вторым или третьим словом
  @(PC)+ @#A Абсолютный адрес Абсолютный адрес операнда задан в команде вторым или третьим словом
  A(PC) A Относительный адрес Адрес операнда, относительно счетчика команд задан в команде вторым или третьим словом
  @A(PC) @A Косвенный относительный адрес Адрес адреса операнда, относительно счетчика команд задан в команде вторым или третьим словом

Примеры режимов адресации с использованием счетчика команд упорядочены по возрастанию номеров режимов. Для выявления особенностей адресации их рассмотрение производится попарно: с использованием обычного РОНа и с использованием счетчика команд.

Режим автоувеличения(2)

Режим автоувеличения c использованием обычного РОНа.

b+0) mov (R0)+, R1;содержимое ячейки памяти, адрес которой хранится в R0,переслать в регистр R1.

b+2) Х –следующая команда.

В этом примере b+0 –является адресом выполняемой команды. После выполнения этой команды содержимое счетчика команд R7 увеличивается на длину команды (в байтах) и становится равным b+2; это адрес следующей команды (Х),

Режим автоувеличенияc использованием счетчика команд.

b+0) MOV (R7)+, R1;та же команда, но в качестве регистра используется счетчик команд (R7); После выборки команды содержимое R7 увеличивается на длину команды (в байтах) и становится равным b+2. Команда предполагает пересылку в R1 содержимого ячейки памяти, адрес которой хранится в данном случае в счетчике команд (R7), следовательно, в R1 пересылается Х. Но, так как режим адресации с автоувеличением, то содержимое R7, уже как РОН, увеличивается на 2 и становится равным b+4.

Таким образом, при использовании в качестве РОНа счетчика команд, команда увеличивается на одно слово, содержимое которого используется в качестве непосредственного операнда. На ассемблере для команд с такой адресацией предусмотрена упрощенная форма:

MOV #X, R1, –– где #X – непосредственный операнд.





Дата публикования: 2014-11-03; Прочитано: 380 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.016 с)...