Материал: 1755

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Синтаксис:

Операнды:

Счетчик программ:

SBR Rd,K

16 < d < 31, 0 < K < 255

PC <- PC + 1

S N V, для проверок со знаком.

V 0, очищен.

NУстанавливается, если в результате установлен MSB, в ином случае очищается.

Z Устанавливается, если результат $00, в ином случае очищается.

Пример:

sbr r16, 3F0 ; Установить биты 0 и 1 в r16. sbr r17, $F0 ; Установить старшие 4 бита в r17.

Слов: 1 (2 байта). Циклов: 1.

Команда SBRC – пропустить, если бит в регистре очищен

Описание:

Команда проверяет состояние бита в регистре и, если этот бит очищен, пропускает следующую команду.

Операция: If Rr (b) = 0 then PC <-- PC + 2 (or 3) else PC <-- PC + 1

Синтаксис:

Операнды:

Счетчик программ:

SBRC Rr,b

0

< r < 31,

PC <-- PC + 1, если условия

 

0

< b < 7

не соблюдены, нет пропуска.

 

 

 

PC <-- PC + 2, если следующая

 

 

 

команда длиной в 1слово.

 

 

 

PC <-- PC + 3, если следующие

 

 

 

команды JMP или CALL.

Пример:

sub

r0,

r1

; Вычесть r1 из r0.

sbrc r0, 7

;

Пропустить,

если бит 7 в r0 очищен.

sub

r0,

r1

;

Выполняется

только, если бит 7 в r0

nop

;не очищен.

; Продолжать (пустая операция).

Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, нет пропуска, 2, если условия соблюдены, выполняется пропуск.

Команда SBRS – пропустить, если бит в регистре установлен

Описание:

Команда проверяет состояние бита в регистре и, если этот бит установлен, пропускает следующую команду.

Операция: If Rr(b) = 1 then PC <-- PC + 2 (or 3) else PC <-- PC + 1

100

Синтаксис:

Операнды:

Счетчик программ:

SBRS Rr,b

0 < r < 31,

PC <-- PC + 1, если условия

 

 

0 < b < 7

не соблюдены, нет пропуска.

 

 

 

PC <-- PC + 2, если следующая

 

 

 

команда длиной в 1слово.

 

 

 

PC <-- PC + 3, если следующие

Пример:

 

команды JMP или CALL.

 

 

sub

r0, r1 ; Вычесть r1 из r0.

sbrs

r0, 7 ; Пропустить, если бит 7 в r0 установлен.

neg

r0

; Выполняется только, если бит 7 в r0

Nop

 

;не установлен.

 

 

; Продолжать (пустая операция).

Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, нет пропуска, 2, если условия соблюдены, выполняется пропуск.

Команда SEC – установить флаг переноса

Описание:

Команда устанавливает флаг переноса (C) в регистре статуса (SREG)

Операция: C <-- 1

Синтаксис:

Операнды:

Счетчик программ:

SEC

нет

PC <-- PC + 1

C = 1. Флаг переноса установлен.

 

Пример:

; Установить флаг переноса.

sec

adc r0, r1

; r0 = r0 + r1 + 1.

Слов: 1 (2 байта). Циклов: 1.

 

Команда SEH – установить флаг полупереноса

Описание:

Команда устанавливает флаг полупереноса (H) в регистре статуса (SREG).

Операция: H <-- 1

Синтаксис:

Операнды:

Счетчик программ:

SEH

нет

PC <-- PC + 1

H=1. Флаг полупереноса установлен.

Пример:

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

Слов: 1 (2 байта). Циклов: 1.

101

Команда SEI – установить флаг глобального прерывания

Описание:

Команда устанавливает флаг глобального прерывания (I) в регистре

статуса (SREG).

 

 

Операция: I <-- 1

 

 

Синтаксис:

Операнды:

Счетчик программ:

SEI

нет

PC <-- PC + 1

I = 1. Флаг глобального прерывания установлен.

Пример:

; Запретить прерывания.

cli

in r13, $16 ; Считать порт B.

 

sei

; Разрешить прерывания.

Слов: 1 (2 байта). Циклов: 1.

 

Команда SEN – установить флаг отрицательного значения

Описание:

Команда устанавливает флаг отрицательного значения (N) в регистре

статуса (SREG).

 

 

Операция: N <-- 1

 

 

Синтаксис:

Операнды:

Счетчик программ:

