Разделы

В сети

Пользователей: 205
Из них просматривают:
Аналоги: 75. Даташиты: 73. Инструкции: 2. Новости: 10. Остальное: 6. Ошибки: 3. Программы: 2. Производители: 1. Расчёты: 3. Теги: 1. Форум: 29.
Участников: 3
Гостей: 202

Google , tech14 , Яндекс , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Контроллеры

ATmega128. Набор инструкций

Написал MACTEP в 31.03.2010 0:10:00 (5353 прочтений)

Набор инструкций



 

Мнемокод Операнды Описание Действие Флаги Кол. машинных циклов
Арифметические и логические инструкции
ADD1 Rd, Rr Сложить два регистра Rd <— Rd + Rr Z,C,N,V,H 1
ADC Rd, Rr Сложить два регистра с переносом Rd <— Rd + Rr + C Z,C,N,V,H 1
ADIW Rdl,K Сложить слово с константой Rdh:Rdl <— Rdh:Rdl + K Z,C,N,V,S 2
SUB Rd, Rr Вычесть два регистра Rd <— Rd - Rr Z,C,N,V,H 1
SUBI Rd, K Вычесть константу из регистра Rd <— Rd - K Z,C,N,V,H 1
SBC Rd, Rr Вычесть два регистра с учетом переноса Rd <— Rd - Rr - C Z,C,N,V,H 1
SBCI Rd, K Вычесть константу из регистра с учетом переноса Rd <— Rd - K - C Z,C,N,V,H 1
SBIW Rdl,K Вычесть константу из слова Rdh:Rdl <— Rdh:Rdl-K Z,C,N,V,S 2
AND Rd, Rr Логическое И между регистрами Rd <— Rd · Rr Z,N,V 1
ANDI Rd, K Логическое И между регистром и константой Rd <— Rd · K Z,N,V 1
OR Rd, Rr Логическое ИЛИ между регистрами Rd <— Rd v Rr Z,N,V 1
ORI Rd, K Логическое ИЛИ между регистром и константой Rd <— Rd v K Z,N,V 1
EOR Rd, Rr Искл. ИЛИ между регистрами Rd <— Rd Е Rr Z,N,V 1
COM Rd Дополнение до 0b11111111 ($FF), инверсия Rd <— $FF - Rd Z,C,N,V 1
NEG Rd Дополнение до 0b00000000 ($00) Rd <— $00 - Rd Z,C,N,V,H 1
SBR Rd, K Установка бит (бита) в регистре Rd <— Rd v K Z,N,V 1
CBR Rd, K Сброс бит (бита) в регистре Rd <— Rd · ($FF - K) Z,N,V 1
INC Rd Инкремент Rd <— Rd + 1 Z,N,V 1
DEC Rd Декремент Rd <— Rd - 1 Z,N,V 1
TST Rd Проверка на ноль или минус Rd <— Rd . Rd Z,N,V 1
CLR Rd Сброс регистра Rd <— Rd Е Rd Z,N,V 1
SER Rd Установка регистра Rd <— $FF Нет 1
MUL Rd, Rr Умножение без знака R1:R0 <— RdxRr Z, C 2
MULS Rd, Rr Умножение со знаком R1:R0 <— RdxRr Z, C 2
MULSU Rd, Rr Умножение знакового с беззнаковым числом R1:R0 <— Rd x Rr Z, C 2
FMUL Rd. Rr Дробное умножение без знака R1:R0 <— (RdxRr) << 1 Z, C 2
FMULS Rd, Rr Дробное умножение со знаком R1:R0 <— (RdxRr) << 1 Z, C 2
FMULSU Rd, Rr Дробное умножение знакового с беззнаковым числом R1:R0 <— (RdxRr) << 1 Z, C 2
Инструкции перехода
RJMP k Относительный переход PC <— PC + k +1 Нет 2
IJMP   Косвенный переход по указателю (Z) PC <— Z Нет 2
JMP k Безусловный переход PC <— k Нет 3
RCALL k Относительный вызов процедуры PC <— PC + k + 1 Нет 3
ICALL   Косвенный вызов процедуры по указателю (Z) PC <— Z Нет 3
CALL k Безусловный вызов процедуры PC <— k Нет 4
RET   Возврат из подпрограммы PC <— STACK Нет 4
RETI   Возврат из прерывания PC <— STACK I 4
CPSE Rd,Rr Сравнение и пропуск, если равно if (Rd = Rr) PC <— PC + 2 или 3 Нет 1/2/3
CP Rd,Rr Сравнение Rd-Rr Z, N,V,C,H 1
CPC Rd,Rr Сравнение с учетом переноса Rd - Rr-C Z, N,V,C,H 1
CPI Rd,K Сравнение регистра с константой Rd-K Z, N,V,C,H 1
SBRC Rr,b Пропуск, если бит в регистре сброшен if (Rr(b)=O)PC <— PC + 2 или 3 Нет 1 /2/3
SBRS Rr, b Пропуск, если бит в регистре установлен if (Rr(b)=1)PC <— PC+ 2 или 3 Нет 1/2/3
SBIC P, b Пропуск, если бит в регистре ввода-вывода сброшен if (P(b)=O)PC <— PC + 2 или 3 Нет 1 /2/3
SBIS P, b Пропуск, если бит в регистре ввода-вывода установлен if (P(b)=1)PC <— PC + 2 или 3 Нет 1 /2/3
BRBS s, k Переход, если флаг состояния установлен if (SREG(s) = 1) then PC <— PC+k + 1 Нет 1/2
BRBC s, k Переход, если флаг состояния сброшен if (SREG(s) = 0) then PC <— PC+k + 1 Нет 1 /2
BREQ k Переход, если равно if (Z = 1) then PC <— PC + k + 1 Нет 1 /2
BRNE k Переход, если не равно if (Z = 0) then PC <— PC + k + 1 Нет 1 /2
BRCS k Переход, если перенос установлен if (C = 1)then PC <— PC + k+ 1 Нет 1 /2
BRCC k Переход, если перенос сброшен if (C = 0) then PC <— PC + k + 1 Нет 1 /2
BRSH k Переход, если больше или равно if (C = 0) then PC <— PC + k + 1 Нет 1 /2
BRLO k Переход, если меньше if (C = 1) then PC <— PC + k+ 1 Нет 1 /2
BRMI k Переход, если минус if (N = 1)then PC <— PC + k + 1 Нет 1 /2
BRPL k Переход, если плюс if (N = 0) then PC <— PC + k + 1 Нет 1 /2
BRGE k Переход, если больше или равно с учетом знака if (N e V= 0) then PC <— PC + k + 1 Нет 1 /2
BRLT k Переход, если меньше нуля с учетом знака if (N e V= 1) then PC <— PC + k + 1 Нет 1 /2
BRHS k Переход, если флаг Н установлен if (H = 1)then PC <— PC + k + 1 Нет 1 /2
BRHC k Переход, если флаг Н сброшен if (H = 0) then PC <— PC + k + 1 Нет 1 /2
BRTS k Переход, если флаг Т установлен if (T = 1)then PC <— PC + k +1 Нет 1 /2
BRTC k Переход, если флаг Т сброшен if (T = 0) then PC <— PC + k + 1 Нет 1 /2
BRVS k Переход, если флаг V установлен if (V = 1)then PC <— PC + k+ 1 Нет 1 /2
BRVC k Переход, если флаг V сброшен if (V = 0) then PC <— PC + k + 1 Нет 1 /2
BRIE k Переход, если прерывания разрешены if ( I = 1)then PC <— PC + k + 1 Нет 1 /2
BRID k Переход, если прерывания запрещены if ( I = 0) then PC <— PC + k + 1 Нет 1 /2
Инструкции передачи данных
MOV Rd, Rr Запись из регистра в регистр Rd <— Rr Нет 1
MOVW Rd, Rr Перезапись слова между регистрами Rd+1:Rd <— Rr+1:Rr Нет 1
LDI Rd, K Запись константы в регистр Rd <— K Нет 1
LD Rd, X Косвенное считывание из памяти в регистр Rd <— (X) Нет 2
LD Rd, X+ Косвенное считывание из памяти в регистр и инкр. Rd <— (X), X <— X + 1 Нет 2
LD Rd,-X Предварительный декремент, а затем косвенное считывание из памяти в регистр X <— X - 1, Rd <— (X) Нет 2
LD Rd,Y Косвенное считывание из памяти в регистр Rd <— (Y) Нет 2
LD Rd, Y+ Косвенное считывание из памяти в регистр и инкр. Rd <— (Y), Y <— Y + 1 Нет 2
LD Rd,-Y Предварительный декремент, а затем косвенное считывание из памяти в регистр Y <— Y - 1, Rd <— (Y) Нет 2
LDD Rd,Y+q Косвенное считывание из памяти в регистр со смещением Rd <— (Y + q) Нет 2
LD Rd, Z Косвенное считывание из памяти в регистр Rd <— (Z) Нет 2
LD Rd, Z+ Косвенное считывание из памяти в регистр и инкр. Rd <— (Z),Z <— Z+1 Нет 2
LD Rd.-Z Предварительный декремент, а затем косвенное считывание из памяти в регистр Z <— Z - 1, Rd <— (Z) Нет 2
LDD Rd, Z+q Косвенное считывание из памяти в регистр со смещением Rd <— (Z + q) Нет 2
LDS Rd, k Непосредственное чтение из ОЗУ в регистр Rd <— (k) Нет 2
ST X, Rr Косвенная запись (X) <— Rr Нет 2
ST X+, Rr Косвенная запись и послед. инкремент (X) <— Rr, X <— X + 1 Нет 2
ST -X, Rr Предв. декремент и косвенная запись X <— X - 1, (X) <— Rr Нет 2
ST Y, Rr Косвенная запись (Y) <— Rr Нет 2
ST Y+, Rr Косвенная запись и послед. инкремент (Y) <— Rr, Y <— Y + 1 Нет 2
ST -Y, Rr Предв. декремент и косвенная запись Y <— Y - 1, (Y) <— Rr Нет 2
STD Y+q,Rr Косвенная запись со смещением (Y + q) <— Rr Нет 2
ST Z, Rr Косвенная запись (Z) <— Rr Нет 2
ST Z+, Rr Косвенная запись и послед. инкремент (Z) <— Rr, Z <— Z + 1 Нет 2
ST -Z. Rr Предв. декремент и косвенная запись Z <— Z - 1, (Z) <— Rr Нет 2
STD Z+q,Rr Косвенная запись со смещением (Z + q) <— Rr Нет 2
STS k, Rr Непосредственная запись в ОЗУ (k) <— Rr Нет 2
LPM   Чтение из памяти программ R0 <— (Z) Нет 3
LPM Rd, Z Чтение из памяти программ Rd <— (Z) Нет 3
LPM Rd, Z+ Чтение из памяти программ и последующий инкремент Rd <— (Z), Z <— Z+1 Нет 3
ELPM   Расширенное чтение из памяти программ R0 <— (RAMPZ:Z) Нет 3
ELPM Rd, Z Расширенное чтение из памяти программ Rd <— (RAMPZ:Z) Нет 3
ELPM Rd, Z+ Расширенное чтение из памяти программ и последующие инкремент Rd <— (RAMPZ:Z), RAMPZ:Z <— RAMPZ:Z+1 Нет 3
SPM   Запись в память программ (Z) <— R1 :R0 Нет -
IN Rd, P Считывание из порта ввода-вывода в регистр Rd <— P Нет 1
OUT P, Rr Запись из регистра в порт ввода-вывода P <— Rd Нет 1
PUSH Rr Помещение содержимого регистра в стек STACK <— Rr Нет 2
POP Rd Извлечение из стека в регистр Rd <— STACK Нет 2
Битовые инструкции и инструкции тестирования бит
SBI P,b Установка бита в регистре ввода-вывода l/O(P,b) <— 1 Нет 2
CBI P,b Сброс бита в регистре ввода-вывода l/O(P,b) <— 0 Нет 2
LSL Rd Логический сдвиг влево Rd(n+1) <— Rd(n), Rd(0) <— 0 Z,C,N,V 1
LSR Rd Логический сдвиг вправо Rd(n) <— Rd(n+1), Rd(7) <— 0 Z,C,N,V 1
ROL Rd Вращение влево через перенос Rd(0)<— C,Rd(n+1)<— Rd(n),C <— Rd(7) Z,C,N,V 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), Rd(7..4) <— Rd(3..0) Нет 1
BSET s Установка флага регистра SREG SREG(s) <— 1 SREG(s) 1
BCLR s Сброс флага регистра SREG SREG(s) <— 0 SREG(s) 1
BST Rr, b Запись бита регистра в T T <— Rr(b) T 1
BLD Rd, b Чтение из T в бит регистра Rd(b) <— T Нет 1
SEC   Установка переноса C <— 1 C 1
CLC   Сброс переноса C <— 0 C 1
SEN   Установка флага N N <— 1 N 1
CLN   Сброс флага N N <— 0 N 1
SEZ   Установка флага нуля Z Z <— 1 Z 1
CLZ   Сброс флага нуля Z Z <— 0 Z 1
SEI   Общее разрешение прерываний l<— 1 I 1
CLI   Общий запрет прерываний l <— 0 I 1
SES   Установка флага S S <— 1 S 1
CLS   Сброс флага S S <— 0 S 1
SEV   Установка флага V в регистре SREG V <— 1 V 1
CLV   Сброс флага V в регистре SREG V <— 0 V 1
SET   Установка флага T в регистре SREG T <— 1 T 1
CLT   Сброс флага T в регистре SREG T <— 0 T 1
SEH   Установка флага Н в регистре SREG H <— 1 H 1
CLH   Сброс флага Н в регистре SREG H <— 0 H 1
Инструкции управления микроконтроллером
NOP   Нет операции   Нет 1
SLEEP   Перевод в режим сна (см. подробное описание режима сна) Нет 1
WDR   Сброс сторожевого таймера (см. подробное описание сторожевого таймера) Нет 1
BREAK   Прерывание Только для встроенной отладки Нет -
4
 
Теги: ATmega128  
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

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

Интересно

Канифоль можно изготовить самому, собрав в лесу сосновую (не еловую!) смолу и перетопив ее в консервной банке.

Похожие новости