BRNE.narod.ru

 
Главная | Проекты | Download | ГостеваяE-mail    
XMEGA Instruction Set Summary

Mnemonics Operands Description Operation Flags #Clocks

Арифметические и логические инструкции

ADD Rd, Rr Сложение без учета переноса Rd ← Rd+Rr Z, C, N, V, S, H 1
ADC Rd, Rr Сложение с учетом переноса Rd ← Rd+Rr+C Z, C, N, V, S, H 1
ADIW Rd, K Сложение слова с константой Rd ← Rd+1:Rd+K Z, C, N, V, S 2
SUB Rd, Rr Вычитание без учета переноса Rd ← Rd-Rr Z, C, N, V, S, H 1
SUBI Rd, K Вычитание константы Rd ← Rd-K Z, C, N, V, S, H 1
SBC Rd, Rr Вычитание с учетом переноса Rd ← Rd-Rr-C Z, C, N, V, S, H 1
SBCI Rd, K Вычитание константы с учетом переноса Rd ← Rd-K-C Z, C, N, V, S, H 1
SBIW Rd, K Вычитание константы из слова Rd+1:Rd ← Rd+1:Rd-K Z, C, N, V, S 2
AND Rd, Rr Логическое И Rd ← Rd•Rr Z, N, V, S 1
ANDI Rd, K Логическое И с константой Rd ← Rd•K Z, N, V, S 1
OR Rd, Rr Логическое ИЛИ Rd ← Rd v Rr Z, N, V, S 1
ORI Rd, K Логическое ИЛИ с константой Rd ← Rd v K Z, N, V, S 1
EOR Rd, Rr Исключающее ИЛИ Rd ← Rd ⊕ Rr Z, N, V, S 1
COM Rd Дополнение до единицы Rd ← $FF-Rd Z, C, N, V, S 1
NEG Rd Дополнение до двух Rd ← $00-Rd Z, C, N, V, S, H 1
SBR Rd, K Установка бита (бит) регистра Rd ← Rd v K Z, N, V, S 1
CBR Rd, K Сброс бита (бит) регистра Rd ← Rd•($FF-K) Z, N, V, S 1
INC Rd Инкремент Rd ← Rd+1 Z, N, V, S 1
DEC Rd Декремент Rd ← Rd-1 Z, N, V, S 1
TST Rd Проверка на ноль или минус Rd ← Rd•Rd Z, N, V, S 1
CLR Rd Сброс регистра Rd ← Rd ⊕ Rd Z, N, V, S 1
SER Rd Установка регистра Rd ← $FF Нет 1
MUL Rd, Rr Умножение беззнаковых чисел R1:R0 ← Rd x Rr (UU) Z, C 2
MULS Rd, Rr Умножение знаковых чисел R1:R0 ← Rd x Rr (SS) Z, C 2
MULSU Rd, Rr Умножение знакового числа на беззнаковое R1:R0 ← Rd x Rr (SU) Z, C 2
FMUL Rd, Rr Дробное умножение беззнаковых чисел R1:R0 ← Rd x Rr<<1 (UU) Z, C 2
FMULS Rd, Rr Дробное умножение знаковых чисел R1:R0 ← Rd x Rr<<1 (SS) Z, C 2
FMULSU Rd, Rr Дробное умножение знакового числа на беззнаковое R1:R0 ← Rd x Rr<<1 (SU) Z, C 2
DES K Шифрование данных R15:R0 ← ENCRYPT(R15:R0,K), если H=0,
R15:R0 ← DECRYPT(R15:R0,K), если H=1
  1/2

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

