Способы адресации данных
В микроконтроллере используются следующие способы адресации данных: · неявный; · регистровый; · непосредственный; · прямой; · косвенный. Неявный способ получил такое название из-за того, что адрес операнда в команде явно не указывается, а подразумевается самим кодом операции (КОП). Например, однобайтная команда 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.
bit – адрес прямо адресуемого бита; /bit – инверсия прямо адресуемого бита; А — аккумулятор; РС – счетчик команд; DPTR – регистр указатель данных; (A), (addr), (Rn)– содержимое аккумулятора, ячейки памяти, регистра; ((DPTR)), ((PC)) – содержимое ячейки памяти, адрес которой находится в аккумуляторе, ячейке памяти, регистре, указателе памяти данных, программном счётчике. Типы операндов Состав операндов включает в себя операнды четырёх типов: биты, 4-битные цифры, байты и 16-битные слова. Микроконтроллер имеет 128 программно-управляемых флагов пользователя. Имеется также возможность адресации отдельных битов блока регистров специальных функций и портов. Для адресации битов используется прямой 8-битный адрес (bit). Косвенная адресация битов невозможна. Четырёхбитные операнды используются только при операциях обмена SWAP и XCHD. Восьмибитным операндом может быть ячейка памяти программ (ПП) или данных (резидентной (РПД) или внешней (ВПД)), константа (непосредственный операнд), регистры специальных функций, а также порты ввода/вывода. Порты и регистры специальных функций адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры R0, R1, DPTR и PC. Двухбайтные операнды — это константы и прямые адреса, для представления которых используются второй и третий байты команды.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Почему стероиды повышают давление?: Основных причин три... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (2054)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |