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

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

Система команд микроконтроллера AVR






Система команд микроконтроллеров AVR весьма развита и насчитывает в различных моделях от 90 до 133 различных инструкций.

Большинство команд занимает только 1 ячейку памяти (16 бит).

Большинство команд выполняется за 1 такт.

Всё множество команд микроконтроллеров AVR можно разбить на несколько групп:

  • команды логических операций;
  • команды арифметических операций и команды сдвига;
  • команды операции с битами;
  • команды пересылки данных;
  • команды передачи управления;
  • команды управления системой.

Управление периферийными устройствами осуществляется через адресное пространство данных. Для удобства существуют «сокращённые команды» IN/OUT.

Регистр статуса (SREG)
SREG: Регистр статуса
C: Флаг переноса
Z: Флаг нулевого значения
N: Флаг отрицательного значения
V: Флаг-указатель переполнения дополнения до двух
S: NÅV, Для проверок со знаком
H: Флаг полупереноса
T: Флаг пересылки, используемый командами BLD и BST
I: Флаг разрешения/запрещения глобального прерывания
Регистры и операнды
Rd: Регистр назначения (и источник) в регистровом файле
Rr: Регистр источник в регистровом файле
R: Результат выполнения команды
K: Литерал или байт данных (8 бит)
k: Данные адреса константы для счетчика программ
b: Бит в регистровом файле или I/O регистр (3 бита)
s: Бит в регистре статуса (3 бита)
X, Y, Z: Регистр косвенной адресации (X=R27:R26, Y=R29:R28, Z=R31:R30)
P: Адрес I/O порта
q: Смещение при прямой адресации (6 бит)
I/O регистры
RAMPX, RAMPY, RAMPZ: Регистры связанные с X, Y и Z регистрами, обеспечивающие косвенную адресацию всей области СОЗУ микроконтроллера с объемом СОЗУ более 64 Кбайт
Стек:
STACK: Стек для адреса возврата и опущенных в стек регистров
SP: Указатель стека
Флаги:
Û Флаг, на который воздействует команда
0: Очищенный командой Флаг
1: Установленный командой флаг
-: Флаг, на который не воздействует команда

 

