Справка по Ассемблеру для AVR

         

Инструкции передачи данных




Мнемоника Операнды Описание Операция Флаги Циклы
MOV , Скопировать регистр Rd = Rr None 1
MOVW , Скопировать пару регистров Rd+1:Rd = Rr+1:Rr, r,d even None 1
LDI , Загрузить константу Rd = K None 1
LDS , Прямая загрузка Rd = (k) None 2*
LD , Косвенная загрузка Rd = (X) None 2*
LD , Косвенная загрузка с пост-инкрементом Rd = (X), X=X+1 None 2*
LD , Косвенная загрузка с пре-декрементом X=X-1, Rd = (X) None 2*
LD , Косвенная загрузка Rd = (Y) None 2*
LD , Косвенная загрузка с пост-инкрементом Rd = (Y), Y=Y+1 None 2*
LD , Косвенная загрузка с пре-декрементом Y=Y-1, Rd = (Y) None 2*
LDD ,+ Косвенная загрузка с замещением Rd = (Y+q) None 2*
LD , Косвенная загрузка Rd = (Z) None 2*
LD , Косвенная загрузка с пост-инкрементом Rd = (Z), Z=Z+1 None 2*
LD , Косвенная загрузка с пре-декрементом Z=Z-1, Rd = (Z) None 2*
LDD ,+ Косвенная загрузка с замещением Rd = (Z+q) None 2*
STS k,Rr Прямое сохранение (k) = Rr None 2*
ST , Косвенное сохранение (X) = Rr None 2*
ST , Косвенное сохранение с пост-инкрементом (X) = Rr, X=X+1 None 2*
ST , Косвенное сохранение с пре-декрементом X=X-1, (X)=Rr None 2*
ST , Косвенное сохранение (Y) = Rr None 2*
ST , Косвенное сохранение с пост-инкрементом (Y) = Rr, Y=Y+1 None 2
ST , Косвенное сохранение с пре-декрементом Y=Y-1, (Y) = Rr None 2
ST +, Косвенное сохранение с замещением (Y+q) = Rr None 2
ST , Косвенное сохранение (Z) = Rr None 2
ST , Косвенное сохранение с пост-инкрементом (Z) = Rr, Z=Z+1 None 2
ST , Косвенное сохранение с пре-декрементом Z=Z-1, (Z) = Rr None 2
ST +, Косвенное сохранение с замещением (Z+q) = Rr None 2
LPM Нет Загрузка из программной памяти R0 = (Z) None 3
LPM , Загрузка из программной памяти Rd = (Z) None 3
LPM , Загрузка из программной памяти с пост-инкрементом Rd = (Z), Z=Z+1 None 3
ELPM Нет Расширенная загрузка из программной памяти R0 = (RAMPZ:Z) None 3
ELPM , Расширенная загрузка из программной памяти Rd = (RAMPZ:Z) None 3
ELPM , Расширенная загрузка из программной памяти с пост-инкрементом Rd = (RAMPZ:Z), Z = Z+1 None 3
SPM Нет Сохранение в программной памяти (Z) = R1:R0 None -
ESPM Нет Расширенное сохранение в программной памяти (RAMPZ:Z) = R1:R0 None -
IN , Чтение порта Rd = P None 1
OUT , Запись в порт P = Rr None 1
PUSH Занесение регистра в стек STACK = Rr None 2
POP Извлечение регистра из стека Rd = STACK None 2

* Для операций доступа к данным количество циклов указано при условии доступа к внутренней памяти данных, и не корректно при работе с внешним ОЗУ. Для инструкций LD, ST, LDD, STD, LDS, STS, PUSH и POP, необходимо добавить один цикл плюс по одному циклу для каждого ожидания.



Содержание раздела