Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МПСУ новая 2.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
4.56 Mб
Скачать

Команды операций с битами

К данной группе относятся команды (табл. 5.34), выполняющие установку или сброс заданного разряда РОН или РВВ. Причем для изменения состоя­ния разрядов регистра состояния SREG имеются также дополнитель­ные команды (точнее, эквивалентные мнемонические обозначения об­щих команд), т.к. проверка состояния разрядов именно этого регистра производится чаще всего. Условно к этой группе можно отнести также две команды передачи управления типа «провека/пропуск», которые пропускают следующую команду в зависимости от состояния разряда РОН или РВВ.

Все задействованные разряды РВВ имеют свои символические имена. Определения этих имен описаны в том же включаемом файле, что и опре­деления символических имен адресов регистров. Таким образом, после включения в программу указанного файла в командах вме­сто числовых значений номеров разрядов можно будет указывать их сим­волические имена.

sbr r16, (1<<SE)+(1<<SM)

out MCUUR,r16 ; установить флаги SE и SM

; регистра MCUUR

Следует помнить, что в командах CBR и SBR операндом является бито­вая маска, а не номер разряда. Для получения битовой маски из номера разряда следует воспользоваться ассемблерным оператором «сдвиг влево» (<<), как показано в следующем примере:

Следует обратить внимание, что приоритет оператора «+» выше, чем оператора «<<», для получения требуемого результата слагаемые заклю­чены в скобки.

Всем командам данной группы требуется один машинный цикл для вы­полнения, за исключением случаев, когда в результате проверки происхо­дит пропуск команды. В этом случае команда выполняется за два или три машинных цикла в зависимости от пропускаемой команды.

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

В эту группу входят 3 команды, показанные в табл. 5.34:

  • NOP- пустая команда;

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

  • WDR - сброс сторожевого таймера.

Таблица 5.31. Группа команд арифметических и логических операций МК AT90S8515

Мнемо­код

Опе­ранды

Команды арифметических

и логических операций

Примеры

записи

команд

Описание команд

Флаги

Циклы

ADD

Rd, Rr

Rd  Rd + Rr, d = 0  31, r = 0  31

ADD R2, R0

R2  R2 +R0; сложение

Z, C, N, V, H

1

ADC

Rd, Rr

Rd  Rd + Rr + C, d = 0  31, r = 0  31

ADC R3, R1

R3  R3 + R1 + C; сложение с переносом

Z, C, N, V, H

1

ADIW

RdL, K

RdH : RdL  RdH : RdL + K;

dL {24, 26, 28, 30}; K = 0  63

ADIW R24, 63

R25:R24  R25:R24 + 63;

сложение слова R24:R25 и константы 63

Z, C, N, V, S

2

SUB

Rd, Rr

Rd  Rd – Rr, d = 0 ¸ 31, r = 0 ¸ 31

SUB R13, R12

R13  R13 – R12; вычитание

Z, C, N, V, H

1

SUBI

Rd, K

Rd  Rd – K, d = 16 ¸ 31, K = 0 ¸ 255

SUBI R22, $11

R22¬R22-$11; вычесть константу 11 из R22

Z, C, N, V, H

1

SBC

Rd, Rr

Rd  Rd - Rr – C, d = 0 ¸ 31, r = 0 ¸ 31

SBC R3, R1

R3 ¬ R3 – R1 - C; вычитание с заемом

Z, C, N, V, H

1

SBCI

Rd, K

Rd  Rd - K – C, d = 16 ¸ 31, K = 0 ¸ 255

SBCI R18, $3F

R18¬R18-$3F-C; вычесть 63 из R18 с заемом

Z, C, N, V, H

1

SBIW

RdL,K

RdH : RdL  RdH : RdL – K;

dL {24, 26, 28, 30}; K = 0  63

SBIW R30, 61

R30:R31 ¬ R30:R31 – 61;

вычитание из слова R30:R31 константы 61

Z, C, N, V, S

2

AND

Rd, Rr

Rd  Rd  Rr; d = 0 ¸ 31, r = 0 ¸ 31

AND R1, R2

R1 ¬ R1  R2, поразрядное “И” R1 и R2

Z, N, V, S

1

ANDI

Rd, K

