Краткое описание набора инструкций 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Краткое описание набора инструкций



Мнемо-код Опер-анды Описание Операция Флаги Кол циклов
Арифметические и логические инструкции
ADD Rd, Rr Сложение без учета переноса Rd Rd+Rr Z,C,N,V,S,H  
ADC Rd, Rr Сложение с учетом переноса Rd Rd+Rr+C Z,C,N,V,S,H  
ADIW Rd, K Сложение слова с константой Rd Rd+1:Rd+K Z, C, N, V, S  
SUB Rd, Rr Вычитание без учета переноса Rd Rd-Rr Z,C,N,V,S,H  
SUBI Rd, K Вычитание константы Rd Rd-K Z,C,N,V,S,H  
SBC Rd, Rr Вычитание с учетом переноса Rd Rd-Rr-C Z,C,N,V,S,H  
SBCI Rd, K Вычитание константы с учетом переноса Rd Rd-K-C Z,C,N,V,S,H  
SBIW Rd, K Вычитание константы из слова Rd+1:Rd Rd+1:Rd-K Z, C, N, V, S  
AND Rd, Rr Логическое И Rd Rd·Rr Z, N, V, S  
ANDI Rd, K Логическое И с константой Rd Rd·K Z, N, V, S  
OR Rd, Rr Логическое ИЛИ Rd Rd v Rr Z, N, V, S  
ORI Rd, K Логическое ИЛИ с константой Rd Rd v K Z, N, V, S  
EOR Rd, Rr Исключающее ИЛИ Rd Rd Rr Z, N, V, S  
COM Rd Дополнение до единицы Rd $FF-Rd Z, C, N, V, S  
NEG Rd Дополнение до двух Rd $00-Rd Z,C,N,V,S,H  
SBR Rd, K Установка бита (бит) регистра Rd Rd v K Z, N, V, S  
CBR Rd, K Сброс бита (бит) регистра Rd Rd·($FF-K) Z, N, V, S  
INC Rd Инкремент Rd Rd+1 Z, N, V, S  
DEC Rd Декремент Rd Rd-1 Z, N, V, S  
TST Rd Проверка на ноль или минус Rd Rd·Rd Z, N, V, S  
CLR Rd Сброс регистра Rd Rd Rd Z, N, V, S  
SER Rd Установка регистра Rd $FF Нет  
MUL Rd, Rr Умножение беззнаковых чисел R1:R0 Rd x Rr (UU) Z, C  
MULS Rd, Rr Умножение знаковых чисел R1:R0 Rd x Rr (SS) Z, C  
MULSU Rd, Rr Умножение знакового числа на беззнаковое R1:R0 Rd x Rr (SU) Z, C  
FMUL Rd, Rr Дробное умножение беззнаковых чисел R1:R0 Rd x Rr<<1 (UU) Z, C  
FMULS Rd, Rr Дробное умножение знаковых чисел R1:R0 Rd x Rr<<1 (SS) Z, C  
FMULSU Rd, Rr Дробное умножение знакового числа на беззнаковое R1:R0 Rd x Rr<<1 (SU) Z, C  
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 Нет  
IJMP   Косвенный переход по Z-указателю PC(15:0) Z PC(21:16) 0 Нет  
EIJMP   Расширенный косвенный переход по Z-указателю PC(15:0) Z PC(21:16) EIND Нет  
JMP k Переход PC k Нет  
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  
CPC Rd, Rr Сравнение с переносом Rd-Rr-C Z,C,N,V,S,H  
CPI Rd, K Сравнение с константой Rd-K Z,C,N,V,S,H  
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 Нет  
MOVW Rd, Rr Копирование регистровой пары Rd+1:Rd Rr+1:Rr Нет  
LDI Rd, K Запись константы в регистр Rd K Нет  
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) Нет  
LPM Rd, Z Чтение памяти программ Rd (Z) Нет  
LPM Rd, Z+ Чтение памяти программ с последующим инкрементом Rd (Z) Z Z+1 Нет  
ELPM Rd, Z Расширенное чтение памяти программ Rd (RAMPZ:Z) Нет  
ELPM Rd, Z+ Расширенное чтение памяти программ с последующим инкрементированием Rd (RAMPZ:Z) Z Z+1 Нет  
SPM   Запись в память программ (RAMPZ:Z) R1:R0 Нет -
SPM Z+ Запись в память программ с последующим инкрементированием на 2 (RAMPZ:Z) R1:R0 Z Z+2 Нет -
IN Rd, A Чтение памяти ввода-вывода Rd I/O(A) Нет  
OUT A, Rr Запись в память ввода-вывода I/O(A) Rr Нет  
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  
LSR1 Rd Логический сдвиг вправо Rd(n) Rd(n+1); Rd(7) 0; C Rd(0) Z, C, N, V  
ROL Rd Циклический сдвиг влево через перенос Rd(0) C; Rd(n+1) Rd(n); C Rd(7) Z, C, N, V, H  
ROR Rd Циклический сдвиг вправо через перенос Rd(7) C Rd(n) Rd(n+1) C Rd(0) Z, C, N, V  
ASR Rd Арифметический сдвиг вправо Rd(n) Rd(n+1), n=0…6 Z, C, N, V  
SWAP Rd Обмен тетрад Rd(3…0) Rd(7…4) Нет  
BSET s Установка флага SREG(s) 1 SREG(s)  
BCLR s Сброс флага SREG(s) 0 SREG(s)  
SBI A, b Установка бита в регистре ввода-вывода I/O(A, b) 1 Нет  
CBI A, b Сброс бита в регистре ввода-вывода I/O(A, b) 0 Нет  
BST Rr, b Запись бита регистра в бит Т T Rr(b) Т  
BLD Rd, b Чтение бита Т в бит регистра Rr(b) T Нет  
SEC   Установка флага переноса C 1 C  
CLC   Сброс флага переноса C 0 C  
SEN   Установка флага минуса N 1 N  
CLN   Сброс флага минуса N 0 N  
SEZ   Установка флага нуля Z 1 Z  
CLZ   Сброс флага нуля Z 0 Z  
SEI   Общее разрешение прерываний I 1 I  
CLI   Общий запрет прерываний I 0 I  
SES   Установка флага знакового сравнения S 1 S  
CLS   Сброс флага знакового сравнения S 0 S  
SEV   Установка флага переполнения дополнения до двух V 1 V  
CLV   Сброс флага переполнения дополнения до двух V 0 V  
SET   Установка бита Т в SREG T 1 T  
CLT   Сброс бита Т в SREG T 0 T  
SEH   Установка флага полупереноса в SREG H 1 H  
CLH   Сброс флага полупереноса в SREG H 0 H  
Инструкции управления микроконтроллером
BREAK   Останов см. описание Нет  
NOP   Нет операции   Нет  
SLEEP   Переход в экономичный режим работы см. описание Нет  
WDR   Сброс сторожевого таймера Нет  

Прим.:

1. Указанное количество циклов распространяется только на доступ к внутренней памяти и не действительно для доступов, выполняющихся через интерфейс внешней памяти.

2. На доступ к внутреннему SRAM требуется один дополнительный цикл.

 

Приложение А. Временные диаграммы модуля EBI



Поделиться:


Последнее изменение этой страницы: 2016-12-30; просмотров: 214; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.218.129.100 (0.008 с.)