RJMP k Относительный переход PC ← PC+k+1 Нет 2
IJMP   Косвенный переход по Z-указателю PC(15:0) ← Z
PC(21:16) ← 0
Нет 2
EIJMP   Расширенный косвенный переход по Z-указателю PC(15:0) ← Z
PC(21:16) ← EIND
Нет 2
JMP k Переход PC ← k Нет 3
RCALL k Относительный вызов подпрограммы PC ← PC+k+1 Нет 2/3(1)
ICALL   Косвенный вызов подпрограммы по Z-указателю PC(15:0) ← Z
PC(21:16) ← 0
Нет 2/3(1)
EICALL   Расширенный косвенный вызов подпрограммы по Z-указателю PC(15:0) ← Z
PC(21:16) ← EIND
Нет 3(1)
CALL k Вызов подпрограммы PC ← k Нет 3/4(1)
RET   Выход из подпрограммы PC ← STACK Нет 4/5(1)
RETI   Выход из процедуры обработки прерывания PC ← STACK I 4/5(1)
CPSE Rd, Rr Сравнение и пропуск, если равно PC ← PC+2 или 3, если Rd=Rr Нет 1/2/3
CP Rd, Rr Сравнение Rd-Rr Z, C, N, V, S, H 1
CPC Rd, Rr Сравнение с переносом Rd-Rr-C Z, C, N, V, S, H 1
CPI Rd, K Сравнение с константой Rd-K Z, C, N, V, S, H 1
SBRC Rr,b Пропуск, если бит регистра равен нулю PC ← PC+2 или 3, если Rr(b)=0 Нет 1/2/3
SBRS Rr,b Пропуск, если бит регистра равен единице PC ← PC+2 или 3, если Rr(b)=1 Нет 1/2/3
SBIC A, b Пропуск, если бит регистра в/в равен нулю PC ← PC+2 или 3, если I/O(A, b)=0 Нет 2/3/4
SBIS A, b Пропуск, если бит регистра в/в равен единице PC ← PC+2 или 3, если I/O(A, b)=1 Нет 2/3/4
BRBS s, k Переход, если флаг статуса равен единице PC ← PC+k+1, если SREG(s) = 1 Нет 1/2
BRBC s, k Переход, если флаг статуса равен нулю PC ← PC+k+1, если SREG(s) = 0 Нет 1/2
BREQ k Переход, если равно PC ← PC+k+1, если Z = 1 Нет 1/2
BRNE k Переход, если не равно PC ← PC+k+1, если Z = 0 Нет 1/2
BRCS k Переход, если флаг переноса равен единице PC ← PC+k+1, если C = 1 Нет 1/2
BRCC k Переход, если флаг переноса равен нулю PC ← PC+k+1, если C = 0 Нет 1/2
BRSH k Переход, если больше или равно PC ← PC+k+1, если C = 0 Нет 1/2
BRLO k Переход, если меньше PC ← PC+k+1, если C = 1 Нет 1/2
BRMI k Переход, если минус PC ← PC+k+1, если N = 1 Нет 1/2
BRPL k Переход, если плюс PC ← PC+k+1, если N = 0 Нет 1/2
BRGE k Переход, если больше или равно с учетом знака PC ← PC+k+1, если N ⊕ V = 0 Нет 1/2
BRLT k Переход, если меньше с учетом знака PC ← PC+k+1, если N ⊕ V = 1 Нет 1/2
BRHS k Переход, если установлен флаг полупереноса PC ← PC+k+1, если H = 1 Нет 1/2
BRHC k Переход, если сброшен флаг полупереноса PC ← PC+k+1, если H = 0 Нет 1/2
BRTS k Переход, если установлен флаг Т PC ← PC+k+1, если Т = 1 Нет 1/2
BRTC k Переход, если сброшен флаг Т PC ← PC+k+1, если Т = 0 Нет 1/2
BRVS k Переход, если установлен флаг переполнения PC ← PC+k+1, если V = 1 Нет 1/2
BRVC k Переход, если сброшен флаг переполнения PC ← PC+k+1, если V = 0 Нет 1/2
BRIE k Переход, если прерывания разрешены PC ← PC+k+1, если I = 1 Нет 1/2
BRID k Переход, если прерывания запрещены PC PC+k+1, если I = 0 Нет 1/2

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