Обозначение Функция
ADC Сложить с переносом
ADD Сложить без переноса
ADIW Сложить непосредственное значение со словом
AND Выполнить логическое AND
ANDI Выполнить логическое AND c непосредственным значением
ASR Арифметически сдвинуть вправо
BCLR Очистить флаг
BLD Загрузить T флаг в бит регистра
BRBC Перейти если бит в регистре статуса очищен
BRBS Перейти если бит в регистре статуса установлен
BRCC Перейти если флаг переноса очищен
BRCS Перейти если флаг переноса установлен
BREQ Перейти если равно
BRGE Перейти если больше или равно (с учетом знака)
BRHC Перейти если флаг полупереноса очищен
BRHS Перейти если флаг полупереноса установлен
BRID Перейти если глобальное прерывание запрещено
BRIE Перейти если глобальное прерывание разрешено
BRLO Перейти если меньше (без знака)
BRLT Перейти если меньше чем (со знаком)
BRMI Перейти если минус
BRNE Перейти если не равно
BRPL Перейти если плюс
BRSH Перейти если равно или больше (без знака)
BRTC Перейти если флаг T очищен
BRTS Перейти если флаг T установлен
BRVC Перейти если переполнение очищено
BRVS Перейти если переполнение установлено
BSET Установить флаг
BST Переписать бит из регистра во флаг T
CALL Выполнить длинный вызов подпрограммы
CBI - Очистить бит в регистре I/O
CBR Очистить биты в регистре
CLC Очистить флаг переноса
CLH Очистить флаг полупереноса
CLI Очистить флаг глобального прерывания
CLN Очистить флаг отрицательного значения
CLR Очистить регистр
CLS Очистить флаг знака
CLT Очистить флаг T
CLV Очистить флаг переполнения
CLZ Очистить флаг нулевого значения
COM Выполнить дополнение до единицы
CP Сравнить
CPC Сравнить с учетом переноса
CPI Сравнить c константой
CPSE Сравнить и пропустить если равно
DEC Декрементировать
EOR Выполнить исключающее OR
ICALL Вызвать подпрограмму косвенно
IJMP Перейти косвенно
IN Загрузить данные из порта I/O в регистр
INC Инкрементировать
FMUL Дробное незнаковое умножение
FMULS Дробное умножение со знаком
FMULSU Дробное умножение знакового с незнаковым
JMP Перейти
LD Rd,X Загрузить косвенно
LD Rd,X+ Загрузить косвенно инкрементировав впоследствии
LD Rd,-X Загрузить косвенно декрементировав предварительно
LDI Загрузить непосредственное значение
LDS Загрузить непосредственно из СОЗУ
LPM Загрузить байт памяти программ
LSL Логически сдвинуть влево
LSR Логически сдвинуть вправо
MOV Копировать регистр
MUL Перемножить
NEG Выполнить дополнение до двух
NOP Выполнить холостую команду
OR Выполнить логическое OR
ORI Выполнить логическое OR с непосредственным значением
OUT Записать данные из регистра в порт I/O
POP Загрузить регистр из стека
PUSH Поместить регистр в стек
RCALL Вызвать подпрограмму относительно
RET Вернуться из подпрограммы
RETI Вернуться из прерывания
RJMP Перейти относительно
ROL Сдвинуть влево через перенос
ROR Сдвинуть вправо через перенос
SBC Вычесть с переносом
SBCI Вычесть непосредственное значение с переносом
SBI Установить бит в регистр I/O
SBIC Пропустить если бит в регистре I/O очищен
SBIS Пропустить если бит в регистре I/O установлен
SBIW Вычесть непосредственное значение из слова
SBR Установить биты в регистре
SBRC Пропустить если бит в регистре очищен
SBRS Пропустить если бит в регистре установлен
SEC Установить флаг переноса
SEH Установить флаг полупереноса
SEI Установить флаг глобального прерывания
SEN Установить флаг отрицательного значения
SER Установить все биты регистра
SES Установить флаг знака
SET Установить флаг T
SEV Установить флаг переполнения
SEZ Установить флаг нулевого значения
SLEEP Установить режим SLEEP
ST X,Rr Записать косвенно
ST Y,Rr Записать косвенно из регистра в СОЗУ с использованием индекса Y
ST Z,Rr Записать косвенно из регистра в СОЗУ с использованием индекса Z
STS Загрузить непосредственно в СОЗУ
SUB Вычесть без переноса
SUBI Вычесть непосредственное значение
SWAP Поменять нибблы местами
TST Проверить на ноль или минус
WDR Сбросить сторожевой таймер

 







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



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Краткая психологическая характеристика возрастных периодов.Первый критический период развития ребенка — период новорожденности Психоаналитики говорят, что это первая травма, которую переживает ребенок, и она настолько сильна, что вся последую­щая жизнь проходит под знаком этой травмы...

РЕВМАТИЧЕСКИЕ БОЛЕЗНИ Ревматические болезни(или диффузные болезни соединительно ткани(ДБСТ))— это группа заболеваний, характеризующихся первичным системным поражением соединительной ткани в связи с нарушением иммунного гомеостаза...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

Ганглиоблокаторы. Классификация. Механизм действия. Фармакодинамика. Применение.Побочные эфффекты Никотинчувствительные холинорецепторы (н-холинорецепторы) в основном локализованы на постсинаптических мембранах в синапсах скелетной мускулатуры...

Шов первичный, первично отсроченный, вторичный (показания) В зависимости от времени и условий наложения выделяют швы: 1) первичные...

Предпосылки, условия и движущие силы психического развития Предпосылки –это факторы. Факторы психического развития –это ведущие детерминанты развития чел. К ним относят: среду...

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