Студопедия — Способы адресации
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

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






 

Для выполнения преобразований над данными (операндами) микроконтроллер должен «знать»:

1) какое преобразование (операцию) он должен выполнить;

2) какие исходные данные (операнды) участвуют в операции.

Вся информация, поступающая в микроконтроллер через устройства ввода, так и программа, которая ее обрабатывает, хранится в разных частях памяти ОЗУ и ПЗУ. Для передачи данных (операндов) в АЛУ для обработки требуется указать место расположения операнда в памяти – его адрес. Поэтому структура любой команды содержит два поля: поле кода операции (КОП) и поле операнда или его адреса (или операндов, если их два) (рис.50).

 

Рис.50. Структура команды микроконтроллера:

а) с двумя операндами; б) с одним операндом

 

Если содержание поля кода операции строго определено для конкретной команды, то содержание поля операнда может иметь различные представления. Здесь может быть представлен собственно операнд в его числовой форме либо указание места расположения (адрес) операнда в памяти. Он может храниться в одном из регистров, в памяти данных ОЗУ, в памяти программ ПЗУ, а следовательно, иметь различные способы представления (указания адреса).

Способом адресации операнда называются его различные формы представления в структуре поля команды [2]. Способ адресации зависит от двух факторов:

а) от варианта доступа к данным;

б) от полноты представления адреса.

 

По варианту доступа к данным различают:

 

1. Непосредственная адресация (Immediate constants) - поле операнда непосредственно содержит данные, с которыми работает команда. Перед полем операнда (в большинстве случаев) ставится префикс #.

2. Прямая адресация (Direct Addressing) - префикса перед операндом нет. В поле операнда содержится адрес ячейки памяти, которая содержит данные. Эта адресация используется для внутренней памяти данных и регистров SFR.

3. Косвенная адресация (Indirect Addressing) - перед операндом ставится префикс @. В поле операнда содержится адрес указателя - ячейки памяти, содержащей адрес ячейки памяти, которая содержит данные. Данный вид адресации может применяться при обращении к внутренней памяти данных (в качестве указателя могут использоваться регистры R0 и R1 выбранного регистрового банка или указатель стека SP), а также внешней памяти данных и памяти программ (в качестве указателя могут использоваться регистры DPTR и PC).

4. Индексная адресация (Indexed Addressing) - представляет собой разновидность косвенной адресации со смещением. Например: команда MOVC A,@A+DPTR, аккумулятор перед выполнением команды содержит смещение относительно адреса, содержащегося в DPTR.

 

Полнота представления адреса может быть:

 

1. Полная - в поле операнда находится либо полный элемент данных, либо полный адрес, которые могут иметь формат 1 или 2 байта.

2. Регистровая (неполная) (Register Instruction) - операнд занимает место в байте, содержащем код операции. Он содержит несколько младших бит (1 или 3) полного адреса ячейки памяти, то есть работа осуществляется с усеченным адресным пространством – регистровым банком. Таким образом, усеченный адрес – это номер регистра. В случае прямой адресации используется 3 бита полного адреса, что соответствует размеру регистрового банка 8 регистров (R0-R7). В случае косвенной адресации используется только 1 бит полного адреса, поэтому возможна работа только с регистрами R0 и R1. Можно выбрать один из 4-х регистровых банков программированием битов селектора банка (RS1, RS0) в PSW. Достоинство: повышение быстродействия за счет одновременной выборки из памяти программ кода операции и операнда (ов), поэтому часто регистровый банк называют сверхоперативным запоминающим устройством (СОЗУ). Недостатки: ограниченный объем регистрового банка, уменьшение количества поддерживаемых кодов операции в системе команд (так, команда MOV A, Rx, где x принимает значения от 0 до 7, занимает 8 ячеек в системе команд).

3. Неявная (Register-Specific Instructions) - операнд представляет собой уникальный регистр, операция осуществляется только с ним. В этом случае нет необходимости включать его адрес в программный код. Например, это операции с аккумулятором и DPTR.

Таблица16

Адресация Вариант доступа к данным
непосредственная прямая косвенная
Полнота представления полная непосредственная полная прямая полная отсутствует
регистровая (неполная) не существует прямая регистровая косвенная регистровая
неявная не существует прямая неявная косвенная неявная

 

Таким образом, в зависимости от сочетания варианта представления адреса и полноты его указания существуют способы адресации, представленные в таблице 16:

1. Непосредственная полная адресация - когда в поле операнда представлен непосредственно элемент данных, т.е. число над которым выполняется операция, например: команда записи в аккумулятор непосредственного операнда - MOV A, #d (MOV A, #01H), двухбайтовая команда, в которой второй байт представляет непосредственный операнд #d (число 01H).

2. Прямая полная адресация – в поле операнда указывается адрес расположения операнда в памяти, например команда записи в аккумулятор содержимого ячейки памяти данных с прямым адресом - MOV A, ad (MOV A, 21Н), в которой второй байт представляет прямой адрес ad в памяти данных (адрес 21Н).