Rd  Rd Ù K; d = 16 ¸ 31, K = 0 ¸ 255

ANDI R18, $0F

R18¬R18Ù$0F, поразрядное “И” R18 и числа 15

Z, N, V

1

OR

Rd, Rr

Rd  Rd v Rr; d = 0 ¸ 31, r = 0 ¸ 31

OR R3, R15

R3¬R3 v R15, поразрядное “ИЛИ” R3 и R15

Z, N, V

1

ORI

Rd, K

Rd  Rd v K; d = 16 ¸ 31, K = 0 ¸ 255

ORI R25, $0F0

R25¬R25v$0F0, поразрядное “ИЛИ” R25 и числа 240

Z, N, V

1

EOR

Rd, Rr

Rd  Rd Rr; d = 0 ¸ 31, r = 0 ¸ 31

EOR R12, R28

R12¬R12 R28, поразрядное “Исключающее ИЛИ”

Z, N, V

1

COM

Rd

Rd  $FF – Rd; d = 0 ¸ 31

COM R5

R5¬$FF-R5, побитная инверсия R5

Z, C, N, V

1

NEG

Rd

Rd  $00 – Rd; d = 0 ¸ 31

NEG R3

R3¬$00-R3, изменение знака (дополнительный код) R3

Z, C, N, V, H

1

INC

Rd

Rd  Rd + 1; d = 0 ¸ 31

INC R3

R3¬R3+1, инкрементировать значение R3

Z, N, V

1

DEC

Rd

Rd  Rd – 1; d = 0 ¸ 31

DEC R2

R2¬R2-1, декрементирование значения R2

Z, N, V

1

TST

Rd

Rd  Rd Ù Rd; d = 0 ¸ 31

TST R15

R15¬R15ÙR15; проверка на ноль либо отрицательное

Z, N, V

1

CLR

Rd

Rd  Rd Rd; d = 0 ¸ 31

CLR R11

R11R11 R11; сбросить в 0 все биты R11

Z, N, V

1

SER

Rd

Rd  $FF; d = 16 ¸ 31

SER R18

R18$FF; установить в 1 все биты R18

None

1

Таблица 5.32. Группа команд пересылки данных МК AT90S8515

Мне­мо­код

Опе­ранды

Команды пересылки

данных

Примеры

записи

команд

Описание команд

Флаги

Циклы

MOV

Rd, Rr

Rd  Rr; d = 0  31, r = 0  31

MOV R5, R0

Скопировать R0 в R5

None

1

LDI

Rd, K

Rd  K, d = 16  31, K = 0  255

LDI R28, $0F

Загрузить константу $0F в R28

None

1

LD

Rd, X

Rd  (X), d = 0 ¸ 31

LD R3, X

Косвенная загрузка из памяти в R3 через X

None

2

LD

Rd, X+

Rd  (X), X  X + 1; d = 0 ¸ 31

LD R4, X+

Косвенная загрузка в R4 через X с постинкрементом X

None

2

LD

Rd,-X

X  X-1, Rd  (X); d = 0 ¸ 31

LD R5, -X

Предекремент X, косвенная загрузка в R5 через X

None

2

LD

Rd, Y

Rd  (Y), d = 0 ¸ 31

LD R3, Y

Косвенная загрузка из памяти в R3 через Y

None

2

LD

Rd, Y+

Rd  (Y), Y  Y + 1; d = 0 ¸ 31

LD R4, Y+

Косвенная загрузка в R4 через Y с постинкрементом Y

None

2

LD

Rd, -Y

Y  Y - 1, Rd  (Y); d = 0 ¸ 31

LD R5, -Y

Предекремент Y, косвенная загрузка в R5 через Y

None

2

LDD

Rd,Y+q

Rd  (Y + q); d = 0¸31, q= 0 ¸ 63

LD R3, Y+4

Косвенная загрузка из памяти в R3 через Y+4

None

2

LD

Rd, Z

Rd  (Z), d = 0 ¸ 31

LD R3, Z

Косвенная загрузка из памяти в R3 через Z

None

2

LD

Rd, Z+

Rd  (Z), Z  Z+1; d = 0 ¸ 31

LD R4, Z+

