Глоссарий (Таблица поиска команд по видеоурокам)

У слушателей иногда возникает необходимость в повторном просмотре видеоурока по какой-то определенной команде или функции. К сожалению, по названию видеоурока не всегда удается определить какие команды в нем рассматриваются. Поэтому я принял решение создать небольшую справочную таблицу с различными командами и выражениями ассемблера, по которой легко можно определить в каком видеоуроке что рассматривается.

 

Мнемоника

Описание

Видеоурок

CBR Rd, K

Сброс разряда(ов) РОН (K = 0…255)

17. Новые команды ассемблера (Project_4)

SBR Rd, K

Установка разряда(ов) РОН (K = 0…255)

CBI P, b

Сброс разряда РВВ(b = 0…7)

SBI P, b

Установка разряда РВВ(b = 0…7)

BCLR s

Сброс флага(s = 0…7)

19. Регистр статуса (Project_5)

BSET s

Установкафлага (s = 0…7)

BLD Rd, b

Загрузка разряда РОН из флага T (SREG)

BST Rr, b

Запись разряда РОН в флаг T(SREG)

CLC

Сброс флага переноса

SEC

Установка флага переноса

CLN

Сброс флага отрицательного числа

SEN

Установка флага отрицательного числа

CLZ

Сброс флага нуля

SEZ

Установка флага нуля

CLI

Общий запрет прерываний

SEI

Общее разрешение прерываний

CLS

Сброс флага знака

SES

Установка флага знака

CLV

Сброс флага переполнения дополнительного кода

SEV

Установка флага переполнения дополнительн. кода

CLT

Сброс пользовательского флага T

SET

Установка пользовательского флага T

CLH

Сброс флага половинного переноса

SEH

Установка флага половинного переноса

 

Группа команд сравнения

Мнемоника

Описание

Видеоурок

CP Rd, Rr

Сравнение двух РОН

22. Команды сравнения (Project_8)

CPC Rd, Rr

Сравнение РОН с учетом переноса

CPI Rd, K

Сравнение РОН с константой

 

Группа команд логических операций

Мнемоника

Описание

Видеоурок

AND Rd, Rr

«Логическое И» двух РОН

17. Новые команды ассемблера (Project_4)

ANDI Rd, K

«Логическое И» РОН и константы

EOR Rd, Rr

«Исключающее ИЛИ» двух РОН

OR Rd, Rr

«Логическое ИЛИ» двух РОН

ORI Rd, K

«Логическое ИЛИ» РОН и константы

COM Rd

Перевод в обратный код (инверсия разрядов)

NEG Rd

Перевод в дополнительный код

CLR Rd

Сброс всех разрядов РОН

SER Rd

Установка всех разрядов РОН

TST Rd

Проверка РОН на отрицательное (нулевое) значение

19. Регистр статуса (Project_5)

 

Группа команд арифметических операций

Мнемоника

Описание

Видеоурок

ADD Rd, Rr

Сложение двух РОН

19. Регистр статуса (Project_5)

ADC Rd, Rr

Сложение двух РОН с переносом

ADIW Rd, K

Сложение регистровой пары с константой (K=0…63)

21. Парные регистры (Paired_Registers)

SUB Rd, Rr

Вычитание двух РОН

27. Практика использования отрицательных чисел (Negative_Numbers)

SUBI Rd, K

Вычитание константы из РОН

SBC Rd, Rr

Вычитание двух РОН с заемом

SBCI Rd, K

Вычитание константы из РОН с заемом

SBIW Rd, K

Вычитание константы из регистровой пары (K=0…63)

21. Парные регистры (Paired_Registers)

DEC Rd

Декремент РОН

17. Новые команды ассемблера (Project_4)

INC Rd

Инкремент РОН

 

Группа команд операций сдвига

Мнемоника

Описание

Видеоурок

ASR Rd

Арифметический сдвиг вправо

20. Команды операций сдвига (Paired_Registers)

LSL Rd

Логический сдвиг влево

LSR Rd

Логический сдвиг вправо

ROL Rd

Сдвиг влево через перенос

ROR Rd

Сдвиг вправо через перенос

SWAP Rd

Обмен местами тетрад

 

Группа команд безусловной передачи управления

