![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Все операторы ассемблера перечислены в таблице. Порядок выполнения операторов в выражении определяется приоритетом. Операторы с большим приоритетом выполняются в первую очередь. Кроме того, отдельные выражения могут быть заключены в круглые скобки. Такие выражения также вычисляются в первую очередь.
Таблица 4.1. Операторы языка Atmel AVR Assembler
Символ | Описание | Приоритет | |
! | Logical Not | Логическое НЕ | |
- | Bitwise Not | Побитное НЕ | |
- | Unary Minus | Смена знака | |
* | Multiplication | Умножение | |
1 | Division | Деление | |
+ | Addition | Сложение | |
- | Subtraction | Вычитание | |
« | Shift left | Сдвиг влево | |
» | Shift right | Сдвиг вправо | |
< | Less than | Меньше | |
<= | Less than or equal | Меньше или равно | |
> | Greater than | Больше | |
>= | Greater than or equal | Больше или равно | |
== | Equal | Равно | |
!= | Not equal | Не равно | |
& | Bitwise And | Побитное И | |
Л | Bitwise Xor | Побитное ИСКЛЮЧАЮЩЕЕ ИЛИ | |
| | Bitwise Or | Побитное ИЛИ | |
&& | Logical And | Логическое И | |
Logical Or | Логическое ИЛИ |
Логическое НЕ
Оператор | возвращает 1, если выражение равно 0, в противном случае возвращает 0
Например: ldir16,!$fO; в регистр r16 пересылается $00
Побитное НЕ
Оператор ~ возвращает побитную инверсию выражения. Например: ldi M6,~$fO; в регистр r16 пересылается $0f
Смена знака
Оператор - возвращает отрицание арифметического выражения Например: ldi r16,-2; пересылается число-2 ($fe) в регистр r16
Умножение
Оператор * возвращает произведение выражений
Например: ldi r30,label*2; пересылается в регистр r30 произведение label*2
Деление
Оператор / возвращает целую часть от деления левой части выражения на правую. Наример: ldi r30,label/2; пересылается в регистр r30 целая часть выражения label/2.
Сложение
Оператор + возвращает сумму двух выражений
Пример: ldi гЗО,с1+с2; пересылается в регистр r30 сумма с1+с2
Вычитание
Оператор - возвращает разность двух выражений. Например: ldi r17,с1-с2;пересылается в r17 разность с1-с2
Сдвиг влево
Оператор «возвращает левое выражение сдвинутое влево на количество бит, указанных в правом выражении.
Например: ldi r17,1«bitmask; Пересылается в регистр r17 число 1 сдвинутое влево на bitmask бит.
Сдвиг вправо
Оператор» возвращает выражение в левой части сдвинутое вправо на количество бит, указанных в правой части.
Например: ldi r17,с1»с2;пересылается в регистр r17 число с1 сдвинутое вправо на c2 бит.
Меньше
Оператор < возвращает 1, если выражение в левой части меньше, чем выражение в правой; О-в противном случае
Например: ori r18,bitmask*(c1<c2)+1 выполняется логическое ИЛИ регистра r18 с результатом вычислений bitmask*(c1<c2)+1
Меньше или равно
Оператор <= возвращает 1, если выражение в левой части меньше или равно, чем выражение в правой части; О-в противном случае
Например: ori M8,bitmask*(c1<=c2)+1; логическое ИЛИ r18 с результатом вычисления выражения.
Больше
Оператор > возвращает 1, если выражение со знаком слева больше, чем выражение со знаком справа; О-в противном случае.
Например: ori r18,bitmask*(c1>c2)+1; логическое ИЛИ r18 с выражением.
Больше или равно
Оператор >= возвращает 1, если выражение в левой части больше или равно, выражению в правой; О-в противном случае..
Например: ori r18,bitmask*(c1>=c2)+1; логическое ИЛИ r18 с выражением.
Равно
Оператор == возвращает 1, если выражение в левой части равно, выражению в правой; О-в противном случае..
Например: andi r19,bitmask*(c1 ==с2)+1; логическое И r19 с выражением
Не равно
Оператор |= возвращает 1, если выражение в левой части не равно, выражению в правой; О-в противном случае..
Например:.set flag=(c1 |=c2); установка переменной flag Побитное И
Оператор & возвращается поразрядное логическое И между двумя выражениями Например: ldi r18,High(c1&c2); пересылка в r18 выражения
Побитное ИСКЛЮЧАЮЩЕЕ ИЛИ
Оператор ^ возвращается поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ между двумя выражениями
Например: ldi r18,Low(dAc2);пересылка в r18 выражения
Побитное ИЛИ
Оператор | возвращается поразрядное ИЛИ между двумя выражениями Пример: ldi r8,Low(c1 |c2); пересылка в r 8 выражения
Логическое И
Оператор && возвращается 1, если оба выражения отличны от нуля; О-в остальных случаях
Например: ldi r18,Low(c1&&c2); пересылка в r1 8 выражения
Логическое ИЛИ
Оператор || возвращает 1, если один или оба из выражения отличны от нуля, О-в остальных случаях.
Например: ldi r18,Low(d||c2); пересылка в r8 выражения
Дата публикования: 2014-11-03; Прочитано: 482 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!