SEN

нет

PC <-- PC + 1

N = 1. Флаг переноса установлен.

Пример:

add r2, r19 ; Сложить r19 с r2.

sen ; Установить флаг отрицательного значения.

Слов: 1 (2 байта). Циклов: 1.

Команда SER – установить все биты регистра

Описание:

Значение $FF заносится непосредственно в регистр назначения Rd.

Операция:

Rd <-- $FF

 

 

Синтаксис:

Операнды:

Счетчик программ:

Пример:

SER Rd

16 < d < 31

PC <-- PC + 1

r16

; Очистить r16.

 

clr

 

ser

r17

; Установить r17.

out

#18, r16 ; Записать нули в порт B.

nop

 

; Задержка (пустая операция).

out

#18, r17 ; Записать единицы в порт B.

Слов: 1 (2 байта). Циклов: 1.

102

Команда SES – установить флаг знака

Описание:

Команда устанавливает флаг учета знака (S) в регистре статуса (SREG).

Операция: :S <-- 1

Синтаксис:

Операнды:

Счетчик программ:

SES

нет

PC <-- PC + 1

S = 1. Флаг учета знака установлен.

Пример:

add r2, r19 ; Сложить r19 с r2.

ses

; Установить флаг отрицательного значения.

Слов: 1 (2 байта). Циклов: 1.

Команда SET – установить флаг T

Описание:

Команда устанавливает флаг пересылки (T) в регистре статуса (SREG).

Операция: T <-- 1

Синтаксис:

Операнды:

Счетчик программ:

SET

нет

PC <-- PC + 1

T = 1. Флаг пересылки установлен.

 

Пример:

 

 

set ; Установить T флаг.

 

Слов: 1 (2 байта). Циклов: 1.

 

 

Команда SEV – установить флаг переполнения

Описание:

Команда устанавливает флаг переполнения (V) в регистре статуса (SREG).

Операция: V <-- 1

Синтаксис:

Операнды:

Счетчик программ:

SEV

нет

PC <-- PC + 1

V = 1. Флаг переполнения установлен.

 

Пример:

 

 

add r2, r19 ; Сложить r19 с r2

 

sev

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

Слов: 1 (2 байта). Циклов 1.

Команда SEZ – установить флаг нулевого значения

Описание:

Команда устанавливает флаг нулевого значения (Z) в регистре статуса

(SREG).

103

Операция: Z <-- 1

 

 

Синтаксис:

Операнды:

Счетчик программ:

SEZ

нет

PC <-- PC + 1

Z = 1. Флаг нулевого значения установлен.

Пример:

add

r2, r19 ; Сложить r19 с r2.

sez

; Установить флаг нулевого значения.

Слов: 1 (2 байта). Циклов: 1.

Команда SLEEP – установить режим SLEEP

Описание:

Команда устанавливает схему в SLEEP режим, определяемый регистром управления центрального процессорного устройства (ЦПУ). Когда прерывание выводит ЦПУ из режима SLEEP, команда, следующая за командой SLEEP, будет выполнена прежде, чем отработает обработчик прерывания.

Операция: См. описание режима пониженного энергопотребления в документации.

Синтаксис:

Операнды:

Счетчик программ:

SLEEP

нет

PC <-- PC + 1

Пример:

r0, r11 ;

Копировать r11 в r0.

mov

sleep

;

Перевести MCU в режим sleep.

Слов: 1 (2 байта). Циклов: 1.

Команда ST – записать косвенно из регистра в ОЗУ с использованием индекса X

Описание:

Записывается косвенно один байт из регистра в ОЗУ. Положение байта в ОЗУ указывается 16-разрядным регистром-указателем X в регистровом файле. Обращение к памяти ограничено текущей страницей объемом 64 Кбайта. Для обращения к другой странице ОЗУ необходимо изменить регистр RAMPX в области ввода/вывода. Регистр-указатель X может остаться неизменным после выполнения команды, но может быть инкрементирован или декрементирован. Эта особенность очень удобна при использовании регистра-указателя X в качестве указателя стека.

Использование X-указателя:

 

Операция:

 

Комментарий:

(i)

(X) <-- Rr

 

X: Неизменен.

(ii)

(X) <-- Rr

X <-- X + 1

X: Инкрементирован впоследствии.

(iii) X <-- X - 1

( X) <-- Rr

X: Предварительно декрементирован.

104