Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методическое пособие 564

.pdf
Скачиваний:
5
Добавлен:
30.04.2022
Размер:
2.41 Mб
Скачать

ПРИЛОЖЕНИЕ 4

Сводная таблица команд микроконтроллера AVR

Группа команд логических операций

Мнемоника

Описание

 

Операция

Циклы

Флаги

AND Rd,Rr

«Логическое И» двух

Rd=Rd • Rr

1

 

Z,N,V

 

РОН

 

 

 

 

 

ANDI Rd,K

«Логическое И» РОН и

Rd = Rd • К

1

 

Z,N,V

 

константы

 

 

 

 

 

EOR Rd, Rr

«Исключающее ИЛИ»

Rd = Rd

1

 

Z,N,V

 

двух РОН

 

®Rr

 

 

 

OR Rd,Rr

«Логическое ИЛИ»

 

Rd = RdvRr

1

 

Z,N,V

 

двух РОН

 

 

 

 

 

ORI Rd,K

«Логическое ИЛИ»

 

Rd = Rd v К

1

 

Z,N,V

 

РОН и константы

 

 

 

 

 

COM Rd

Перевод в обратный

Rd = $FF-

1

 

Z,C,N,V

 

код

 

Rd

 

 

 

NEG Rd

Перевод в

 

Rd = $00-Rd

1

 

Z,C,N,V,H

 

дополнительный код

 

 

 

 

CLR Rd

Сброс всех разрядов

Rd=Rd®Rd

1

 

Z,N,V

 

РОН

 

 

 

 

 

SER Rd

Установка всех

 

Rd =$FF

1

 

 

 

разрядов РОН

 

 

 

 

 

TST Rd

Проверка РОН на

 

Rd • Rd

1

 

Z,N,V

 

отрицательное или

 

 

 

 

 

 

нулевое значение

 

 

 

 

 

SWAP Rd

Обмен местами тетрад

Rd(3...O) =

1

 

 

 

в РОН

 

Rd(7...4),

 

 

 

 

 

 

Rd(7...4) =

 

 

 

 

 

 

Rd(3...O)

 

 

 

 

Группа команд арифметических операций

 

Мнемоника

Описание

Операция

Циклы

Флаги

 

 

 

 

 

 

ADD Rd.Rr

Сложение двух

Rd = Rd + Rr

1

 

Z,C,N,V,H

 

РОН

 

 

 

 

 

DC Rd.Rr

Сложение двух

Rd = Rd + Rr +

1

 

Z,C,N,V,H

 

РОН с переносом

C

 

 

 

 

 

 

 

 

 

 

 

81

Продолжение прил. 4

ADIW

Сложение

Rdh:RdI =

2

Z,C,N,V,S

Rd,K

регистровой пары

Rdh:Rdl + К

 

 

 

с константой

 

 

 

SUB Rd,Rr

Вычитание двух

Rd = Rd-Rr

1

Z,C,N,V,H

 

РОН

 

 

 

SUBI Rd,K

Вычитание

Rd = Rd-K

1

Z,C,N,V,H

 

константы из РОН

 

 

 

SBC Rd,Rr

Вычитание двух

Rd=Rd-Rr-C

1

Z,C,N,V,H

 

РОН с заемом

 

 

 

SBCI Rd,K

Вычитание

Rd = Rd-K-C

1

Z,C,N,V,H

 

константы из РОН

 

 

 

 

с заемом

 

 

 

SBIW Rd,K

Вычитание

Rdh:Rdl =

2

Z,C,N,V,S

 

константы из

Rdh:Rdt-K

 

 

 

регистровой пары

 

 

 

DEC Rd

Декремент РОН

Rd = Rd - l

1

Z,N,V

 

 

 

 

 

INC Rd

Инкремент РОН

Rd = Rd + 1

1

Z,N,V

 

 

 

 

 

ASR Rd

Арифметический

