Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Набор команд
Мнемоника Операнды Описание Действие Флаги Циклы
АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ КОМАНДЫ
ADD 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 Rd, K Сложить слово с конст Rdh, l< Rdh, l+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 SBIW Rdl, K6 Вычесть слово из конст Rdh, l< Rdh, l-K Z, C, N, V, S 2 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 AND Rd, Rr Логическое И Rd=Rd AND Rr Z, N, V 1 ANDI Rd, K Логическое И Rd=Rd AND K Z, N, V 1 OR Rd, Rr Логическое ИЛИ Rd=Rd OR Rr Z, N, V 1 ORI Rd, K Логическое ИЛИ Rd=Rd OR K Z, N, V 1 EOR Rd, Rr Исключающее ИЛИ Rd=Rd XOR Rr Z, N, V 1 COM Rd Дополнение до 1 Rd=$FF - Rd Z, C, N, V 1 NEG Rd Дополнение до 2 Rd=$00 - Rd Z, C, N, V, H 1 SBR Rd, K Установ. бит(ы) в рег. Rd=Rd OR K Z, N, V 1 CBR Rd, K Сброс. бит(ы) в рег. Rd=RdAND(FFh-K) Z, N, V 1 INC Rd Увеличить на 1 Rd=Rd+1 Z, N, V 1 DEC Rd Уменьшить на 1 Rd=Rd-1 Z, N, V 1 TST Rd Провериить на 0 или - Rd=Rd AND Rd Z, N, V 1 CLR Rd Очистить регистр Rd=Rd XOR Rd Z, N, V 1 SER Rd Установить регистр Rd=$FF None 1
КОМАНДЫ ВЕТВЛЕНИЯ
RJMP k Относительный переход PC=PC+k+1 None 2 LJMP Переход по адресу (Z) PC=Z None 2 RCALL k Относ. вызов подпрогр. PC=PC+k+1 None 3 ICALL Вызов подпр по адр (Z) PC=Z None 3 RET Выход из подпрограммы PC=STACK None 4 RETI Выход из прерывания PC=STACK I 4 CPSE Rd, Rr Сравнить, пропуск если if(Rd==Rr) равно PC=PC+2 или 3 None 1/2 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)==0) в регистре сброшен PC=PC+2 или 3 None 1/2 SBRS Rr, b Пропуск если бит if(Rr(b)==1) в регистре установлен PC=PC+2 или 3 None 1/2 SBIC P, b Пропуск если бит в рег if(P(b)==0) ввода/выв. сброшен PC=PC+2 или 3 None 1/2 SBIS P, b Пропуск если бит в рег if(P(b)==1) ввода/выв. установлен PC=PC+2 или 3 None 1/2 BRBS s, k Переход если установл. if(SREG(s)==1) флаг s PC=PC+k+1 None 1/2 BRBC s, k Переход если сброшен if(SREG(s)==0) флаг s PC=PC+k+1 None 1/2 BREQ k Переход если равно if(Z==1) PC=PC+k+1 None 1/2 BRNE k Переход если неравно if(Z==0) PC=PC+k+1 None 1/2
Мнемоника Операнды Описание Действие Флаги Циклы
BRCS k Переход если установл. if(C==1) перенос PC=PC+k+1 None 1/2 BRCC k Переход если сброшен if(C==0) перенос PC=PC+k+1 None 1/2 BRSH k Переход если равно или if(C==0) больше PC=PC+k+1 None 1/2 BRLO k Переход если меньше if(C==1) PC=PC+k+1 None 1/2 BRMI k Переход если минус if(N==1) PC=PC+k+1 None 1/2 BRPL k Переход если плюс if(N==0) PC=PC+k+1 None 1/2 BRGE k Переход если больше if(N XOR V==0) или равно, со знаком PC=PC+k+1 None 1/2 BRLT k Переход если меньше if(N XOR V==1) нуля, со знаком PC=PC+k+1 None 1/2 BRHS k Переход если установл. if (H==1) флаг H PC=PC+k+1 None 1/2 BRHC k Переход если сброшен if (H==0) флаг H PC=PC+k+1 None 1/2 BRTS k Переход если установл. if (T==1) флаг T PC=PC+k+1 None 1/2 BRTC k Переход если сброшен if (T==0) флаг T PC=PC+k+1 None 1/2 BRVS k Переход если установл. if (V==1) флаг V (переполнение) PC< PC+k+1 None 1/2 BRVC k Переход если сброшен if (V==0) флаг V PC=PC+k+1 None 1/2 BRIE k Переход если разрешены if(I==1) прерывания PC=PC+k+1 None 1/2 BRID k Переход если запрещены if(I==0) прерывания PC=PC+k+1 None 1/2
КОМАНДЫ ПЕРЕСЫЛКИ
MOV Rd, Rr Пересылка между рег. Rd=Rr None 1 LDI Rd, K Загрузить константу Rd=K None 1 LD Rd, X Загрузить регистр не- посредственно Rd=(X) None 2 LD Rd, X+ Загрузить регистр не- поср. c пост инкрем. Rd=(X), X=X+1 None 2 LD Rd, -X Загрузить регистр не- поср. с предв.декрем. X=X-1, Rd=(X) None 2 LD Rd, Y Загрузить регистр не- посредственно Rd=(Y) None 2 LD Rd, Y+ Загрузить регистр не- поср. c пост инкрем. Rd=(Y), Y=Y+1 None 2 LD Rd, -Y Загрузить регистр не- поср. с предв.декрем. Y=Y-1, Rd=(Y) None 2 LDD Rd, Y+q Загрузить регистр не- поср. со смещением Rd=(Y+q) None 2 LD Rd, Z Загрузить регистр не- посредственно Rd=(Z) None 2 LD Rd, Z+ Загрузить регистр не- поср. c пост инкрем. Rd=(Z), Z=Z+1 None 2 LD Rd, -Z Загрузить регистр не- поср. с предв.декрем. Z=Z-1, Rd=(Z) None 2 LDD Rd, Z+q Загрузить регистр не- поср. со смещением Rd=(Z+q) None 2
Мнемоника Операнды Описание Действие Флаги Циклы
LDS Rd, k Загрузить из ОЗУ Rd=(k) None 3 ST X, Rr Записать регистр не- посредственно (X)=Rr None 2 ST X+, Rr Записать регистр не- поср.c пост инкр. (X)=Rr, X=X+1 None 2 ST -X, Rr Записать регистр не- поср.c пред.декрем. X=X-1, (X)=Rr None 2 ST Y, Rr Записать регистр не- посредственно (Y)=Rr None 2 ST Y+, Rr Записать регистр не- поср.c пост инкр. (Y)=Rr, Y=Y+1 None 2 ST -Y, Rr Записать регистр не- поср.c пред.декрем. Y=Y-1, (Y)=Rr None 2 STD Y+q, Rr Запис.рег.непоср.со смещением (Y+q)=Rr None 2 ST Z, Rr Записать регистр не- посредственно (Z)=Rr None 2 ST Z+, Rr Записать регистр не- поср.c пост инкр. (Z)=Rr, Z=Z+1 None 2 ST -Z, Rr Записать регистр не- поср.c пред.декрем. Z=Z-1, (Z)=Rr None 2 STD Y+q, Rr Запис.рег.непоср.со смещением (Y+q)=Rr None 2 STS k, Rr Записать в ОЗУ (k)=Rr None 3 LPM Загр.из памяти прогр. R0=(Z) None 3 IN Rd, P Ввод из порта Rd=P None 1 OUT P, Rr Вывод в порт P=Rr None 1 PUSH Rr Записать в стек STACK=Rr None 2 POP Rr Прочитать из стека Rr=STACK None 2
КОМАНДЫ РАБОТЫ С БИТАМИ
SBI P, b Установить бит в рег. I/O(P, b)=1 None 2 ввода/вывода CBI P, b Сбросить бит в рег. I/O(P, b)=0 None 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 сдвиг влево через C Rd(0)=C, Rd(n+1)=Rd(n), C=Rd(7) Z, C, N, V 1 ROR Rd сдвиг вправо через C 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) None 1 BSET s Установить флаг SREG(s)=1 SREG(s) 1 BCLR s Сбросить флаг SREG(s)=0 SREG(s) 1 BST Rr, b Запомнить бит в T T=Rr(b) T 1 BLD Rd, b Прочитать бит из T Rd(b)=T None 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 Разрешить прерывания I=1 I 1 CLI Запретить прерывания I=0 I 1 SES Установить флаг S S=1 S 1 CLS Сбросить флаг S S=0 S 1 SEV Установить флаг V V=1 V 1 CLV Сбросить флаг V V=0 V 1 SET Установить флаг T T=1 T 1 CLT Сбросить флаг T T=0 T 1 SEH Установить флаг H H=1 H 1 CLH Сбросить флаг H H=0 H 1 NOP Нет операции None 1 SLEEP Останов None 3 WDR Сброс сторожевого таймера None 1
|