Читайте также:
|
|
Таблица 7. Команды сдвигов и операций с битами
Мнемо- ника | Операнды | Описание | Операция | Флаги | Кол-во циклов |
LSL | Rd | Логический сдвиг влево | Rd(n+1)Rd(n), Rd(0)0, CRd(7) | Z,C,N,V,H | |
LSR | Rd | Логический сдвиг вправо | Rd(n)Rd(n+1), Rd(7)0, CRd(0) | Z,C,N,V | |
ROL | Rd | Сдвиг влево через перенос | Rd(0)C,Rd(n+1)Rd(n),CRd(7) | Z,C,N,V,H | |
ROR | Rd | Сдвиг вправо через перенос | Rd(7)C,Rd(n)Rd(n+1),CRd(0) | Z,C,N,V | |
ASR | Rd | Арифметический сдвиг вправо | Rd(n)Rd(n+1),CRd(0) | Z,C,N,V | |
SWAP | Rd | Обмен тетрадами | Rd(3-0)↔Rd(7-4) | ||
BSET | s | Установить флаг | SREG(s)1 | SREG(s) | |
BCLR | s | Очистить флаг | SREG(s)0 | SREG(s) | |
SBI | I/O,b | Установить бит в регистре I/O | I/O(b)1 | ||
CBI | I/O,b | Очистить бит в регистре I/O | I/O(b)0 | ||
BST | Rd,b | Переписать бит из регистра во флаг Т | TRd(b) | T | |
BLD | Rd,b | Загрузить Т флаг в бит регистра | Rd(b)T | ||
SEC | Установить флаг переноса | С1 | С | ||
CLC | Очистить флаг переноса | С0 | С | ||
SEN | Установить флаг отрицательного значения | N1 | N | ||
CLN | Очистить флаг отрицательного значения | N0 | N | ||
SEZ | Установить флаг нулевого значения | Z1 | Z | ||
CLZ | Очистить флаг нулевого значения | Z0 | Z | ||
SEI | Установить флаг глобального разре- шения прерываний | I1 | I | ||
CLI | Очистить флаг гло –бального разрешен. прерываний | I0 | I | ||
SES | Установить флаг знака | S1 | S | ||
CLS | Очистить флаг знака | S0 | S | ||
SEV | Установить флаг переполнения | V1 | V | ||
CLV | Очистить флаг переполнения | V0 | V | ||
SET | Установить флаг T | T1 | T | ||
CLT | Очистить флаг T | T0 | T | ||
SHE | Установить флаг полупереноса | H1 | H | ||
CLH | Очистить флаг полупереноса | H0 | H | ||
NOP | Выполнить пустую команду | ||||
SLEEP | Установить режим SLEEP | ||||
WDR | Сбросить сторожевой таймер |
Командами LSL и LSR выполняются операции логических сдвигов в указанном регистре общего назначения влево и вправо, причем выдвигаемый из регистра разряд помещается в бит переноса С, а в вдвигаемый разряд регистра помещается 0.
Команда логического сдвига вправо LSR Rd:
Командами ROL и ROR производится циклический сдвиг содержимого указанного в команде регистра общего назначения влево или вправо соответственно через бит переноса.
Сдвиг влево через бит переноса ROL Rd:
Командой арифметического сдвига ASR производится сдвиг вправо содержимого регистра, с помещением выдвигаемого разряда в бит переноса и заполнение шестого разряда регистра старшим (знаковым) разрядом.
Команды обработки битов представлены командами установки и сброса любого бита в регистре состояния контроллера и в любом регистре ввода-вывода, адрес которого в пределах 0 - $1f. а также командами пересылки указанного бита из указанного регистра общего назначения в бит копии Т и обратно.
Для удобства чтения команд, кроме общих команд установки/сброса бита регистра состояния, имеются индивидуальные команды для таких же операций. Например, команды BSET 0 и SEC выполняют одинаковую операцию (имеют одинаковый код) установки бита переноса С, однако вторая команда более читаема (Setting C).
2.7 Функционирование конвейера
8-разрядная шина данных микроконтроллера используется для пересылки операндов для выполнения операции и результатов, после ее выполнения.
Микроконтроллеры семейства AVR в структуре имеют отдельную 16-разрядную шину данных программной памяти, благодаря чему реализован одноступенчатый конвейер. По этой шине производится считывание команды из программной памяти в регистр команд. В это же время выполняется ранее считанная команда с использованием шины данных. Благодаря конвейеру увеличивается быстродействие микроконтроллера. Очевидно, что первая команда считывается из программной памяти без выполнения.
В случае команд переходов в конвейере образуется задержка. Причина ее в следующем. По команде перехода должна считываться команда, размещенная по адресу перехода, а конвейером считывается следующая команда. Поэтому работа конвейера приостанавливается на время считывания команды, размещенной по адресу перехода. В случае команд классических условных переходов (при выполнении условия в команде производится переход, иначе выполняется следующая команда), если условие команды выполняется, то в конвейере происходит задержка на время считывания команды по адресу перехода, а при невыполнении условия задержки не происходит (следующая команда уже считана).
В системе команд микроконтроллера есть 5 команд условных переходов, при выполнении которых проверяется условие и если оно выполняется, то пропускается следующая команда, иначе следующая команда не пропускается. На выполнение этих команд может дополнительно потребоваться 1 или 2 такта, так длина следующей команды может составлять 1 или 2 слова, которые в этих тактах будут считываться из памяти программ.
Тактовыми импульсами от тактового генератора микроконтроллера устанавливается временное положение управляющих сигналов на выводах блоков микроконтроллера. Управляющие сигналы формируются в схеме управления микроконтроллера и по шине управления поступают на соответствующие выводы блоков микроконтроллера. Управляющими сигналами являются: сигналы записи и чтения регистров, сигналы чтения и записи ячеек памяти и др..
Контрольные вопросы к разделам 1 и 2.
1. Функциональные блоки в составе микроконтроллера?
2. Функция программной памяти и ее основные параметры.
3. Функция, аппаратная реализация и работа счетчика команд.
4. В чем состоит упрощенная работа микроЭВМ?
5. Функция и разрядность регистра команд.
6. Информация в коде команды.
7. Функция и состав памяти данных микрконтроллера.
8. Стек: организация, адресация ячеек стека, указатель стека, особенности стековой памяти.
9. Функции и особенности регистров общего назначении РОН.
10. Состав регистров ввода/вывода.
11. Адреса РОН, РВВ и ОЗУ в едином адресном пространстве.
12. Функция и состав арифметико-логического устройства.
13. Функция регистра состояния процессора SREG.
14. Функции и особенности флагов регистра состояния SREG.
15. Размещение операндов в двухоперандной команде при регистровом способе адресации, формат команды и назначения отдельных групп разрядов.
16. Размещение операндов в однооперандной команде при регистровом способе адресации, формат команды и назначения отдельных групп разрядов.
17. Размещение операндов при прямом способе адресации, формат команды и назначения отдельных групп разрядов.
18. Размещение операндов при непосредственном способе адресации, формат команды, назначения отдельных групп разрядов, используемые регистры РОН.
19. Размещение операндов при косвенном способе адресации, формат команды и назначения отдельных групп разрядов.
20. Особенности косвенной адресации с постинкрементом и преддекрементом.
21. Особенности стековой адресации.
22. Операции, выполняемые по командам: LDI R17,34; OUT PORTD,R2; SBI PORTB,5; CBI DDRD,3; DEC R6; BRNE 6;
RCALL 134; RET; ADD R4,R23; ADC R4,R31;
RJMP 89; SBIC PORTD,7; CBIS PIND,4;
CBR R2,32; SBR R24,48; LPM; INC R6;
LD R9,X+; ROL R28; BRCS 4; PUSH R22;
POP R5.
23. Регистры, ячейки памяти или биты, которые участвуют при выполнении команд предыдущего вопроса.
Дата добавления: 2015-07-20; просмотров: 111 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Команды передачи управления | | | Встроенные устройства |