Описание команд AVR

February 23, 2011 by admin Комментировать »

Ранее приведены таблицы с описанием команд микроконтроллеров AVR, разбитые по группам. Кроме операции и операндов для каждой команды указаны признаки результата, формируемые в регистре SREG. Мнемоники команд, выполняемых только в микроконтроллерах семейства Mega, помечены *.

Группа арифметических и логических операций по составу достаточно традиционна для архитектуры 8-разрядных микроконтроллеров, за исключением микроконтроллеров семейства Mega. Так, например, в группу арифметических команд микроконтроллера ATmega8515 добавлены шесть операций умножения: беззнаковых чисел MUL, чисел со знаком MULS, беззнакового числа на число со знаком MULSU, дробных беззнаковых чисел FMUL, дробных со знаком FMULS, дробного беззнакового и дробного со знаком FMULSU. Дробные сомножители имеют формат 1.7, их произведение – формат 1.15, где справа от точки указано число дробных разрядов. Во всех операциях умножения источниками операндов являются регистры Rd и Rr, произведение формируется в регистрах R1:R0.

При выполнении операций сложения;вычитания приемником результата является один из регистров общего назначения, в котором до операции находится один из операндов. Таким образом, можно говорить о реализации АЛУ аккумуляторного типа по отношению к любому регистру общего назначения (сравните: микроконтроллеры с ядром MCS-51 имеют всего лишь один аккумулятор, что, безусловно, ухудшает эффективность обработки данных и ведет к снижению производительности в целом). Особенностью системы команд микроконтроллеров AVR является отсутствие команды двоично-десятичной коррекции.

Команды пересылки можно использовать для передачи данных из регистра в регистр, для пересылок между регистрами и косвенно адресуемыми ячейками адресного пространства SRAM, регистрами ввода;вывода и регистрами общего назначения, для сохранения и извлечения данных из стека, чтения констант из Flash- памяти программ и даже записи во Flash-память (в модели ATmega8515). Следует обратить внимание, что непосредственная загрузка константы в регистры общего назначения первой половины (R0…R15) невозможна. Для этого необходимо предварительно загрузить константу в один из регистров второй половины (R16…R31), а затем переслать содержимое вспомогательного регистра в регистр первой половины.

Широко представлена группа команд передачи управления. Помимо традиционных команд безусловной и условной передачи управления по флагу имеются команды косвенного перехода и косвенного вызова подпрограмм. Команды условных переходов делятся на два типа. Команды первого типа при выполнении условия обеспечивают переход по адресу, вычисляемому как сумма (PC + к + 1). При невыполнении условия происходит переход к следующей команде программы по адресу (PC +1). Команды второго типа при выполнении условия обеспечивают переход к команде, следующей за очередной, т. е. по адресу (PC + 2), если длина очередной команды составляет одно слово, или по адресу (PC + 3), если длина очередной команды составляет два слова. Если условие не выполняется, происходит переход к следующей команде по адресу (PC +1). Такое разнообразие команд управления способствует эффективной работе компиляторов программ, написанных на языке Си.

В битовых операциях следует обратить внимание, что все операции пересылки битов в области регистров общего назначения осуществляются только через вспомогательный бит Т регистра состояния SREG. В области регистров ввода;вывода биты можно изменять только путем установки 1 или 0. Программно путем установки 1 или О можно изменять состояния флагов регистра состояния SREG. В эту группу включены также операции WDR (сброс сторожевого таймера), SLEEP (перевод в энергосберегающий режим), пустая операция NOP.

Оставить комментарий

микросхемы мощности Устройство импульсов питания пример приемника провода витков генератора выходе напряжение напряжения нагрузки радоэлектроника работы сигнал сигнала сигналов управления сопротивление усилитель усилителя усиления устройства схема теория транзистора транзисторов частоты