Rd(n) = Rd(n+

1

Z,C,N,V

 

сдвиг вправо

1), n = 0...6

 

 

LSL Rd

Логический сдвиг

Rd(n+l) = Rd(n),

1

Z,C,N,V

 

влево

Rd(0) = 0

 

 

LSR Rd

Логический сдвиг

Rd(n) =

1

Z,C,N,V

 

вправо

Rd(n+l),Rd(7) =

 

 

 

 

0

 

 

ROL Rd

Сдвиг влево через

Rd(0) = C,

1

Z,C,N,V

 

перенос

Rd(n+l) = Rd(n),

 

 

 

 

С = Rd(7)

 

 

ROR Rd

Сдвиг вправо через

Rd(7) = C, Rd(n)

1

Z,C,N,V

 

перенос

= Rd(n+l), С =

 

 

 

 

Rd(0)

 

 

MUL Rd,Rr

Умножение без

Rl:RO = RdXRr

2

Z,C

 

знаковых чисел

 

 

 

MULS

Умножение чисел

Rl:RO = RdXRr

2

Z,C

Rd,Rr

со знаком

 

 

 

 

 

 

 

 

82

Продолжение прил. 4

MULSU

Умножение без

Rl:RO = RdXRr

2

Z,C

 

Rd,Rr

знакового числа на

 

 

 

 

 

число со знаком

 

 

 

 

FMDL

Умножение

Rl:RO =

2

Z,C

 

Rd,Rr

дробных без

(RdXRr)«l

 

 

 

 

знаковых чисел

 

 

 

 

FMULS

Умножение

Rl:RO =

2

Z,C

 

Rd,Rr

дробных чисел со

(RdXRr)«l

 

 

 

 

знаком

 

 

 

 

FMULSU

Умножение

Rl:RO =

2

Z,C

 

Rd,Rr

дробного без

(RdXRr)«1

 

 

 

 

знакового числа и

 

 

 

 

 

дробного числа со

 

 

 

 

 

знаком

 

 

 

 

 

Группа команд операций с битами

 

 

Мнемоника

Описание

Операция

Циклы

Флаги

 

CBR Rd,K

Сброс разряда(ов)

Rd = Rd»($FF-

1

Z,N,V

 

 

РОН

K)

 

 

 

SBR Rd,K

Установка

Rd=RdvK

1

Z, N,V

 

 

разрада(ов) РОН

 

 

 

 

CBI A,b

Сброс разряда РВВ

A.b = 0

2

 

 

 

 

 

 

 

 

SBI A,b

Установка разряда

A.b=l

2

 

 

 

РВВ

 

 

 

 

BCLR s

Зброс флага

SREG.S - 0

1

SREG.S

 

BSET s

Установка флага

SREG.S=l

1

SREG.S

 

BLD Rd,b

Загрузка разряда

Rd.b = T

1

 

 

 

РОН из флага Т

 

 

 

 

 

(SREG)

 

 

 

 

BST Rr,b

Запись разряда

T = Rr.b

1

T

 

 

РОН в флаг Т

 

 

 

 

 

(SREG)

 

 

 

 

CLC

Сброс флага

С = 0

1

С

 

 

переноса

 

 

 

 

SEC

Установка флага

C=l

1

C

 

 

переноса

 

 

 

 

 

 

 

 

 

 

83

Продолжение прил. 4

CLN

Сброс флага

N = 0

1

N

 

отрицательного

 

 

 

 

числа

 

 

 

SEN

Установка флага

N = 1

1

N

 

отрицательного

 

 

 

 

числа

 

 

 

CLZ

Сброс флага нуля

Z = 0

1

Z

SEZ

Установка флага

Z = l

1

Z

 

нуля

 

 

 

CLI

Общее запрещение

1 = 0

1

I

 

прерываний

 

 

 

SEI

Общее разрешение

1 = 1

1

I

 