MOV Rd, Rr Копирование регистра Rd ← Rr Нет 1
MOVW Rd, Rr Копирование регистровой пары Rd+1:Rd ← Rr+1:Rr Нет 1
LDI Rd, K Запись константы в регистр Rd ← K Нет 1
LDS Rd, k Прямое чтение из памяти данных в регистр Rd ← (k) Нет 2(1)(2)
LD Rd, X Косвенное чтение Rd ← (X) Нет 1(1)(2)
LD Rd, X+ Косвенное чтение с последующим инкрементом Rd (X)
X X+1
Нет 1(1)(2)
LD Rd, -X Косвенное чтение с предварительным декрементом X ← X-1 ← X-1
Rd ← X ← (X)
Нет 2(1)(2)
LD Rd, Y Косвенное чтение Rd ← (Y) Нет 1(1)(2)
LD Rd, Y+ Косвенное чтение с последующим инкрементом Rd ← (Y)
Y ← Y+1
Нет 1(1)(2)
LD Rd, -Y Косвенное чтение с предварительным декрементом Y ← Y-1 ← Y-1
Rd ← Y ← (Y)
Нет 2(1)(2)
LDD Rd,Y+q Косвенное чтение со смещением Rd ← (Y+q) Нет 2(1)(2)
LD Rd, Z Косвенное чтение Rd ← (Z) Нет 1(1)(2)
LD Rd, Z+ Косвенное чтение с последующим инкрементом Rd ← (Z)
Z ← Z+1
Нет 1(1)(2)
LD Rd, -Z Косвенное чтение с предварительным декрементом Z ← Z-1 ← Z-1
Rd ← Z ← (Z)
Нет 2(1)(2)
LDD Rd, Z+q Косвенное чтение со смещением Rd ← (Z+q) Нет 2(1)(2)
STS k, Rr Прямая запись в память данных (k) ← Rr Нет 2(1)
ST X, Rr Косвенная запись (X) ← Rr Нет 1(1)
ST X+, Rr Косвенная запись с последующим инкрементом (X) ← Rr
X ← X+1
Нет 1(1)
ST -X, Rr Косвенная запись с предварительным декрементом X ← X-1
(X) ← Rr
Нет 2(1)
ST Y, Rr Косвенная запись (Y) ← Rr Нет 1(1)
ST Y+, Rr Косвенная запись с последующим инкрементом (Y) ← Rr
Y ← Y+1
Нет 1(1)
ST -Y, Rr Косвенная запись с предварительным декрементом Y ← Y-1
(Y) ← Rr
Нет 2(1)
STD Y+q, Rr Косвенная запись со смещением (Y+q) ← Rr Нет 2(1)
ST Z, Rr Косвенная запись (Z) ← Rr Нет 1(1)
ST Z+, Rr Косвенная запись с последующим инкрементом (Z) ← Rr
Z ← Z+1
Нет 1(1)
ST -Z, Rr Косвенная запись с предварительным декрементом Z ← Z-1
(Z) ← Rr
Нет 2(1)
STD Z+q, Rr Косвенная запись со смещением (Z+q) ← Rr Нет 2(1)
LPM   Чтение памяти программ R0 ← (Z) Нет 3
LPM Rd, Z Чтение памяти программ Rd ← (Z) Нет 3
LPM Rd, Z+ Чтение памяти программ с последующим инкрементом Rd ← (Z)
Z ← Z+1
Нет 3
ELPM Rd, Z Расширенное чтение памяти программ Rd ← (RAMPZ:Z) Нет 3
ELPM Rd, Z+ Расширенное чтение памяти программ с последующим инкрементированием Rd ← (RAMPZ:Z)
Z ← Z+1
Нет 3
SPM   Запись в память программ (RAMPZ:Z) ← R1:R0 Нет -
SPM Z+ Запись в память программ с последующим инкрементированием на 2 (RAMPZ:Z) ← R1:R0
Z ← Z+2
Нет -
IN Rd, A Чтение памяти ввода-вывода Rd ← I/O(A) Нет 1
OUT A, Rr Запись в память ввода-вывода I/O(A) ← Rr Нет 1
PUSH Rr Поместить регистр в стек STACK ← Rr Нет 1(1)
POP Rd Извлечение регистра из стека Rd ← STACK Нет 2(1)

Операции над битами

LSL Rd Логический сдвиг влево Rd(n+1) ← Rd(n)
Rd(0) ← 0
C ← Rd(7)
Z, C, N, V, H 1
LSR Rd Логический сдвиг вправо Rd(n) ← Rd(n+1)
Rd(7) ← 0
C ← Rd(0)
Z, C, N, V 1
ROL Rd Циклический сдвиг влево через перенос Rd(0) ← C
Rd(n+1) ← Rd(n)
C ← Rd(7)
Z, C, N, V, H 1
ROR Rd Циклический сдвиг вправо через перенос Rd(7) ← C
Rd(n) ← Rd(n+1)
C ← Rd(0)
Z, C, N, V 1
ASR Rd Арифметический сдвиг вправо Rd(n) ← Rd(n+1), n=0…6 Z, C, N, V 1
SWAP Rd Обмен тетрад Rd(3…0) ↔ Rd(7…4) Нет 1
BSET s Установка флага SREG(s) ← 1 SREG(s) 1
BCLR s Сброс флага SREG(s) ← 0 SREG(s) 1
SBI A, b Установка бита в регистре ввода-вывода I/O(A, b) ← 1 Нет 1
CBI A, b Сброс бита в регистре ввода-вывода I/O(A, b) ← 0 Нет 1
BST Rr, b Запись бита регистра в бит Т T ← Rr(b) Т 1
BLD Rd, b Чтение бита Т в бит регистра Rr(b) ← T Нет 1
SEC   Установка флага переноса C ← 1 C 1
CLC   Сброс флага переноса C ← 0 C 1
SEN   Установка флага минуса N ← 1 N 1
CLN   Сброс флага минуса N ← 0 N 1
SEZ   Установка флага нуля Z ← 1 Z 1
CLZ   Сброс флага нуля Z ← 0 Z 1
SEI   Общее разрешение прерываний I ← 1 I 1
CLI   Общий запрет прерываний I ← 0 I 1
SES   Установка флага знакового сравнения S ← 1 S 1
CLS   Сброс флага знакового сравнения S ← 0 S 1
SEV   Установка флага переполнения дополнения до двух V ← 1 V 1
CLV   Сброс флага переполнения дополнения до двух V ← 0 V 1
SET   Установка бита Т в SREG T ← 1 T 1
CLT   Сброс бита Т в SREG T ← 0 T 1
SEH   Установка флага полупереноса в SREG H ← 1 H 1
CLH   Сброс флага полупереноса в SREG H ← 0 H 1

Инструкции управления микроконтроллером

BREAK   Останов (см. описание набора инструкций) Нет 1
NOP   Нет операции   Нет 1
SLEEP   Переход в экономичный режим работы (см. описание набора инструкций) Нет 1
WDR   Сброс сторожевого таймера (см. описание набора инструкций) Нет 1

Hosted by uCoz