Синтаксис: |
Операнды: |
Счетчик программ: |
|
|
BSET s |
0 < s < 7 |
PC <- PC + 1 |
1, если s = 7: в ином случае не изменяется. |
|
||
1, если s = 6: в ином случае не изменяется. |
|
||
1, если s = 5: в ином случае не изменяется. |
|
||
1, если s = 4: в ином случае не изменяется. |
|
||
1, если s = 3: в ином случае не изменяется. |
|
||
1, если s = 2: в ином случае не изменяется. |
|
||
1, если s = 1: в ином случае не изменяется. |
|
||
1, если s = 0: в ином случае не изменяется. |
|
||
Пример: |
; Установить флаг T. |
|
|
bset 6 |
|
||
bset 7 |
; Разрешить прерывание. |
|
|
Слов: 1 (2 байта). Циклов: 1.
Команда BST переписать бит из регистра во флаг T регистра статуса
(SREG)
Описание:
Перезапись бита b из регистра Rd в флаг T регистра статуса (SREG).
Операция: T <-- Rd(b)
Синтаксис: |
Операнды: |
Счетчик программ: |
BST Rd,b |
0 < d < 31, 0 < b < 7 |
PC <- PC + 1 |
T 0, если бит b в Rd очищен: в ином случае устанавливается 1.
Пример:
; Копировать бит.
bst r1, 2 ; Сохранить бит 2 регистра r1 во флаге T. bld r0, 4 ; Загрузить T в бит 4регистра r0.
Слов: 1 (2 байта). Циклов: 1.
Команда CALL выполнить длинный вызов подпрограммы
Описание:
Вызов подпрограммы из памяти программ. Адрес возврата (к команде после CALL) сохраняется в стеке. (См. также RCALL).
Операция: PC <-- k
Синтаксис: |
Операнды: |
Счетчик программ: |
CALL k |
0 < k < 64K |
PC <-- kSTACK <-- PC + 2. |
|
|
SP <-- SP-2, (2 байта, 16 битов). |
70
Пример: |
mov r16, r0 |
; Копировать r0 в r16. |
|
||
|
call check |
; Вызвать подпрограмму. |
|
nop |
; Продолжать (пустая операция). |
check: |
|
. . . |
cpi r16, $42 ; Проверить, содержит ли r16 |
||
|
breq error |
;заданное значение. |
|
; Перейти, если содержит. |
|
|
ret |
; Вернуться из подпрограммы. |
error: |
rjmp error |
. . . |
; Бесконечная петля. |
||
Слов: 2 (4 байта). Циклов: 4. |
|
|
Команда CBI очистить бит в регистре ввода/вывода
Описание:
Очистка определенного бита в регистре ввода/вывода. Команда работает c младшими 32 регистрами ввода/вывода – адреса с 0 по 31.
Операция: I/O(P,b) <-- 0
Синтаксис: |
Операнды: |
Счетчик программ: |
CBI P,b |
0 < P < 31, 0 < b < 7 |
PC <-- PC + 1 |
Пример:
cbi $12, 7 ; Очистить бит 7 в Порте D.
Слов: 1 (2 байта). Циклов: 2.
Команда CBR очистить биты в регистре
Описание:
Очистка определенных битов регистра Rd. Выполняется логическое AND между содержимым регистра Rd и комплементом постоянной K.
Операция: Rd <-- Rd * ($FF - K)
Синтаксис: |
Операнды: |
Счетчик программ: |
CBR Rd |
16 < d < 31, 0 < K <255 |
PC <- PC + 1 |
S Для проверок со знаком , S = N V.
V 0.
NУстанавливается, если в результате установлен MSB, в ином случае очищается.
Z Устанавливается, если результат $00, в ином случае очищается.
Пример:
cbr r16, $F0 ; Очистить старший полубайт регистра r16. cbr r18, 1 ; Очистить бит в r18.
Слов: 1 (2 байта). Циклов: 1.
71
Команда CLC очистить флаг переноса в регистре статуса (SREG)
Описание:
Очистка флага переноса (C) в регистре статуса (SREG).
Операция: C <-- 0
Синтаксис: |
Операнды: |
Счетчик программ: |
CLC |
нет |
PC <- PC + 1 |
Пример: |
|
Сложить r0 с самим собой. |
add r0, r0 ; |
||
clc |
; |
Очистить флаг переноса. |
Слов: 1 (2 байта). Циклов: 1.
Команда CLH – очистить флаг полупереноса в регистре статуса
(SREG)
Описание:
Очистка флага полупереноса (H) в регистре статуса (SREG).
Операция: H <-- 0
Синтаксис: |
Операнды: |
Счетчик программ: |
CLH |
нет |
PC <- PC + 1 |
Пример:
clh ; Очистить флаг полупереноса.
Слов: 1 (2 байта). Циклов: 1.
Команда CLI очистить флаг глобального прерывания в регистре статуса (SREG)
Описание:
Очистка флага глобального прерывания (I) в регистре статуса (SREG).
Операция: I <-- 0
Синтаксис: |
Операнды: |
Счетчик программ: |
|
CLI |
|
нет |
PC <- PC + 1 |
Пример: |
; Запретить прерывания. |
||
cli |
|||
in r11, $16 ; Считать порт B.
sei ; Разрешить прерывания.
Слов: 1 (2 байта). Циклов: 1.
Команда CLN очистить флаг отрицательного значения в регистре статуса (SREG)
Описание:
Очистка флага отрицательного значения (N) в регистре статуса (SREG).
Операция: N <-- 0
72
|
Синтаксис: |
Операнды: |
Счетчик программ: |
|
CLN |
Нет |
PC <- PC + 1 |
Пример: |
|
|
|
add |
r2, r3 ; Сложить r3 с r2. |
|
|
cln |
; Очистить флаг отрицательного значения. |
||
Слов: 1 (2 байта). Циклов: 1. |
|
|
|
Команда CLR очистить регистр
Описание:
Очистка регистра. Команда выполняет Exclusive OR содержимого регистра с самим собой. Это приводит к очистке всех битов регистра.
Операция: Rd <-- Rd ^Rd
Синтаксис: |
Операнды: |
Счетчик программ: |
CLR Rd |
0 < d < 31 |
PC <- PC + 1 |
S |
0, oчищен. |
|
V |
0, oчищен. |
|
N |
0, oчищен. |
|
Z |
1, устанавливается. |
|
Пример:
clr r18 ; Очистить r18. loop: inc r18 ; Увеличить на 1 r18.
. . .
cpi r18, $50 ; Сравнить r18 с $50. brne loop
Слов: 1 (2 байта). Циклов: 1.
Команда CLS счистить флаг знака
Описание:
Очистка флага знака (S) в регистре статуса (SREG).
Операция: S <-- 0
Синтаксис: |
Операнды: |
Счетчик программ: |
CLS |
нет |
PC <- PC + 1 |
Пример: |
|
Сложить r3 с r2. |
add r2, r3 ; |
||
cls |
; |
Очистить флаг знака. |
Слов: 1 (2 байта). Циклов: 1.
73
Команда CLT очистить T флаг
Описание:
Очистка флага пересылки (T) в регистре статуса (SREG).
Операция: T <-- 0
Синтаксис: |
Операнды: |
Счетчик программ: |
CLT |
нет |
PC <- PC + 1 |
Пример:
clt ; Очистить T флаг
Слов: 1 (2 байта). Циклов: 1.
Команда CLV счистить флаг переполнения
Описание:
Очистка флага переполнения (V) в регистре статуса (SREG).
Операция: V <-- 0
Синтаксис: |
|
Операнды: |
Счетчик программ: |
|
|
CLV |
|
нет |
PC <- PC + 1 |
Пример: |
r2, r3 ; |
Сложить r3 с r2. |
||
add |
||||
clv |
|
; |
Очистить флаг переполнения. |
|
Слов: 1 (2 байта). Циклов: 1.
Команда CLZ очистить флаг нулевого значения
Описание:
Очистка флага нулевого значения (Z) в регистре статуса (SREG).
Операция: Z <-- 0
|
Синтаксис: |
Операнды: |
Счетчик программ: |
|
CLZ |
нет |
PC <- PC + 1 |
Пример: |
r2, r3 ; Сложить r3 с r2. |
||
add |
|||
clz |
; Очистить флаг нулевого значения. |
||
Слов: 1 (2 байта). Циклов: 1.
Команда COM выполнить дополнение до единицы
Описание:
Команда выполняет дополнение до единицы (реализует обратный код) содержимого регистра Rd.
Операция: Rd <-- $FF * Rd
Синтаксис: |
Операнды: |
Счетчик программ: |
COM Rd |
0 < d < 31 |
PC <- PC + 1 |
74