прерываний

 

 

 

CLS

Сброс флага знака

S = 0

1

S

SES

Установка флага

S = l

1

S

 

знака

 

 

 

CLV

Сброс флага

V = 0

1

V

 

переполнения доп.

 

 

 

 

кода

 

 

 

SEV

Установка флага

V = l

1

V

 

переполнения доп.

 

 

 

 

кода

 

 

 

CLT

Сброс флага Т

T = 0

1

T

SET

Установка флага Т

T = l

1

T

CLH

Сброс флага

H = 0

1

H

 

половинного

 

 

 

 

переноса

 

 

 

SEH

Установка флага

H = l

1

H

 

половинного

 

 

 

 

переноса

 

 

 

Группа команд пересылки данных

Мнемоника

Описание

Операция

Циклы

Флаги

MOV Rd,Rr

Пересылка между

Rd = Rr

1

 

 

РОН

 

 

 

MOVW

Пересылка

Rd + l:Rd =

1

 

Rd, Rr

двухбайтовых

Rr+l:Rr

 

 

 

значений

 

 

 

84

 

 

Продолжение прил. 4

LDI Rd, K

Загрузка

Rd = K

1

 

 

константы в РОН

 

 

 

LD Rd,X

Косвенное чтение

Rd=[X]

2

 

LD Rd,X+

Косвенное чтение

Rd = [X],X =

2

 

 

с постинкрементом

X+I

 

 

LD Rd,-X

Косвенное чтение

X = X-l,Rd = [X]

2

 

 

с преддекрементом

 

 

 

LD Rd,Y

Косвенное чтение

Rd=[Y]

2

 

LD Rd,Y+

Косвенное чтение

Rd = [Y],Y =

2

 

 

с постинкрементом

Y+l

 

 

LD Rd,-Y

Косвенное чтение

Y=Y-l,Rd=[Y]

2

 

 

с преддекрементом

 

 

 

LDD

Косвенное

Rd = [Y+q]

2

 

Rd,Y+q

относительное

 

 

 

 

чтение

 

 

 

LD Rd,Z

Косвенное чтение

Rd = [Z]

2

 

LD Rd,Z+

Косвенное чтение

Rd = [Z],Z = Z+l

2

 

 

с постинкрементом

 

 

 

LD Rd,-Z

Косвенное чтение

Z = Z - 1, Rd =

2

 

 

с преддекрементом

[Z]

 

 

LDD

Косвенное

Rd = [Z + q]

2

 

Rd,Z+q

относительное

 

 

 

 

чтение

 

 

 

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-l, [X] = Rr

2

 

 

преддекрементом

 

 

 

ST Y,Rr

Косвенная запись

[Y] = Rr

2

 

ST Y+,Rr

Косвенная запись с

[Y] = Rr, Y=Y+1

2

 

 

постинкрементом

 

 

 

ST –Y, Rr

Косвенная запись с

Y=Y-l, [X] = Rr

2

 

 

преддекрементом

 

 

 

 

 

 

 

 

85

Продолжение прил. 4

STD

Косвенная

[Y+q] = Rr

2

 

Y+q,Rr

относительная

 

 

 

 

запись

 

 

 

ST Z,Rr

Косвенная запись

[Z] = Rr

2

 

ST Z+,Rr

Косвенная запись с

[Z] = Rr,Z = Z+l

2

 

 

постинкрементом

 

 

 

ST –Z,Rr

Косвенная запись с

Z = Z-l, [Z] = Rr

2

 

 

преддекрементом

 

 

 

STD

Косвенная запись

[Z + q] = Rr

2

 

Z+q,Rr

 

 

 

 

STS k,Rr

Непосредственная

[k] = Rr

2

 

 

запись в ОЗУ

 

 

 

LPM

Загрузка данных из

R0 = {Z}

3

 

 

памяти программ

 

 

 

LPM Rd,Z

