Мегаобучалка Главная | О нас | Обратная связь

Способы адресации данных




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

· неявный;

· регистровый;

· непосредственный;

· прямой;

· косвенный.

Неявный способ получил такое название из-за того, что адрес операнда в команде явно не указывается, а подразумевается самим кодом операции (КОП). Например, однобайтная команда

CLR C (сброс флага переноса) представляет собой только КОП. Этот способ адресации позволяет получать команды минимального формата.

Регистровый способ адресации используется для операндов, хранящихся в одном из регистровых банков: регистры общего назначения R0 – R7. Например, команда

DEC R0 (декремент содержимого регистра R0). Этот способ адресации также позволяет получать команды минимального формата.

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

MOV A, #d (загрузить байт в аккумулятор) имеет двухбайтный формат: первый байт КОП и байт данных #d. Например, команда

MOV DPTR, #d16 (загрузить два байта в регистр указатель DPTR) имеет трехбайтный формат: первый байт КОП и два байта данных #d16.

Прямой способ адресации предполагает указание операндов посредством адреса, содержащегося в команде. Адрес может быть одно- или двухбайтовым. Например, команда

ADD A, ad (сложение аккумулятора с содержимым памяти по адресу ad) имеет двухбайтный формат: первый байт КОП и байт адреса ad. Например, команда LJMP ad16 (длинный переход по адресу ad16) имеет трехбайтный формат: первый байт КОП и два байта адреса ad16.



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

MOV A, @R0 (загрузить в аккумулятор содержимое ячейки внутренней памяти, восьмиразрядный адрес которой содержится в регистре R0). Например, команда

MOV A, @DPTR (загрузить в аккумулятор содержимое ячейки внешней памяти, адрес которой содержится в двухбайтном регистре-указателе DPTR). Этот способ адресации позволяет уменьшить формат команд и повысить гибкость программирования. Многие команды для указания операндов комбинируют различные способы адресации. Например, команда

MOV @R0, #d (загрузить байт данных #d в ячейку внутренней памяти, восьмиразрядный адрес которой содержится в регистре R0). Здесь используются непосредственный (источник операнда) и косвенный (приемник операнда) способы адресации.

Система команд

Общая характеристика

Микро-ЭВМ рассматриваемого семейства являются типичными микропроцессорными устройствами с архитектурой CISC со стандартным набором команд. Поэтому их система команд довольно обширна — включает в себя 111 основных команд. Они занимают в памяти один, два или три байта, причем большинство из них (94%) – одно- или двухбайтные. Все команды выполняются за один или два машинных цикла (соответственно 1 или 2 мкс при тактовой частоте 12 МГц), исключение – команды умножения и деления, которые выполняются за четыре машинных цикла (4 мкс).

В качестве операндов команд микро-ЭВМ семейства 8051 могут использовать отдельные биты, четырехбитные цифры, байты и двухбайтные слова.

Все эти черты обычны для набора команд любого CISC-процессора и, по сравнению с наборами команд RISC-процессоров, имеют большую компактность программного кода и высокое быстродействие при выполнении сложных операций.

В то же время, набор команд семейства 8051 имеет несколько особенностей, связанных с типичными функциями, выполняемыми микроконтроллерами — управлением, для которого типичным является оперирование с одноразрядными двоичными сигналами, большое число операций ввода выводи и ветвлений программы.

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

Все команды MCS-51 по функциональному признаку можно подразделить на пять групп:

· пересылки данных;

· арифметических операций;

· логических операций;

· операций над битами;

· передачи управления.

Типы команд

Всего микро-ЭВМ выполняют 13 типов команд, они приведены в табл. 3.2. Как следует из нее, первый байт команды всегда содержит код операции (КОП), а второй и третий (если они присутствуют в команде) – адреса операндов или их непосредственные значения.

Здесь и далее при описании системы команд микропроцессора используются следующие обозначения:

Rn (n = 0, 1,..., 7) – регистр общего назначения в выбранном банке регистров;

@Ri(i= 0, 1) – регистр общего назначения в выбранном банке регистров, используемый в качестве регистра косвенного адреса;

ad – адрес прямо адресуемого байта;

ads – адрес прямо адресуемого байта-источника;

add – адрес прямо адресуемого байта-получателя;

ad11 – 11-разрядный абсолютный адрес перехода;

ad16 – 16-разрядный абсолютный адрес перехода;

rel – относительный адрес перехода;

#d – непосредственный операнд;

#d16 – непосредственный операнд (2 байта);

Типы команд

Таблица 3.2.

Тип команды Первый байт D7…D0 Второй байт D7…D0 Третий байт D7...D0
тип 1 коп    
тип 2 коп #d  
тип 3 коп ad  
тип 4 коп bit  
тип 5 коп rel  
тип 6 коп а7...a0  
тип 7 коп ad #d
тип 8 коп ad rel
тип 9 коп ads add
тип 10 коп #d rel
тип 11 коп bit rel
тип 12 коп ad16h ad16l
тип 13 коп #d16h #d16l

bit – адрес прямо адресуемого бита;

/bit – инверсия прямо адресуемого бита;

А — аккумулятор;

РС – счетчик команд;

DPTR – регистр указатель данных;

(A), (addr), (Rn)– содержимое аккумулятора, ячейки памяти, регистра;

((DPTR)), ((PC)) – содержимое ячейки памяти, адрес которой находится в аккумуляторе, ячейке памяти, регистре, указателе памяти данных, программном счётчике.

Типы операндов

Состав операндов включает в себя операнды четырёх типов: биты, 4-битные цифры, байты и 16-битные слова.

Микроконтроллер имеет 128 программно-управляемых флагов пользователя. Имеется также возможность адресации отдельных битов блока регистров специальных функций и портов. Для адресации битов используется прямой 8-битный адрес (bit). Косвенная адресация битов невозможна.

Четырёхбитные операнды используются только при операциях обмена SWAP и XCHD.

Восьмибитным операндом может быть ячейка памяти программ (ПП) или данных (резидентной (РПД) или внешней (ВПД)), константа (непосредственный операнд), регистры специальных функций, а также порты ввода/вывода. Порты и регистры специальных функций адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры R0, R1, DPTR и PC.

Двухбайтные операнды — это константы и прямые адреса, для представления которых используются второй и третий байты команды.





Читайте также:





Читайте также:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...

©2015 megaobuchalka.ru Все права защищены авторами материалов.

Почему 3458 студентов выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы


(0.004 сек.)