Мнемоника

Описание

Видеоурок

RJMP A

Относительный безусловный переход (A = – 2048…2047) 07 Трансляция программы 31. Чтение байт из памяти программ (Read_from_Program)

24. Команды безусловного перехода

IJMP

Косвенный безусловный переход 24. Команды безусловного перехода

JMP A

Абсолютный безусловный переход (A = 0…4Mb)

RCALL A

Относительный вызов подпрограммы (A = – 2048…2047) 29. Стековая память и подпрограммы (Project_12)

ICALL

Косвенный вызов подпрограммы 30. Ошибки при работе со стековой памятью

CALL A

Абсолютный вызов подпрограммы (A = 0…4Mb) 29. Стековая память и подпрограммы (Project_12)

RET

Возврат из подпрограммы 29. Стековая память и подпрограммы (Project_12)

RETI

Возврат из подпрограммы обработки прерываний 37.1 Понятие прерываний микроконтроллера

 

Группа команд пересылки данных

Мнемоника

Описание

Видеоурок

MOV Rd, Rr

Пересылка между РОН

31. Чтение байт из памяти программ (Read_from_Program)

MOVW Rd, Rr

Пересылка между парами регистров

21. Парные регистры (Paired_Registers)

LDI Rd, K

Загрузка константы в РОН

06 Первый проект

LD  Rd, X

Косвенное чтение

28. Запись и чтение памяти данных (Project_11)

LD Rd, X+

Косвенное чтение с постикрементом

LD Rd, –X

Косвенное чтение с преддекрементом

LD Rd, Y

Косвенное чтение

LD Rd, Y+

Косвенное чтение с постикрементом

LD Rd, –Y

Косвенное чтение с преддекрементом

LDD Rd, Y+q

Косвенное относительное чтение (q = 0…63)

LD Rd, Z

Косвенное чтение

LD Rd, Z+

Косвенное чтение с постикрементом

LD Rd, –Z

Косвенное чтение с преддекрементом

LDD Rd, Z+q

Косвенное относительное чтение (q = 0…63)

LDS Rd, A

Непосредственное чтение из ОЗУ

ST X, Rr

Косвенная запись

ST X+, Rr

Косвенная запись с постикрементом

ST  –X, Rr

Косвенная запись с преддекрементом

ST Y, Rr

Косвенная запись

ST  Y+, Rr

Косвенная запись с постикрементом

ST –Y, Rr

Косвенная запись с преддекрементом

STD  Y+q, Rr

Косвенная относительная запись (q = 0…63)

ST Z, Rr

Косвенная запись

ST Z+, Rr

Косвенная запись с постикрементом

ST –Z, Rr

Косвенная запись с преддекрементом

STD Z+q, Rr

Косвенная относительная запись (q = 0…63)

STS A, Rr

Непосредственная запись в ОЗУ

LPM

Загрузка данных из памяти программ

31. Чтение байт из памяти программ (Read_from_Program)

LPM Rd, Z

Загрузка данных из памяти программ

LPM Rd, Z+

Загрузка данных из памяти программ и постикрементом Z

IN Rd, P

Пересылка из РВВ в РОН

16. Чтение из портов микроконтроллера

OUT P, Rr

Пересылка из РОН в РВВ

07. Трансляция программы

PUSH Rr

Сохранение байта в стеке

29. Стековая память и подпрограммы (Project_12)

POP Rd

Извлечение байта из стека

 

Группа команд передачи управления по условию

Мнемоника

Описание

Видеоурок

CPSE Rd, Rr

Сравнение и пропуск следующей команды при равенстве

23. Команды передачи управления по условию (Project_9)

 

SBRC Rr, b

Пропуск следующей команды, если разряд РОН сброшен (b = 0…7)

SBRS Rr, b

Пропуск следующей команды, если разряд РОН установлен (b = 0…7)

SBIC P, b

Пропуск следующей команды, если разряд РВВ сброшен (b = 0…7)

SBIS P, b

Пропуск следующей команды, если разряд РВВ установлен (b = 0…7)

 

Группа команд передачи управления по условию

Мнемоника

Описание

Видеоурок

BRBC s, A

Переход, если флаг s регистра SREG сброшен

23. Команды передачи управления по условию (Project_9)