Косвенная загрузка в R4 через Z с постинкрементом Z

None

2

LD

Rd, -Z

Z  Z- 1, Rd  (Z); d = 0 ¸ 31

LD R5, -Z

Предекремент Z, косвенная загрузка из памяти в R5 через Z

None

2

LDD

Rd, Z+q

Rd  (Z + q); d = 0 ¸ 31, q =0¸63

LD R7, Z+20

Косвенная загрузка из памяти в R7 через Z+20

None

2

LDS

Rd, k

Rd(k); d = 0 ¸ 31, k = 0¸65535

LDS R23, $0FF0

Прямая загрузка в R23 из ячейки $0FF0 внутренней SRAM

None

2

ST

X, Rr

(X)  Rr, r = 0 ¸ 31

ST X, R3

Косвенное сохранение R3 в память через X

None

2

ST

X+, Rr

(X)  Rr, X  X + 1; r = 0 ¸ 31

ST X+, R4

Косвенное сохранение R4 через X с постинкрементом X

None

2

ST

-X, Rr

X  X- 1, (X)  Rr; r = 0 ¸ 31

ST –X, R5

Предекремент X, косвенная загрузка R5 в память через X

None

2

ST

Y, Rr

(Y)  Rr, r= 0 ¸ 31

ST Y, R3

Косвенное сохранение R3 в память через Y

None

2

ST

Y+, Rr

(Y)  Rr, Y  Y + 1; r = 0 ¸ 31

ST Y+, R4

Косвенное сохранение R4 через Y с постинкрементом Y

None

2

ST

-Y, Rr

YY-1, (Y)  Rr; r = 0 ¸ 31

ST –Y, R5

Предекремент Y, косвенное сохранение R5 в память через Y

None

2

STD

Y+q, Rr

(Y + q)  Rr; r = 0 ¸ 31, q=063

ST Y+10, R2

Косвенное сохранение R3 в память через Y+10

None

2

ST

Z, Rr

(Z)  Rr, r = 0 ¸ 31

ST Z, R3

Косвенное сохранение R3 в память через Z

None

2

ST

Z+, Rr

(Z)  Rr, Z  Z + 1; r = 0 ¸ 31

ST Z+, R4

Косвенное сохранение R4 через Z с постинкрементом Z

None

2

ST

-Z, Rr

Z  Z- 1, (Z)  Rr; r= 0 ¸ 31

ST –Z, R5

Предекремент Z, косвенное сохранение R5 в память через Z

None

2

STD

Z+q, Rr

(Z + q)  Rr; r = 0 ¸ 31, q=063

ST Z+4, R15

Косвенное сохранение R15 в память через Z+4

None

2

Мне­мо­код

Опе­ранды

Операции

Примеры

записи

команд

Описание команд

Флаги

Циклы

STS

k, Rr

(k)Rr, r = 0 ¸ 31, k = 0¸65535

STS $0FF0, R8

Прямое сохранение из R8 в ячейку $0FF0 SRAM

None

2

LPM

R0  (Z)

LPM

Загрузка в R0 из FLASH памяти по адресу в Z (R31:R30)

None

2

IN

Rd, P

RdP(I/O); d =0¸31, P(I/O)=0¸63

IN R18, $16

Ввод из регистров I/O (ввод из порта В в R18)

None

1

OUT

P, Rr

P(I/O)Rr; r=0¸31, P(I/O)=0¸63

OUT $18, R13

Вывод в регистры I/O (вывод из R13 в порт В)

None

1

PUSH

Rr

STACK  Rr, r = 0 ¸ 31

PUSH R12

Занесение содержимого регистра R12 в стек

None

2

POP

Rd

Rd  STACK, d = 0 ¸ 31

POP R14

Извлечение из стека в регистр R14

None

2

SWAP

Rd

Rd(3..0)  Rd(7..4),

Rd(7..4) Rd(3..0); d = 0 ¸ 31

SWAP R3

Перестановка тетрад в регистре

None

1

Таблица 5.33. Группа команд передачи управления МК AT90S8515

Мнемо­код

Опе­ранды

Команды передачи управления

Примеры

записи

команд

Описание команд

Флаги

Циклы

RJMP

k

PC  PC + k +1; –­ ­2K ≤ k ≤ +2K