Загрузка данных из

RB={Z}

3

 

 

памяти программ

 

 

 

LPM Rd,Z+

Загрузка данных из

RB = {Z},Z =

3

 

 

памяти программ с

Z+1

 

 

 

постинкрементном

 

 

 

ELPM

Расширенная

RO =

3

 

 

загрузка данных из

{RAMPZ:Z}

 

 

 

памяти программ

 

 

 

ELPM Rd,Z

Расширенная

RB={RAMPZ:Z}

3

 

 

загрузка данных из

 

 

 

 

памяти программ

 

 

 

ELPM

Расширенная

RB =

3

 

Rd,Z+

загрузка данных из

{RAMPZ:Z},

 

 

 

памяти программ с

RAMPZ:Z =

 

 

 

постинкрементном

RAMPZ:Z+1

 

 

SPM

Запись в память

{Z} = RI:R0

 

 

 

программ

 

 

 

IN Rd,A

Пересылка из РВВ

Rd = A

1

 

 

в РОН

 

 

 

OUT A,Rr

Пересылка из РОН

A=Rr

1

 

 

в РВВ

 

 

 

PUSH Rr

Сохранение байта

STACK - Rr

2

 

 

в стеке

 

 

 

86

 

 

Продолжение прил. 4

POP Rd

Извлечение байта

Rd = STACK

2

 

 

 

из стека

 

 

 

 

Группа команд передачи управления

 

 

 

Мнемоника

Описание

Операция

Циклы

Флаги

RJMP k

Относительный

РС =РС + к+1

2

 

 

 

безусловный

 

 

 

 

 

переход

 

 

 

 

IJMP

Косвенный

РС =Z

2

 

 

 

безусловный

 

 

 

 

 

переход

 

 

 

 

JMP к

Переход

РС = к

3

 

 

RCALL к

Относительный

PC = PC + к + 1

3

 

 

 

вызов

 

 

 

 

 

подпрограммы

 

 

 

 

ICALL

Косвенный вызов

PC = Z

3

 

 

 

подпрограммы

 

 

 

 

CALL к

Абсолютный

РС = к

4

 

 

 

вызов

 

 

 

 

 

подпрограммы

 

 

 

 

RET

Возврат из

PC = STACK

4

 

 

 

подпрограммы

 

 

 

 

RETI

Возврат из

PC = STACK

4

 

 

 

подпрограммы

 

 

 

 

 

обработки

 

 

 

 

 

прерывания

 

 

 

 

СР Rd,Rr

Сравнение РОН

Rd-Rr

1

Z,N,V,C,H

СРС Rd, Rr

Сравнение РОН с

Rd-Rr-C

1

Z,N,V,C,H

 

учетом переноса

 

 

 

 

CPI Rd,K

Сравнение РОН с

Rd-K

1

Z,N,V,C,H

 

константой

 

 

 

 

CPSE

Сравнение и

Если Rd = Rr, то

1/2/3

 

 

Rd,Rr

пропуск

PC = PC + 2 (3)

 

 

 

 

следующей

 

 

 

 

 

команды при

 

 

 

 

 

равенстве

 

 

 

 

 

 

 

 

 

 

87

 

 

Продолжение прил. 4

SBRC Rr,b

Пропуск

Если Rr.b = 0,

1/2/3

 

 

следующей

то PC = PC + 2

 

 

 

команды, если

(3)

 

 

 

разряд РОН

 

 

 

 

сброшен

 

 

 

SBRS Rr,b

Пропуск

Если Rr.b=l, то

1/2/3

 

 

следующей

PC = PC + 2 (3)

 

 

 

команды, если

 

 

 

 

разряд РОН

 

 

 

 

установлен

 

 

 

SBIC A,b

Пропуск

Если A.b = 0, то

1/2/3

 

 

следующей

PC = PC + 2 (3)

 

 

 

команды, если

 

 

 

 