BRBS s, A

Переход, если флаг s регистра SREG установлен

BRCS A

Переход по переносу

25. Команды условного перехода

BRCC A

Переход, если нет переноса

BREQ A

Переход по условию «равно»

BRNE A

Переход по условию «неравно»

BRSH A

Переход по условию «больше или равно»

23. Команды передачи управления по условию (Project_9)

BRLO A

Переход по условию «меньше»

BRMI A

Переход по условию «отрицательное значение»

BRPL A

Переход по условию «положительное значение»

BRGE A

Переход по условию «больше или равно» (со знаком)

BRLT A

Переход по условию «меньше» (со знаком)

BRHS A

Переход по половинному переносу

BRHC A

Переход, если нет половинного переноса

BRTS A

Переход, если флаг T установлен

BRTC A

Переход, если флаг T сброшен

BRVS A

Переход по переполнению дополнительного кода

BRVC A

Переход, если нет переполнения дополнительного кода

BRID A

Переход, если прерывания запрещены

BRIE A

Переход, если прерывания разрешены

 

Группа команд управления системой

Мнемоника

Описание

Видеоурок

NOP

Нет операции

17. Новые команды ассемблера (Project_4)

WDR

Сброс сторожевого таймера

40. Сторожевой таймер

 

Директивы Ассемблера

Директива

Описание

Видеоурок

.equ

Задать константу

16. Чтение из портов микроконтроллера

.def

Назначить регистру имя

.include

Подключить файл

32. Макроопределения ассемблера, подключение внешних файлов, команды условного ассемблирования

.org

Установить положение в сегменте

28. Запись и чтение памяти данных (Project_11)

.db

Определить байт константу во FLASH или EEPROM

31. Чтение байт из памяти программ

.dw

Определить 16-битное слово во FLASH или EEPROM

.byte

Задать имя одному или нескольким байтам в памяти данных

28. Запись и чтение памяти данных (Project_11)

.cseg

Выбор сегмента памяти программ (FLASH-памяти)

.dseg

Выбор сегмента памяти данных (SRAM)

.eseg

Выбор сегмента памяти EEPROM

38.1 Основные сведения о EEPROM– памяти (EEPROM)

.macro

Начало макроса

32. Макроопределения ассемблера, подключение внешних файлов, команды условного ассемблирования (Macros_and_Lib)

.endm

Конец макроса

 

Выражения ассемблера

Выражения ассемблера делятся на операнды, операции и функции

Операнды

Операнд

Описание

Видеоурок

метки

Представляют собой числа, равные адресу в программной памяти.

31. Чтение байт из памяти программ

PC

ProgramCounter – число, равное текущему состоянию программного счетчика.

24. Команды безусловного перехода

“string”

Строка с текстом. Текст записывается в двойных кавычках. В программную память записывается в виде кодов ASCII.

31. Чтение байт из памяти программ

‘A’

Символ в одинарных кавычках. В программную память записывается в виде кодов ASCII.

Функции

Функции

Описание

Видеоурок

Low(x)

Возвращает младший байт числа x

18. Выражения языка ассемблера

High(x)

Возвращает старший байт числа x

Byte1 (x)

Возвращает первый байт числа x

Byte2 (x)

Возвращает второй байт числа x

Byte3 (x)

Возвращает третий байт числа x

Byte4 (x)

Возвращает четвертый байт числа x

Exp2 (x)

Возвращает 2x

Log2 (x)

Возвращает целую часть Log2 (x)

Операции

Операции

Описание

Видеоурок

~

Поразрядное инвертирование (НЕ)

18. Выражения языка ассемблера

&

Поразрядное умножение (И)

|

Поразрядное сложение (ИЛИ)

^

Поразрядноеисключающее ИЛИ

+, — , *, /

Сложение, вычитание, умножение, деление.

>> 

Сдвиг на один разряд вправо

<< 

Сдвиг на один разряд влево

<, <=, >, >=

Меньше, меньше или равно, больше, больше или равно.

==, !=

Равно, неравно

!

Возвращает 1, если выражение равно нулю и 0, если выражение не равно нулю.

Если найдутся какие-нибудь несоответствия или замечания, то обязательно пишите в комментариях.