Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Набор команд

 

Мнемоника Операнды Описание Действие Флаги Циклы

 

АРИФМЕТИЧЕСКИЕ И ЛОГИЧЕСКИЕ КОМАНДЫ

 

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

<== предыдущая лекция | следующая лекция ==>
Модуль 01.9 Система запалення | MAX-BODY.RU




© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.