RJMP error

Относительный переход к метке error (k=error)

None

2

IJMP

PC  Z

IJMP

Косвенный переход на Z  R31:R30

None

2

RCALL

k

PC  PC + k + 1; –­ ­2K ≤ k ≤ +2K

RCALL sampl

Относительный вызов подпрограммы sampl

None

3

ICALL

PC  Z

ICALL

Косвенный вызов подпрограммы по Z  R31:R30

None

3

RET

PC(21:0)STACK - 8M

RET

Возврат из подпрограммы (21:0 – биты STACK)

None

4

RETI

PC(21:0)STACK - 8M

RETI

Возврат из подпрограммы прерывания

I

4

CPSE

Rd, Rr

Если (Rd = Rr) тогда

PC  PC + 2 или 3; d = 0 ¸ 31, r = 0 ¸ 31

CPSE R3, R4

Если R3=R4, то РСРС+2 (3) - пропустить 1 (2) слово инструкции; иначе - PC=PC+1

None

1/2/3

CP

Rd, Rr

Rd - Rr; d = 0 ¸ 31, r = 0 ¸ 31

CP R4, R18

R4-R18; cравнить R4 и R18, результат -

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

Z, N, V, C, H

1

CPC

Rd, Rr

Rd - Rr – C; d = 0 ¸ 31, r = 0 ¸ 31

CPC R3, R25

R3-R25-C; сравнить R3 и R25 с учётом предыдущего переноса С, результат – установка флагов

Z, N, V, C, H

1

CPI

Rd, K

Rd – K; d = 16 ¸ 31, K = 0 ¸ 255

CPI R18, 10

R18-10; сравнить R18 с константой 10, результат –

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

Z, N, V, C, H

1

Мнемо­код

Опе­ранды

Команды передачи управления

Примеры

записи

команд

Описание команд

Флаги

Циклы

SBRC

Rr, b

Если Rr(b)=0, тогда PC  PC + 2 (3);

r = 0 ¸ 31, b (бит) = 0  7

SBRC R1, 6

Если бит 6 в R1 сброшен, то РС=РС+2 (3), пропустить

1 (2) слово инструкции, иначе - РС=РС+1

None

1/2/3

SBRS

Rr, b

Если Rr(b)=1, тогда PC  PC+2 (3);

r = 0 ¸ 31, b(бит) = 0  7

SBRS R2, 7

Если бит 7 в R2 установлен, то РС=РС+2 (3),

пропустить 1 (2) слово инструкции, иначе - РС=РС+1

None

1/2/3

SBIC

P, b

Если P(b)=0, тогда PC  PC + 2 (3);

P (порт I/O) = 0 ¸ 31, b (бит) = 0 ¸ 7

SBIC $1C,1

Если бит EEWE в регистре I/O (EECR) сброшен,

про­пус­тить 1 (2) слово инструкции, иначе – РС=РС+1

None

1/2/3

SBIS

P, b

Если P(b)=1, тогда PC  PC + 2(3);

P (порт I/O) = 0 ¸ 31, b (бит) = 0 ¸ 7

SBIS $10, 0

Если бит 0 в регистре I/O (порт D) установлен, то

пропустить 1 (2) слово инструкции, иначе – РС=РС+1

None

1/2/3

BRBS

s, k

Если SREG(s) = 1, тогда PC  PC+k + 1;

s= 0 ¸ 7, ­–64 ≤ k ≤ +63

BRBS 6, brst

Перейти к метке brst, если флаг Т (бит 6) в

SREG установлен, иначе РС = РС + 1

None

1/2

BRBC

s, k

Если SREG(s) = 0, тогда PC  PC+k + 1;

s = 0 ¸ 7, –­ ­64 ≤ k ≤ + 63

BRBC 1, brst

Перейти к метке brst, если флаг Z (бит 1) в

SREG сброшен, иначе РС = РС + 1

None

1/2

BREQ

k

Если Z= 1, тогда PC  PC + k + 1;

–­ ­64 ≤ k ≤ +63

BREQ eql

Перейти к метке egl,

если “равно”, иначе РС = РС+1.

None

1 /2

BRNE

k

Если Z = 0, тогда PC  PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRNE sprei