3. Прямая регистровая адресацияв поле кода операции (!) указывается трехбитный номер регистра rrr = 000÷1112, где расположен операнд. Поле адреса для данного операнда совмещено вместе с кодом операции в одном байте, например: команда инкремента рабочего регистра - INC Rn (00001 rrr). Таким образом, изменяя номер регистра rrr, мы можем обращаться к любому из восьми рабочих регистров выбранного банка.

4. Косвенная регистровая адресация - в поле кода операции (!) указывается однобитный номер регистра i = 0÷12, в котором предварительно записан адрес расположения операнда в памяти, т.е. регистр выполняет роль указателя на фактический адрес. Поле адреса для данного операнда совмещено вместе с кодом операции в одном байте, например: команда инкремента ячейки памяти данных адрес которой находится в регистре Ri - INC @Ri (0000011 i). Таким образом, изменяя номер регистра i, мы можем использовать регистры R0 и R1 в качестве указателей данных при косвенной адресации.

5. Прямая неявная адресация - код операции команды неявным образом определяет регистр (обычно это аккумулятор А), где находится операнд, например однобайтовая команда инверсии аккумулятора - CPL A.

6. Косвенная неявная адресация - код операции неявным образом определяет регистр (обычно это регистр DPTR, либо сумма (А+ DPTR)), который содержит фактический адрес, например команда относительного косвенного перехода – JMP @A+DPTR.

Длина или формат команды зависит от двух факторов:

а) от количества операндов, участвующих в операции;

б) от полноты представления адреса, т.е. от способа адресации.

В соответствии с этим команды микроконтроллера бывают однобайтовые, двухбайтовые и трехбайтовые (рис.51).

Рис.51. Форматы команд в зависимости от количества

операндов и способа адресации

 

Трехбайтовая команда может содержать либо два однобайтовых операнда с прямой и непосредственной адресацией (рис.51, а,б), либо один 16-разрядный операнд с непосредственной адресацией (рис.51, в), например:

- MOV P1,32H - запись в порт Р1 операнда из ячейки ОЗУ с прямым адресом 32Н (порт Р1 также имеет прямой адрес);

- MOV 20Н,#01H - запись в ячейку ОЗУ с адресом 20Н числа 01Н;

- MOV DPTR,#107FH - запись в регистр DPTR числа 107FH.

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

- PUSH PSW - запись в стек содержимого регистра PSW;

- MOV A,P2 - запись в аккумулятор операнда из порта Р2;

- MOV R2,#02H - запись в регистр R2 числа 02Н;

- MOV @R1,20H - запись в ячейку ОЗУ, адрес которой находится в регистре R1, значения операнда ОЗУ с адресом 20Н.

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

- ADD A,R3 - сложить операнд в аккумуляторе и операнд в регистре R3;

- MOVX A,@DPTR - переместить в аккумулятор содержимое ячейки внешней памяти, адрес которой находится в регистре DPTR;

- CRL A - очистить (обнулить) аккумулятор;

- RET - возврат из подпрограммы.

В рассматриваемой структуре команд с двумя операндами операнд 1 и операнд 2 имеют различные функции. В командах перемещения данных операнд 2 является «источником», а операнд 1 – «приемником» данных, поэтому допускаются любые сочетания способов адресации, кроме тех, когда в качестве операнда 1 назначается непосредственный операнд.

В командах преобразования данных (арифметических и логических) операнд 1 является «приемником» результата, а в этом качестве выступает аккумулятор. Поэтому допускаются только те сочетания способов адресации, где приемником является операнд (аккумулятор) с неявной адресацией (для некоторых логических команд возможен операнд с прямой адресацией).

 







Дата добавления: 2015-08-12; просмотров: 1776. Нарушение авторских прав; Мы поможем в написании вашей работы!



Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...

Тема 5. Анализ количественного и качественного состава персонала Персонал является одним из важнейших факторов в организации. Его состояние и эффективное использование прямо влияет на конечные результаты хозяйственной деятельности организации.

Билет №7 (1 вопрос) Язык как средство общения и форма существования национальной культуры. Русский литературный язык как нормированная и обработанная форма общенародного языка Важнейшая функция языка - коммуникативная функция, т.е. функция общения Язык представлен в двух своих разновидностях...

Патристика и схоластика как этап в средневековой философии Основной задачей теологии является толкование Священного писания, доказательство существования Бога и формулировка догматов Церкви...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

Гальванического элемента При контакте двух любых фаз на границе их раздела возникает двойной электрический слой (ДЭС), состоящий из равных по величине, но противоположных по знаку электрических зарядов...

Сущность, виды и функции маркетинга персонала Перснал-маркетинг является новым понятием. В мировой практике маркетинга и управления персоналом он выделился в отдельное направление лишь в начале 90-х гг.XX века...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия