Лекция №7. Система команд изучаемого микроконтроллера.


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

Rd – содержимое регистра общего назначения – приемника данных

Rr - содержимое регистра общего назначения – источника данных

k – адрес ячейки памяти (16-ти битный). Иногда можно заменить меткой.

K – константа (8-и битные данные)

Загрузить регистр непосредственно – означает использование в команде косвенно-регистрового режима адресации.

Мнемоника Операнды Описание Действие Флаги Цкл
АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ КОМАНДЫ
ADD Rd,Rr Сложить два регистра Rd<Rd+Rr Z,C,N,V,H
ADC Rd,Rr Сложить с переносом Rd<Rd+Rr+C Z,C,N,V,H
ADIW Rdl,K Сложить слово с конст Rdh,l<Rdh,l+K Z,C,N,V,S
SUB Rd,Rr Вычесть два регистра Rd<Rd-Rr Z,C,N,V,H
SUBI Rd,K Вычесть константу Rd<Rd-K Z,C,N,V,H
SBIW Rdl,K Вычесть слово с конст Rdh,l<Rdh,l-K Z,C,N,V,S
SBC Rd,Rr Вычесть с переносом Rd<Rd-Rr-C Z,C,N,V,H
SBCI Rd,K Вычесть с переносом Rd<Rd-K-C Z,C,N,V,H
AND Rd,Rr Логическое И Rd<Rd AND Rr Z,N,V
ANDI Rd,K Логическое И Rd<Rd AND K Z,N,V
OR Rd,Rr Логическое ИЛИ Rd<Rd OR Rr Z,N,V
ORI Rd,K Логическое ИЛИ Rd<Rd OR K Z,N,V
EOR Rd,Rr Исключающее ИЛИ Rd<Rd XOR Rr Z,N,V
COM Rd Дополнение до 1 (инверсия) Rd<$FF-Rd Z,C,N,V
NEG Rd Дополнение до 2 (доп.код) Rd<$00-Rd Z,C,N,V,H
INC Rd Увеличить на 1 Rd<Rd+1 Z,N,V
DEC Rd Уменьшить на 1 Rd<Rd-1 Z,N,V
CLR Rd Очистить регистр Rd<Rd XOR Rd Z,N,V
SER Rd Установить регистр Rd<$FF None
КОМАНДЫ ВЕТВЛЕНИЯ
RJMP k Относительный переход PC<PC+k+1 None
RCALL k Относ. вызов подпрогр. PC<PC+k+1 None
RET   Выход из подпрограммы PC<STACK None
CP Rd,Rr Сравнить Rd-Rr Z,N,V,C,H
CPC Rd,Rr Сравнить с переносом Rd-Rr-C Z,N,V,C,H
CPI Rd,K Сравнить с константой Rd-K Z,N,V,C,H
BREQ k Переход если равно if(Z=1) PC<PC+k+1 None 1/2
BRNE k Переход если неравно if(Z=0) PC<PC+k+1 None 1/2
BRCS k Переход если установл. перенос if(C=1) PC<PC+k+1 None 1/2
BRCC k Переход если сброшен перенос if(C=0) PC<PC+k+1 None 1/2
BRSH k Переход если равно или больше if(C=0) PC<PC+k+1 None 1/2
BRLO k Переход если меньше if(C=1) PC<PC+k+1 None 1/2
КОМАНДЫ ПЕРЕСЫЛКИ
MOV Rd,Rr Пересылка между рег. Rd<Rr None
LDI Rd,K Загрузить константу Rd<K None
LD Rd,X Загрузить регистр непосредственно Rd<(X) None
LD Rd,X+ Загрузить регистр непоср. c пост инкрем. Rd<(X),X<X+1 None
LD Rd,-X Загрузить регистр непоср. с предв. декрем. X<X-1,Rd<(X) None
LD Rd,Y Загрузить регистр непосредственно Rd<(Y) None
LD Rd,Y+ Загрузить регистр непоср. c пост инкрем. Rd<(Y),Y<Y+1 None
LD Rd,-Y Загрузить регистр непоср. с предв. декрем. Y<Y-1,Rd<(Y) None
LD Rd,Z Загрузить регистр непосредственно Rd<(Z) None
LD Rd,Z+ Загрузить регистр непоср. c пост инкрем. Rd<(Z),Z<Z+1 None
LD Rd,-Z Загрузить регистр непоср. с предв. декрем. Z<Z-1,Rd<(Z) None
LDS Rd,k Загрузить из ОЗУ Rd<(k) None
ST X,Rr Записать регистр непосредственно (X)<Rr None
ST X+,Rr Записать регистр непоср. c пост инкр. (X)<Rr,X<X+1 None
ST -X,Rr Записать регистр непоср. c пред. декрем. X<X-1,(X)<Rr None
ST Y,Rr Записать регистр непосредственно (Y)<Rr None
ST Y+,Rr Записать регистр непоср. c пост инкр. (Y)<Rr,Y<Y+1 None
ST -Y,Rr Записать регистр непоср. c пред. декрем. Y<Y-1,(Y)<Rr None
ST Z,Rr Записать регистр непосредственно (Z)<Rr None
ST Z+,Rr Записать регистр непоср. c пост инкр. (Z)<Rr,Z<Z+1 None
ST -Z,Rr Записать регистр непоср. c пред. декрем. Z<Z-1,(Z)<Rr None
STS k,Rr Записать в ОЗУ (k)<Rr None
КОМАНДЫ РАБОТЫ С БИТАМИ
LSL Rd Логический сдвиг влево Rd(n+1)<Rd(n),Rd(0)<0 Z,C,N,V
LSR Rd Логич. сдвиг вправо Rd(n)<Rd(n+1),Rd(7)<0 Z,C,N,V
ROL Rd сдвиг влево через C Rd(0)<C, Rd(n+1)<Rd(n),C<Rd(7) Z,C,N,V
ROR Rd сдвиг вправо через C Rd(7)<C, Rd(n)<Rd(n+1),C<Rd(0) Z,C,N,V
ASR Rd Арифметический сдвиг вправо Rd(n)<Rd(n+1),n=0..6 Z,C,N,V
SWAP Rd Обмен тетрад (нибблов) Rd(3-0)<Rd(7-4)Rd(7-4)<Rd(3-0) None
SEC   Установить перенос C<1 C
CLC   Сбросить перенос C<0 C
SEZ   Установить флаг Z Z<1 Z
CLZ   Сбросить флаг Z Z<0 Z
NOP   Нет операции   None

 



Дата добавления: 2016-12-27; просмотров: 1958;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.