РВВ сброшен

 

 

 

SBIS A,b

Пропуск

Если А.Ь= 1, то

1/2/3

 

 

следующей

PC = PC + 2 (3)

 

 

 

команды, если

 

 

 

 

разряд РВВ

 

 

 

 

установлен

 

 

 

BRBC s,k

Переход, если флаг

Если SREG.s =

1/2

 

 

s регистра SREG

0, то РС = РС +

 

 

 

сброшен

к+1

 

 

BRBS s,k

Переход, если флаг

Если SREG.s

1/2

 

 

s регистра SREG

=1, то РС = РС

 

 

 

установлен

+ к+1

 

 

BRCS к

Переход по

Если С =1, то

1/2

 

 

переносу

РС = РС + к+1

 

 

BRCC к

Переход, если нет

Если С = 0, то

1/2

 

 

переноса

РС = РС + к+1

 

 

BREQ к

Переход по

Если Z = l, то

1/2

 

 

«равно»

РС = РС + к+1

 

 

BRNE к

Переход по «не

Если Z = 0, то

1/2

 

 

равно»

РС = РС + к+1

 

 

BRSH к

Переход по «выше

Если С = 0, то

1/2

 

 

или равно»

РС = РС + к+1

 

 

BRLO к

Переход по

Если С =1, то

1/2

 

 

«меньше»

РС = РС + к+1

 

 

88

 

 

Продолжение прил. 4

BRMI .

Переход по

ЕслиN = 1, то

1/2

 

 

«отрицательное

РС = РС + к +1

 

 

 

значение»

 

 

 

BRPL

Переход по

Если N = 0, то

1/2

 

 

«положительное

РС = РС + к+1

 

 

 

значение»

 

 

 

BRGE

Переход по

Если (N®V) = 0,

1/2

 

 

«больше или

то PC = PC + к +

 

 

 

равно» (числа со

1

 

 

 

знаком)

 

 

 

 

 

 

 

 

BRLT

Переход по

Если (N®V)=l,

1/2

 

 

«меньше нуля»

то PC = PC + к +

 

 

 

(числа со знаком)

1

 

 

BRHS

Переход по

Если Н = 1, то

1/2

 

 

половинному

PC = PC + к + 1

 

 

 

переносу

 

 

 

BRHC

Переход, если нет

Если Н = 0, то

1/2

 

 

половинного

PC = PC + к + 1

 

 

 

переноса

 

 

 

BRTS

Переход, если флаг

Если Т= 1, то

1/2

 

 

Т установлен

РС = РС + к+1

 

 

BRTC

Переход, если флаг

ЕслиТ = 0, тоРС

1/2

 

 

Т сброшен

= РС + к+1

 

 

BRVS

Переход по

ЕслиУ=1, тоРС

1/2

 

 

переполнению доп.

= РС + к+1

 

 

 

кода

 

 

 

BRVC

Переход, если нет

ЕслиУ = 0, тоРС

1/2

 

 

переполнения доп.

= РС + к+1

 

 

 

кода

 

 

 

BRID

Переход, если

Если I = 0, тоРС

1/2

 

 

прерывания

= РС + к+1

 

 

 

запрещены

 

 

 

BRIE

Переход, если

Если1 = 1, тоРС

1/2

 

 

прерывания

= РС + к+1

 

 

 

разрешены

 

 

 

89

 

 

 

Окончание прил. 4

 

Группа команд управления системой

Мнемоника

Описание

Операция

 

Циклы

Флаги

NOP

Нет операции

пустая команда

 

1

 

 

 

перевод

 

 

 

 

Переход в

микроконтроллера в

 

 

 

 

«спящий»

режим пониженного

 

 

 

SLEEP

режим

энергопотребления

 

3

 

 

Сброс

 

 

 

 

 

сторожевого

сброс сторожевого

 

 

 

WDR

таймера

таймера

 

1

 

90