Рефераты. 8-разрядные КМОП RISC микроконтроллеры с внутрисистемно программируемым Flash ПЗУ

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

Мнемоника

Описание

Операция

Циклы

Флаги

ADD Rd. Rr

Сложение двух РОН

Rd = Rd + Rr

1

Z,C,N,V,H

ADC Rd. Rr

Сложение двух РОН с переносом

Rd = Rd + Rr + C

1

Z,C,N,V,H

ADIW Rd, K

Сложение регистровой пары с константой

Rdh:RdI = Rdh:Rdl + К

2

Z,C,N,V,S

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 = Rdh:Rdt-K

2

Z,C,N,V,S

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), n = 0...6

1

Z,C,N,V

LSL Rd

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

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

1

Z,C,N,V

LSR Rd

Логический сдвиг вправо

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

1

Z,C,N,V

Мнемоника

Описание

Операция

Циклы

Флаги

ROL Rd

Сдвиг влево через перенос

Rd(0) = C, Rd(n+l) = Rd(n), С = Rd(7)

1

Z,C,N,V

ROR Rd

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

Rd(7) = C, Rd(n) = Rd(n+l), С = Rd(0)

1

Z,C,N,V

MUL Rd, Rr

Умножение беззнаковых чисел

Rl:RO = RdXRr

2

Z,C

MULS Rd, Rr

Умножение чисел со знаком

Rl:RO = RdXRr

2

Z,C

MULSU

Rd, Rr

Умножение беззнакового чис-ла на число со знаком

Rl:RO = RdXRr

2

Z,C

FMDL Rd, Rr

Умножение дробных беззнаковых чисел

Rl:RO = (RdXRr)«l

2

Z,C

FMULS

Rd, Rr

Умножение дробных чисел со знаком

Rl:RO = (RdXRr)«l

2

Z,C

FMULSU

Rd, Rr

Умножение дробного беззнакового числа и дробного числа со знаком

Rl:RO = (RdXRr)«1

2

Z,C

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

Мнемоника

Описание

Операция

Циклы

Флаги

CBR Rd, K

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

Rd = Rd»($FF-K)

1

Z,N,V

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

Загрузка разряда РОН из флага Т (SREG)

Rd.b = T

1

BST Rr, b

Запись разряда РОН в флаг Т (SREG)

T = Rr.b

1

T

CLC

Сброс флага переноса

С = 0

1

С

SEC

Установка флага переноса

C = l

1

С

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, Rr

Пересылка двухбайтовых значений

Rd + l:Rd = Rr+l:Rr

1

LDI Rd, K

Загрузка константы в РОН

Rd = K

1

Мнемоника

Описание

Операция

Циклы

Флаги

LD Rd, X

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

Rd=[X]

2

LD Rd, X+

Косвенное чтение с постинкрементом

Rd = [X],X = X+I

2

LD Rd,-X

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

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

X = X-l,Rd = [X]

2

LD Rd, Y

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

Rd=[Y]

2

LD Rd, Y+

Косвенное чтение с постинкрементом

Rd = [Y],Y = Y+l

2

LD Rd,-Y

Косвенное чтение с преддекрементом

Y=Y-l,Rd=[Y]

2

LDD Rd, Y+q

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

Rd = [Y+q]

2

LD Rd,Z

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

Rd = [Z]

2

LD Rd, Z+

Косвенное чтение с постинкрементом

Rd = [Z],Z = Z+l

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-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

STD Y+ q, Rr

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

[Y+q] = Rr

2

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

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

[Z + q] = Rr

2

STS k, Rr

Непосредственная запись в ОЗУ

[k] = Rr

2

LPM

Загрузка данных из памяти программ

R0 = {Z}

3

LPM Rd, Z

Загрузка данных из памяти программ

Rb={Z}

3

LPM Rd, Z+

Загрузка данных из памяти программ с постинкрементом

Rb = {Z},Z = Z+1

3

ELPM

Расширенная загрузка данных из памяти программ

RO = {RAMPZ:Z}

3

ELPM Rd, Z

Расширенная загрузка данных из памяти программ

Rb={RAMPZ:Z}

3

ELPM Rd, Z+

Расширенная загрузка данных из памяти программ с постинкрементом

Rb = {RAMPZ:Z}, RAMPZ:Z = RAMPZ:Z+1

3

SPM

Запись в память программ

{Z} = RI:R0

