Команды MOV, MOVW, LD, LDI, LDD, LDS, ST, STD, STS, LPM, SPM, IN, OUT, PUSH и POP позволяют пересылать данные между регистрами общего назначения (РОН) и регистрами ввода/вывода (РВВ), памятью данных (ОЗУ), памятью программ FLASH, стеком.


Копирование РОН

MOV Rd, Rr

Копирует содержимое регистра Rr в регистр Rd

MOVW Rd, Rr

Копирует содержимое регистровой пары Rr+1:Rr в регистровую пару Rd+1:Rd. Rd и Rr четные регистры.


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

LDI Rd, K

Загружает 8-битное число в РОН. Работает только со старшей половиной регистров общего назначения.


Загрузка в РОН из ОЗУ

LD Rd, X | LD Rd,Y | LD Rd, Z

Косвенное чтение. Загружает в РОН один байт из ОЗУ по адресу который содержится в индексном регистре.

LD Rd, X+ | LD Rd, Y+ | LD Rd, Z+

Косвенное чтение с постинкрементом. Загружает в РОН один байт из ОЗУ по адресу который содержится в индексном регистре. После пересылки байта содержимое индексного регистра увеличивается на 1.

LD Rd, -X | LD Rd, -Y | LD Rd, -Z

Косвенное чтение с преддекрементом. Загружает в РОН один байт из ОЗУ по адресу который содержится в индексном регистре, причем до пересылки байта содержимое индексного регистра уменьшается на 1.

LDD Rd, Y+q | LDD Rd, Z+q

Косвенное относительное чтение. Загружает в РОН один байт из ОЗУ по адресу который вычисляется как сумма содержимого индексного регистра и константы q.

LDS Rd, k

Непосредственное чтение. Загружает в РОН один байт из ОЗУ по адресу заданному двухбайтовой константой k.


Запись в ОЗУ из РОН

ST X, Rr | ST Y, Rr | ST Z, Rr

Косвенная запись. Сохраняет содержимое РОН в памяти данных по адресу который содержится в индексном регистре.

ST X+, Rr | ST Y+, Rr | ST Z+, Rr

Косвенная запись с постинкрементом. Сохраняет содержимое РОН в памяти данных по адресу который содержится в индексном регистре. После пересылки байта содержимое индексного регистра увеличивается на 1.

ST -X, Rr | ST -Y, Rr | ST -Z, Rr

Косвенная запись с преддекрементом. Сохраняет содержимое РОН в памяти данных по адресу который содержится в индексном регистре, причем до пересылки байта содержимое индексного регистра уменьшается на 1.

STD Y+q, Rr | LDD Z+q, Rr

Косвенная относительная запись. Сохраняет содержимое РОН в памяти данных по адресу который вычисляется как сумма содержимого индексного регистра и константы q.

STS k, Rr

Непосредственная запись. Сохраняет содержимое РОН в памяти данных по адресу заданному двухбайтовой константой k.


Чтение и запись Flash памяти

LPM

Загружает один байт из адресного пространства памяти программ в регистр общего назначения R0. Адрес ячейки памяти, к которой производится обращение, содержится в индексном регистре Z.

LPM Rd, Z

Загружает один байт из адресного пространства памяти программ в регистр общего назначения Rd. Адрес ячейки памяти, к которой производится обращение, содержится в индексном регистре Z.

LPM Rd, Z+

Загружает один байт из адресного пространства памяти программ в регистр общего назначения Rd. Адрес ячейки памяти, к которой производится обращение, содержится в индексном регистре Z. После пересылки байта содержимое регистра Z увеличивается на 1.

SPM

Эта команда может выполнять стирание отдельной страницы памяти программ, запись страницы памяти программ, а также изменение ячеек защиты блока загрузчика.


Чтение и запись РВВ

IN Rd, A

Пересылка значения из РВВ в РОН.

OUT A, Rr

Пересылка значения из РОН в РВВ.


Стековые операции

PUSH Rr

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

POP Rd

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