Выбрать главу

Унарный минус

Обозначение:

Описание: возвращает число с измененным на противоположный знаком.

Умножение

Обозначение: *

Описание: возвращает результат умножения двух чисел. Приоритет: 13.

Пример: ldi r30,label*2; Загрузить в регистр r30 label*2

Деление

Обозначение: /

Описание: возвращает целую часть от деления левого параметра на правый.

Приоритет: 13.

Пример: ldi r30, label/2; Загрузить в регистр r30 label/2

Сложение

Обозначение: +

Описание: возвращает сумму двух чисел.

Приоритет: 12.

Пример: ldi г30,с1+с2; Загрузить в регистр r30 с1+с2

Вычитание

Обозначение: -

Описание: возвращает результат вычитания правого числа из левого.

Приоритет: 12.

Пример: ldi г17,с1-с2; Загрузить в регистр r30 с1-с2

Сдвиг влево

Обозначение: <<

Описание: возвращает значение левого числа, сдвинутое влево на число раз, равное правому числу.

Приоритет: 11.

Пример: ldi r17,1<<3; Загружает в регистр г17 число 1, сдвинутое влево на 3 бита

Сдвиг вправо

Обозначение: >>

Описание: возвращает значение левого числа, сдвинутое вправо на число раз, равное правому числу.

Приоритет: 11.

Пример: ldi r17,1>>2; Загружает в регистр r17 число 1, сдвинутое вправо на 2 бита

Меньше

Обозначение: <

Описание: возвращает 1, если первое число меньше второго, иначе— 0.

Приоритет: 10.

Пример: ori r18,bitmask*(c1<c2)+1

Меньше или равно

Обозначение: <=

Описание: возвращает 1, если первое число меньше второго или равно ему, иначе — 0.

Приоритет: 10.

Пример: ori r18,bitmask*(c<=c2)+1

Больше

Обозначение: >

Описание: возвращает 1, если первое число больше второго, иначе— 0.

Приоритет: 10.

Пример: ori r18,bitmask*(c1>c2)+1

Больше или равно

Обозначение: >=

Описание: возвращает 1, если первое число больше второго или равно ему, иначе — 0.

Приоритет: 10.

Пример: ori r18,bitmask*(c1>=c2)+1

Равно

Обозначение: ==

Описание: возвращает 1, если первое число равно второму, иначе — 0.

Приоритет: 9

Пример: andi г19, bitmask*(c1==c2)+1

Не равно

Обозначение: !=

Описание: возвращает 1, если первое число не равно второму, иначе — 0.

Приоритет: 9.

Пример:.SET flag=(c1!=с2)

Побитовое И

Обозначение: &

Описание: возвращает результат побитной операции «И» между операндами.

Приоритет: 8.

Пример: ldi r18,High(c1&c2)

Побитовое исключающее ИЛИ

Обозначение: ^

Описание: возвращает результат побитной операции «исключающее ИЛИ» между операндами.

Приоритет: 7.

Пример: ldi r18,Low(c1^c2)

Побитовое ИЛИ

Обозначение: |

Описание: возвращает результат побитной операции «ИЛИ» между операндами.

Приоритет: 6.

Пример: ldi ri8,Low(c2|c2)

Логическое И

Обозначение: &&

Описание: возвращает 1, если оба выражения не равны нулю, иначе — 0.

Приоритет: 5.

Пример: ldi r8,Low(ci&&c2)

Логическое ИЛИ

Обозначение: ||

Описание: возвращает 0, если оба выражения равны нулю, иначе — 0.

Приоритет: 4.

Пример: ldi r18,Low(ci||с2)

Описание программы WAVRASM

Здесь опишем специфические особенности применения транслятора ассемблера WAVRASM.

Открытие файла программы

Теоретически нет ограничений на количество одновременно oткрытых файлов исходных текстов. Размер каждого файла не должен превышать примерно 28 Кб. Для работы с файлами большего размера следует использовать версию ассемблера, работающую из командной строки MS-DOS — avrasm. Также можно разбить всю программу на несколько файлов и объединить их с помощью директивы INCLUDE.

Для каждого открытого файла создается окно с его текстом.

Для создания нового файла следует выполнить команду меню File>>New (быстрая комбинация клавиш: Alt-F N). Для открытия существующего файла следует выполнить команду меню File>>Open (быстрая комбинация клавиш: Alt-F О).