Главная страница
Навигация по странице:

  • Приоритет Символ Описание

  • Символ

  • Описание

  • Приоритет

  • Пример

  • Справка по Ассемблеру для AVR. Справка по Ассемблеру для avr


    Скачать 0.53 Mb.
    НазваниеСправка по Ассемблеру для avr
    Дата20.01.2023
    Размер0.53 Mb.
    Формат файлаdoc
    Имя файлаСправка по Ассемблеру для AVR.doc
    ТипДокументы
    #896092
    страница3 из 3
    1   2   3

    Выражения


    Компилятор позволяет использовать в программе выражения которые могут состоять операндов, операторов и функций. Все выражения являются 32-битными.

    Операнды


    Могут быть использованы следующие операнды:

    • Метки определённые пользователем (дают значение своего положения).

    • Переменные определённые директивой SET

    • Константы определённые директивой EQU

    • Числа заданные в формате:

      • Десятичном (принят по умолчанию): 10, 255

      • Шестнадцатеричном (два варианта записи): 0x0a, $0a, 0xff, $ff

      • Двоичном: 0b00001010, 0b11111111

      • Восьмеричном (начинаются с нуля): 010, 077

    • PC - текущее значение программного счётчика (Programm Counter)

    Операторы


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

    Приоритет

    Символ

    Описание

    14

    !

    Логическое отрицание

    14



    Побитное отрицание

    14

    -

    Минус

    13

    *

    Умножение

    13

    /

    Деление

    12

    +

    Суммирование

    12

    -

    Вычитание

    11

    <<

    Сдвиг влево

    11

    >>

    Сдвиг вправо

    10

    <

    Меньше чем

    10

    <=

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

    10

    >

    Больше чем

    10

    >=

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

    9

    ==

    Равно

    9

    !=

    Не равно

    8

    &

    Побитное И

    7

    ^

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

    6

    |

    Побитное ИЛИ

    5

    &&

    Логическое И

    4

    ||

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

    Логическое отрицание


    Символ: !
    Описание: Возвращает 1 если выражение равно 0, и наоборот
    Приоритет: 14
    Пример: ldi r16, !0xf0  ; В r16 загрузить 0x00

    Побитное отрицание


    Символ:
    Описание: Возвращает выражение в котором все биты проинвертированы
    Приоритет: 14
    Пример: ldi r16, 0xf0  ; В r16 загрузить 0x0f

    Минус


    Символ: -
    Описание: Возвращает арифметическое отрицание выражения
    Приоритет: 14
    Пример: ldi r16,-2  ; Загрузить -2(0xfe) в r16

    Умножение


    Символ: *
    Описание: Возвращает результат умножения двух выражений
    Приоритет: 13
    Пример: ldi r30, label*2

    Деление


    Символ: /
    Описание: Возвращает целую часть результата деления левого выражения на правое
    Приоритет: 13
    Пример: ldi r30, label/2

    Суммирование


    Символ: +
    Описание: Возвращает сумму двух выражений
    Приоритет: 12
    Пример: ldi r30, c1+c2

    Вычитание


    Символ: -
    Описание: Возвращает результат вычитания правого выражения из левого
    Приоритет: 12
    Пример: ldi r17, c1-c2

    Сдвиг влево


    Символ: <<
    Описание: Возвращает левое выражение сдвинутое влево на число бит указанное справа
    Приоритет: 11
    Пример: ldi r17, 1<

    Сдвиг вправо


    Символ: >>
    Описание: Возвращает левое выражение сдвинутое вправо на число бит указанное справа
    Приоритет: 11
    Пример: ldi r17, c1>>c2  ; В r17 загрузить c1 сдвинутое вправо c2 раз

    Меньше чем


    Символ: <
    Описание: Возвращает 1 если левое выражение меньше чем правое (учитывается знак), и 0 в противном случае
    Приоритет: 10
    Пример: ori r18, bitmask*(c1

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


    Символ: <=
    Описание: Возвращает 1 если левое выражение меньше или равно чем правое (учитывается знак), и 0 в противном случае
    Приоритет: 10
    Пример: ori r18, bitmask*(c1<=c2)+1

    Больше чем


    Символ: >
    Описание: Возвращает 1 если левое выражение больше чем правое (учитывается знак), и 0 в противном случае
    Приоритет: 10
    Пример: ori r18, bitmask*(c1>c2)+1

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


    Символ: >=
    Описание: Возвращает 1 если левое выражение больше или равно чем правое (учитывается знак), и 0 в противном случае
    Приоритет: 10
    Пример: ori r18, bitmask*(c1>=c2)+1

    Равно


    Символ: ==
    Описание: Возвращает 1 если левое выражение равно правому (учитывается знак), и 0 в противном случае
    Приоритет: 9
    Пример: andi r19, bitmask*(c1==c2)+1

    Не равно


    Символ: !=
    Описание: Возвращает 1 если левое выражение не равно правому (учитывается знак), и 0 в противном случае
    Приоритет: 9
    Пример: .SET flag = (c1!=c2)  ;Установить flag равным 1 или 0

    Побитное И


    Символ: &
    Описание: Возвращает результат побитового И выражений
    Приоритет:  8
    Пример: ldi r18, High(c1&c2)

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


    Символ: ^
    Описание: Возвращает результат побитового исключающего ИЛИ выражений
    Приоритет: 7
    Пример: ldi r18, Low(c1^c2)

    Побитное ИЛИ


    Символ: |
    Описание: Возвращает результат побитового ИЛИ выражений
    Приоритет: 6
    Пример: ldi r18, Low(c1|c2)

    Логическое И


    Символ: &&
    Описание: Возвращает 1 если оба выражения не равны нулю, и 0 в противном случае
    Приоритет: 5
    Пример: ldi r18, Low(c1&&c2)

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


    Символ: ||
    Описание: Возвращает 1 если хотя бы одно выражение не равно нулю, и 0 в противном случае
    Приоритет: 4
    Пример: ldi r18, Low(c1||c2)

    Функции


    Определены следующие функции:

    • LOW(выражение) возвращает младший байт выражения

    • HIGH(выражение) возвращает второй байт выражения

    • BYTE2(выражение) то же что и функция HIGH

    • BYTE3(выражение) возвращает третий байт выражения

    • BYTE4(выражение) возвращает четвёртый байт выражения

    • LWRD(выражение) возвращает биты 0-15 выражения

    • HWRD(выражение) возвращает биты 16-31 выражения

    • PAGE(выражение) возвращает биты 16-21 выражения

    • EXP2(выражение) возвращает 2 в степени (выражение)

    • LOG2(выражение) возвращает целую часть log2(выражение)

    Использование программы


    Этот раздел описывает использование компилятора и встроенного редактора

    • Открытие файлов

    • Сообщения об ошибках

    • Опции

    Открытие файлов


    В WAVRASM могут быть открыты как новые так и существующие файлы. Количество открытых файлов ограничено размером памяти, однако объём одного файла не может превышать 28 килобайт (в связи с ограничением MS-Windows). Компиляция файлов большего размера возможна, но они не могут быть редактируемы встроенным редактором. Каждый файл открывается в отдельном окне.

    Сообщения об ошибках


    После компиляции программы появляется окно сообщений. Все обнаруженные компилятором ошибки будут перечислены в этом окне. При выборе строки с сообщением о ошибке, строка исходного файла, в которой найдена ошибка, становится красной. Если же ошибка находится во вложенном файле, то этого подсвечивания не произойдёт.

    Если по строке в окне сообщений клацнуть дважды, то окно файла с указанной ошибкой становится активным, и курсор помещается в начале строки содержащей ошибку. Если же файл с ошибкой не открыт (например это вложенный файл) то он будет автоматически открыт.

    Учтите, что если Вы внесли изменения в исходные тексты (добавили или удалили строки), то информация о номерах строк в окне сообщений не является корректной.

    Опции


    Некоторые установки программы могут быть изменены через пункт меню Options. Если выбрать этот пункт то появится вот такое диалоговое окно:



    В поле ввода озаглавленном "List-file extension" вводится расширение используемое для файла листинга, а в поле "Output-file extension" находится расширение для файлов с результатом компиляции программы. В прямоугольнике "Output file format" можно выбрать формат выходного файла (как правило используется интеловский). Однако это не влияет на объектный файл (используемый AVR Studio), который всегда имеет один и тот же формат, и расширение OBJ. Если в исходном файле присутствует сегмент EEPROM то будет также создан файл с расширением EEP. Установки заданные в данном окне запоминаются на постоянно, и при следующем запуске программы, их нет необходимости переустанавливать.

    Опция "Wrap relative jumps" даёт возможность "заворачивать" адреса. Эта опция может быть использована только на чипах с объёмом программной памяти 4К слов (8К байт), при этом становится возможным делать относительные переходы (rjmp) и вызовы подпрограмм (rcall) по всей памяти.

    Опция "Save before assemble" указывает программе на необходимость автоматического сохранения активного окна (и только его) перед компиляцией.

    Если Вы хотите чтобы при закрытии программы, закрывались все открытые окна, то поставьте галочку в поле "Close all windows before exit".



    Atmel, AVR являются зарегистрированными товарными знаками фирмы Atmel Corporation

    Перевод выполнил Руслан Шимкевич, ruslansh@i.com.ua




    1   2   3


    написать администратору сайта