Материал: 1755

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

Синтаксис:

Операнды:

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

 

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