Перейти к метке sprei, если “не равно”,

иначе РС=РС+1.

None

1 /2

BRCS

k

Если C= 1, тогда PC  PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRCS sprei

Перейти к метке sprei, если флаг переноса (C)

установлен, иначе РС = РС+1.

None

1 /2

BRCC

k

Если C = 0 тогда, PC  PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRCS sprei

Перейти к метке sprei, если флаг переноса (C)

сброшен, иначе РС = РС+1.

None

1 /2

BRSH

k

Если, например, Rd Rr (C = 0),

тогда PC  PC + k + 1; –­ ­64 ≤ k ≤ +63

–­ ­64 ≤ k ≤ +63

BRSH sprei

Перейти к метке sprei, если

равно или больше”, иначе РС = РС+1.

None

1 /2

BRLO

k

Если, например, Rd < Rr (C=1), тогда

PC  PC + k + 1; –­ ­64 ≤ k ≤ +63

BRLO sprei

Перейти к метке если “меньше”,

иначе

РС = РС+1.

None

1 /2

BRMI

k

Если N=1, тогда PC  PC + k + 1,

–­ ­64 ≤ k ≤ +63

BRMI sprei

Перейти к метке sprei, если “минус”,

иначе РС = РС+1.

None

1 /2

BRPL

k

Если N = 0, тогда PC  PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRPL sprei

Перейти к метке sprei, если “плюс”,

иначе РС = РС+1.

None

1 /2

BRGE

k

Если, например, Rd  Rr (N V= 0),

тогда PC ¬ PC + k + 1; –­ ­64 ≤ k ≤ +63

BRGE sprei

Перейти к метке sprei, если “больше или

равно со знаком”, иначе РС = РС+1.

None

1/2

Мнемо­код

Опе­ранды

Команды передачи управления

Примеры

записи

команд

Описание команд

Флаги

Циклы

BRLT

k

Если, например, Rd  Rr (N V= 1),

тогда PC ¬ PC + k + 1, –­ ­64 ≤ k ≤ +63

BRLT sprei

Перейти к метке sprei, если “меньше со знаком”,

иначе РС = РС+1.

None

1 /2

BRHS

k

Если H= 1, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRHS sprei

Перейти к метке sprei, если флаг внутреннего

переноса “H” установлен, иначе РС = РС+1.

None

1 /2

BRHC

k

Если H = 0, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRHC sprei

Перейти к метке sprei, если флаг внутреннего

переноса “H” сброшен, иначе РС = РС+1.

None

1 /2

BRTS

k

Если T=1, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRTS sprei

Перейти к метке sprei, если флаг “T” установлен,

иначе РС = РС+1.

None

1 /2

BRTC

k

Если T = 0, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRTC sprei

Перейти к метке sprei, если флаг “T”

сброшен, иначе РС = РС+1.

None

1 /2

BRVS

k

Если V= 1, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRVS sprei

Перейти к метке sprei, если флаг переполнения

“V” установлен, иначе РС = РС+1.

None

1 /2

BRVC

k

Если V = 0, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

sprei - метка

BRVC sprei

Перейти к метке sprei, если флаг переполнения

“V” сброшен, иначе РС = РС+1.

None

1 /2

BRIE

k

Если I = 1, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRIE sprei

Перейти к метке sprei, если флаг прерывания

“I” установлен, иначе РС = РС+1.

None

1 /2

BRID

k

Если I = 0, тогда PC ¬ PC + k + 1;

–­ ­64 ≤ k ≤ +63

BRID sprei

Перейти к метке sprei, если флаг прерывания

“I” сброшен, иначе РС = РС+1.

None

1 /2

Таблица 5.34. Группа команд работы с битами МКAT90S8515

Мнемо­код

Опе­ранды

Команды работы с битами

Примеры

записи

команд

Описание команд

Флаги

Циклы

SBI

P, b

I/O(P,b)  1; b=0¸7, P(I/O)=0¸31

SBI $1C, 0

Установка бита (0 - EERE) в регистре I/O (EECR)

None

2

CBI

P, b

I/O(P,b)  0; b=0¸7, P(I/O)=0¸31

CBI $12, 6

Сброс бита (6) в регистре I/O (порт D)

