|
|
8(495)909-90-01
8(964)644-46-00
pro@sio.su
|
|
Раздел: Документация0 ... 64 65 66 67 68 69 70 ... 195 EIJMP Расширенный косвенный переход Операция | PC[15..0] = Z,PC[21..16] = EIND | Код операции | 1001 0100 ООО 1 1001 1 слово (2 байта) | Операнды | Нет операндов | Описание | Косвенный безусловный переход. Выполняет переход по адресу, младшие биты которого находятся в регистре Z, а старшие — в регистре ввода/вывода EIND. Эта команда поддерживается только микроконтроллерами ATmega2560x/2561x! | Регистр SREG | I Т Н S V N Z С | | Число тактов | 2 | Пример | ldi г1б, $05 ; Инициализируем EIND и указатель Z out EIND,rl6 ldi гЗО, $00 ldi r31, $10 eijmp ; Перейдем по адресу $051000 |
ELPM Расширенная загрузка данных из памяти программ Операция | R0 = {RAMPZ:Z} | Код операции | 1001 0101 1101 1000 | | | | | 1 слово (2 байта) | Операнды | Нет операндов | Описание | Загружает один байт из адресного пространства памяти программ в регистр общего назначения R0. Адрес ячейки памяти, к которой производится обращение, содержится в регистре ввода/вывода RAMPZ и индексном регистре Z. Эта команда поддерживается только микроконтроллерами ATmega 128х, ATmegal280x/1281x и ATmega2560x/2561x! | Регистр SREG | I | T | H | | S | V | N | Z | С | - | - | - | - | - | - | - | - | Число тактов | 3 | Пример | clr out clr ldi elpm | rl6 RAMPZ,rl6 r31 r30,$F0 | Очистить регистр RAMPZ Очистить старший байт индексного регистра Z Загрузить адрес в регистр Z г0 = {$000F0} |
ELPM Rd, Z Расширенная загрузка данных из памяти программ Операция | Rd = {RAMPZ:Z} | Код операции | 1001 000d dddd 0110 | | | | 1 слово (2 байта) | Операнды | 0<d < 31 | Описание | Загружает один байт из адресного пространства памяти программ в регистр общего назначения Rd. Адрес ячейки памяти, к которой производится обращение, содержится в регистре ввода/вывода RAMPZ и индексном регистре Z. Эта команда поддерживается только микроконтроллерами ATmega 128х, ATmegal280x/1281x и ATmega2560x/2561x! | Регистр SREG | I | T | H | s | V | N | Z | С | - | - | - | - | - | - | - | - | Число тактов | 3 | Пример | clr rl6 out RAMPZ, rl6 clr r31 ldi r30,$F0 elpm rl6,Z | Очистить регистр RAMPZ Очистить старший байт индексного регистра Z Загрузить адрес в регистр Z г1б = {$000F0} |
ELPM Rd, Z+ Расширенная загрузка данных из памяти программ с постинкрементом Операция | Rd = {RAMPZ:Z},RAMPZ:Z | = RAMPZ:Z + 1 | | | | Код операции | 1001 000d dddd 0111 | | | | | 1 слово (2 байта) | Операнды | 0 < d < 31 | Описание | Загружает один байт из адресного пространства памяти программ в регистр общего назначения Rd. Адрес ячейки памяти, к которой производится обращение, содержится в регистре ввода/вывода RAMPZ и индексном регистре Z. После пересылки байта значение указателя увеличивается на 1. Эта команда поддерживается только микроконтроллерами ATmega 128х, Annegal280x/1281x и Annega2560x/2561x! | Регистр SREG | I | T | н | S | V | N | Z | С | - | - | - | - | - | - | - | - | Число тактов | 3 | Пример | clr г1б ; Очистить регистр RAMPZ out RAMPZ,rl6 clr r31 ; Очистить старший байт индексного ; регистра Z ldi r30,$F0 ; Загрузить адрес в регистр Z elpm rl6,Z+ ; г1б = {$000F0}, Z = $00F1 |
EOR Rd, Rr «Исключающее ИЛИ» двух РОН Операция | Rd = Rd( | ©Rr | | | | | | | Код операции | 0010 Olrd dddd rrrr | | | | | 1 слово (2 байта) | Операнды | 0<d<31,0<r< 31 | Описание | Выполняет операцию «Исключающее ИЛИ» между регистрами Rd и Rr. Результат помещается в регистр Rd | Регистр SREG | I | Т | Н | S | V | N | Z | С | - | - | - | о | 0 | о | о | - | Число тактов | 1 | Пример | eor r2,r2 eor r0,r22 | ; Очистка регистра г2 ; Побитовое «Исключающее ИЛИ» | между г0 и г22 |
FMUL Rd, Rr Умножение дробных беззнаковых чисел Операция | Rl:R0 = (RdxRr)«l | Код операции | 00000011 Odddlrrr | | | | | 1 слово (2 байта) | Операнды | 16<d<23,16 < г< 23 | Описание | Осуществляет умножение беззнаковых дробных чисел, находящихся в регистрах Rd и Rr. Формат чисел — 1.7 (старший бит — целая часть, 7 младших битов — дробная). Результат умножения (формат результата — 2.14) сдвигается влево на один бит для приведения к формату 1.15 и заносится в регистровую пару R1:R0 | Регистр SREG | I | Т | Н | S | V | N | Z | С | - | - | - | - | - | - | о | о | Число тактов | 2 | Пример | fmul movw | r23,r22 r23:r22,rl:r0 | ; Умножить г23 и г22 ; Скопировать результат обратно ; в г23:г22 | 0 ... 64 65 66 67 68 69 70 ... 195
|
|