IN Rd, A

Пересьика из РВВ в РОН

Rd = A

1

OUT A, Rr

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

A=Rr

1

PUSH Rr

Сохранение байта в стеке

STACK - Rr

2

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

Сравнение и пропуск следующей команды при равенстве

Если Rd = Rr, то PC = PC + 2 (3)

1/2/3

SBRC Rr, b

Пропуск след. команды, если разряд РОН сброшен

Если Rr.b = 0, то PC = PC + 2 (3)

1/2/3

SBRS Rr, b

Пропуск след. команды, если разряд РОН установлен

Если Rr.b=l, то PC = PC + 2 (3)

1/2/3

SBIC A, b

Пропуск след. команды, если разряд РВВ сброшен

Если A.b = 0, то PC = PC + 2 (3)

1/2/3

SBIS A ,b

Пропуск след. команды, если разряд РВВ установлен

Если А.Ь= 1, то PC = PC + 2 (3)

1/2/3

BRBC s, k

Переход, если флаг s регистра SREG сброшен

Если SREG.s = 0, то РС = РС + к+1

1/2

BRBS s, k

Переход, если флаг s регистра SREG установлен

Если SREG.s =1, то РС = РС + к+1

1/2

BRCS к

Переход по переносу

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

1/2

BRCC к

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

Если С = 0, то РС = РС + к+1

1/2

BREQ к

Переход по «равно»

Если Z = l, то РС = РС + к+1

1/2

BRNE к

Переход по «не равно»

Если Z = 0, то РС = РС + к+1

1/2

BRSH к

Переход по «выше или равно»

Если С = 0, то РС = РС + к+1

1/2

BRLO к

Переход по «меньше»

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

1/2

BRMI .

Переход по «отрицательное значение»

Если N = 1, то РС = РС + к +

1/2

BRPL

Переход по «положительное значение»

Если N = 0, то РС = РС + к+1

1/2

BRGE

Переход по «больше или равно» (числа со знаком)

Если (N®V) = 0, то PC = PC + к + 1

1/2

BRLT

Переход по «меньше нуля» (числа со знаком)

Если (N®V)=l, то PC = PC + к + 1

1/2

BRHS

Переход по половинному переносу

Если Н = 1, то PC = PC + к + 1

1/2

BRHC

Переход, если нет половинного переноса

Если Н = 0, то PC = PC + к + 1

1/2

BRTS

Переход, если флаг Т установлен

Если Т= 1, то РС = РС + к+1

1/2

BRTC

Переход, если флаг Т сброшен

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

1/2

BRVS

Переход по переполнению доп. кода

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

1/2

BRVC

Переход, если нет переполнения доп. кода

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

1/2

BRID

Переход, если прерывания запрещены

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

1/2

BRIE

Переход, если прерывания разрешены

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

1/2

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

Мнемоника

Описание

Операция

Циклы

Флаги

NOP

Нет операции

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

1

SLEEP

Переход в «спящий» режим

перевод микроконтроллера в режим пониженного энер-гопотребления

3

WDR

Сброс сторожевого таймера

сброс сторожевого таймера

1

Обозначение

Описание

Регистр состояния

SREG

Регистр состояния микроконтроллера

C

Флаг переноса

Z

Флаг нуля

N

Флаг отрицательного значения

V

Флаг переполнения доп. кода

S

Флаг знака (S=N®V)

H

Флаг половинного переноса

T

Флаг пользователя

I

Флаг общего разрешения прерываний

Регистры и операнды

Rd

Регистр приемник

Rr

Регистр источник

K

Константа

k

Адрес-коннстанта

b

Номер разряда РОН

s

Номер разряда регистра состояния

X,Y,Z

Регистры указатели

I\O

Регистр ввода-вывода

A

Адрес в пространства ввода-вывода

q

Смещение при относительной косвенной адресации

[ХХ]

Содержимое ячейки памяти данных по адресу ХХ

{ХХ}

Содержимое ячейки памяти программ по адресу ХХ

Операция

*

Логическое И

v

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

®

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

Система

РС

Счетчик команд

STACK

Текущий уровень стека

SP

Указатель стека

Флаги

< >

Команда воздействует на флаг

0

Флаг сбрасывается командой в «0»

1

Флаг устанавливается командой в «1»

Команда не влияет

Обозначение, используемые при описании команд

Страницы: 1, 2, 3, 4, 5, 6, 7



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.