Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Операторы



Все операторы ассемблера перечислены в таблице. Порядок выполнения операторов в выражении определяется приоритетом. Операторы с большим приоритетом выполняются в первую очередь. Кроме того, отдельные выражения могут быть заключены в круглые скобки. Такие выражения также вычисляются в первую очередь.

Таблица 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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...