Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety.doc
Скачиваний:
17
Добавлен:
08.03.2015
Размер:
7.46 Mб
Скачать

16. Система команд. Команды логических операций.

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

AND Rd,Rr – логическое «и» двух регистров Rd ← Rd Ʌ Rr

EOR Rd,Rr – логическое «исключающая или» двух регистров Rd ← Rd ⊕ Rr

ORI Rd,Rr – логическое «или» двух регистров Rd ← Rd V Rr

SLR Rd,k логическое «или» регистра и константы

SKR Rd – сброс всех битов регистра Rd

SER Rd – установка всех битов регистра Rd

17. Система команд. Команды арифметических операций.

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

Почти все команды рассматриваемой группы выполняются за один такт. Команды умножения и команды, оперирующие 2-байтными значениями, выполняются за два такта.

ADD Rd,Rr – Rd ← Rd+Rr

ADC RD,Rr – служит для организации команд сложения многобайтных чисел с учётом переноса Rd ← Rd+Rr+C (C – флаг переполнения разрядной сетки)

SUB Rd,Rr – Rd ← Rd-Rr

SBC Rd,Rr – Rd ← Rd-Rr-C

SUBI Rd,k – Rd ← Rd-k

SBSI Rd,k – Rd ← Rd-k-C

DEC Rd – уменьшение на 1

INC Rd – увеличение на 1

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

LSR Rd – логический сдвиг вправо

LSL Rd – логический сдвиг влево

ROL Rd – сдвиг влево

ROR Rd – сдвиг вправо

MUL Rd,Rr – умножение содержимого регистров Rd и Rr (команда умножения целых положительных чисел)

MULS Rd,Rr – умножение чисел со знаком

MULSU Rd,Rr – перемножение целого положительного числа и числа со знаком.

18. Система команд. Команды битовых операций.

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

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

CBI RS,b – сброс указанного в RS разряда (0)

SBI RS,b – установка указанного в RS разряда (1)

RS – регистры специального назначения s =0÷31

b – номер бита, с которым работает команда 0÷7

BCLR S – сброс бита (0)

BSET S – установка бита (1)

S – номер разряда регистра флагов 0÷7

SBE RD,K – установка битов RD=RD V K

SBR RD,K – сброс битов RD=RD Ʌ K

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]