None

2

SBR

Rd, K

Rd  Rd v K; d = 16 ¸ 31, K = 0 ¸ 255

SBR R17, 6

SBR R19, $0F0

R17¬R17 v 6; установить биты 2 и 3 в R17

R19¬R19 v $0F0; установить биты 5, 6, 7, 8 в R19

Z, N, V

1

CBR

Rd, K

Rd  Rd Ù ($FF - K);

d = 16 ¸ 31, K = 0 ¸ 255

CBR R20, $0F0

CBR R19, 1

R20¬R20Ù($0FF-$0F0), сброс бит 5¸8 в R20

R19¬R19Ù(255-1), сброс 0 бита в R19

Z, N, V

1

LSL

Rd

Rd(n+1)Rd(n), Rd(0)0; d=0¸31

LSL R3

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

Z,C,N,V

1

LSR

Rd

Rd(n)Rd(n+l), Rd(7)0; d=0¸31

LSR R3

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

Z,C,N,V

1

ROL

Rd

Rd(0)  C, Rd(n+1)  Rd(n),

C  Rd(7); d = 0 ¸ 31

ROL R2

Циклический сдвиг влево через С

Z,C,N,V

1

ROR

Rd

Rd(7)  C, Rd(n)  Rd(n+1),

C  Rd(0); d = 0 ¸ 31

ROR R4

Циклический сдвиг вправо через С

Z,C,N,V

1

ASR

Rd

Rd(n)Rd(n+1), n=0..6; d = 0 ¸ 31

ASR R15

Арифметический сдвиг вправо

Z,C,N,V

1

BSET

s

SREG(s)  1; s = 0 ¸ 7

BSET 7

Установка флага "s" в SREG (например, бит 7 I=1)

SREG(s)

1

BCLR

s

SREG(s)  0; s = 0 ¸ 7

BCLR 0

Сброс флага "s" в SREG (например C=0)

SREG(s)

1

BST

Rr, b

T  Rr(b); r = 0 ¸ 31, b = 0 ¸ 7

BST R3, 3

Сохранить бит из регистра в Т (например, бит 3 из R3)

T

1

BLD

Rd, b

Rd(b)  T; d = 0 ¸ 31, b = 0  7

BLD R0, 4

Загрузить флаг Т в регистр (например в бит 4 регистра R0)

None

1

SEC

C  1

SEC

Установить флаг С в SREG

C

1

CLC

C  0

CLC

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

C

1

SEN

N  1

SEN

Установить флаг отрицательного числа N

N

1

CLN

N  0

CLN

Сбросить флаг отрицательного числа N

N

1

SEZ

Z  1

SEZ

Установить флага нуля Z

Z

1

CLZ

Z  0

CLZ

Сбросить флаг нуля Z

Z

1

SEI

I  1

SEI

Установить флаг прерываний I

I

1

CLI

I  0

CLI

Сбросить флаг прерываний I

I

1

SES

S  1

SES

Установить флаг числа со знаком S

S

1

CLS

S  0

CLS

Сбросить флаг числа со знаком S

S

1

SEV

V  1

SEV

Установить флаг переполнения V

V

1

CLV

\/  0

CLV

Сбросить флаг переполнения V

V

1

SET

T  1

SET

Установить флаг Т

T

1

CLT

T  0

CLT

Сбросить флаг Т

T

1

SEH

H  1

SHE

Установить флаг внутреннего переноса Н

H

1

CLH

H  0

CLH

Сбросить флаг внутреннего прерывания Н

H

1

NOP

NOP

Нет операции (пустой цикл, используется как задержка)

None

1

SLEEP

Смотри специальное описание

SLEEP

Спать (перевод в режим пониженного энергопотребления)

None

3

WDR

Смотри специальное описание

WDR

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

None

1

Ниже приведён пример программы, написанной на языке АССЕМБЛЕР микроконтроллера AT90S8515.

Задание. Составить программу, реализующую действие А-В. Если в результате выполнения операции бит заёма установлен, то вызвать подпрограмму START, в которой результат записать в ячейку 160 ОЗУ. Если не установлен, то выполнить действие А+В и результат вывести в порт D (А находится в R2, В находится в R5).