|
|
8(495)909-90-01
8(964)644-46-00
pro@sio.su
|
|
Раздел: Документация0 ... 54 55 56 57 58 59 60 ... 195 3.4. Сводные таблицы команд В Табл. 3.3...3.8 указаны все команды, которыми располагают микроконтроллеры AVR семейства Mega. В каждой таблице команды сгруппированы по функциональному признаку. В таблицах приведены основные сведения о командах, такие как мнемоническое обозначение команды, ее описание, число тактов, необходимых для ее выполнения, а также флаги регистра SREG, на которые воздействует эта команда. Информация в таблицах изложена в сжатом виде, а детальное описание всех команд приведено в разделе 3.5. Таблица 3.3. Группа команд логических операций Мнемоника | Описание | Операция | Число тактов | Флаги | AND Rd,Rr | «Логическое И» двух РОН | Rd = Rd • Rr | 1 | Z,N,V | ANDI Rd,К | «Логическое И» РОН и константы | Rd = Rd • К | 1 | Z,N,V | EOR Rd,Rr | «Исключающее ИЛИ» двух РОН | Rd = Rd0Rr | 1 | Z,N,V | OR Rd,Rr, | «Логическое ИЛИ» двух РОН | Rd = Rd v Rr | 1 | Z, N,V | ORI Rd,К | «Логическое ИЛИ» РОН и константы | Rd = Rd v К | | Z,N,V | COM Rd | Перевод в обратный код | Rd = $FF - Rd | 1 | Z,C,N,V | NEG Rd | Перевод в дополнительный код | Rd = $00 - Rd | 1 | Z,C,N,V,H | CLR Rd | Сброс всех битов РОН | Rd = Rd0Rd | 1 | Z,N,V | SER Rd | Установка всех битов РОН | Rd = $FF | 1 | - | TST Rd | Проверка РОН на отрицательное или нулевое значение | RdtRd | | Z,N,V | SWAP Rd | Обмен местами полубайтов в РОН | Rd(3...0) = Rd(7...4), Rd(7...4) = Rd(3...0) | 1 | - |
Таблица 3.4. Группа команд арифметических операций Мнемоника | Описание | Операция | Число тактов | Флаги | ADD Rd,Rr | Сложение двух РОН | Rd = Rd + Rr | 1 | Z,C,N,V,H | ADC Rd,Rr | Сложение двух РОН с переносом | Rd = Rd + Rr + С | 1 | Z,C,N,V,H | ADIW Rdh:Rdl,K | Сложение регистровой пары с константой | Rdh:Rdl = Rdh:Rdl + K | 2 | Z,C,N,V,S |
(продолжение) Мнемоника | Описание | Операция | Число тактов | Флаги | SUB Rd,Rr | Вычитание двух РОН | Rd = Rd - Rr | 1 | Z,C,N,V,H | SUBI Rd,К | Вычитание константы из РОН | Rd = Rd - К | | Z,C,N,V,H | SBC Rd,Rr | Вычитание двух РОН с заемом | Rd = Rd-Rr-C | | Z, C,N,V,H | SBCI Rd,К | Вычитание константы из РОН с заемом | Rd = Rd - К - С | | Z, C,N,V,H | SBIW Rdh:Rdl,K | Вычитание константы из регистровой пары | Rdh:Rdl = Rdh:Rdl-K | | Z, C, N, V, S | DEC Rd | Декрементирование РОН | Rd = Rd - 1 | 1 | Z,N,V | INC Rd | Инкрементирование РОН | Rd = Rd + 1 | 1 | Z,N,V | ASR Rd | Арифметический сдвиг вправо | Rd(/i) = Rd(/i+l), /i = 0..6 | | Z,C,N,V | LSL Rd | Логический сдвиг влево | Rd(/i+l) = Rd(/i), Rd(0) = 0 | | Z,C,N,V | LSR Rd | Логический сдвиг вправо | Rd(/i) = Rd(/i+l), Rd(7) = 0 | | Z,C,N,V | ROL Rd | Сдвиг влево через перенос | Rd(0) = C, Rd(/i+l) = Rd(/i), С = Rd(7) | | Z,C,N,V | ROR Rd | Сдвиг вправо через перенос | Rd(7) = C, Rd(/i) = Rd(/i+l), C = Rd(0) | | Z,C,N,V | MUL Rd,Rr | Умножение беззнаковых чисел | R1:R0 = Rd x Rr | 2 | z,c | MULS Rd,Rr | Умножение чисел со знаком | R1:R0 = Rd x Rr | 2 | z,c | MULSU Rd,Rr | Умножение беззнакового числа на число со знаком | Rl:R0 = RdxRr | 2 | z,c | FMUL Rd,Rr | Умножение дробных беззнаковых чисел | Rl:R0 = (RdxRr)« 1 | 2 | z,c | FMULS Rd,Rr | Умножение дробных чисел со знаком | Rl:R0 = (RdxRr)« 1 | 2 | Z,C | FMULSU Rd,Rr | Умножение дробного беззнакового числа и дробного числа со знаком | Rl:R0 = (RdxRr)« 1 | 2 | z,c |
Таблица 5.5. Группа команд операций с битами Мнемоника | Описание | Операция | Число тактов | Флаги | CBR Rd,К | Сброс бита(ов) РОН | Rd = Rd • ($FF - К) | 1 | Z.N.V | SBR Rd,K | Установка бита(ов) РОН | Rd = Rd v К | 1 | Z.N.V | CBI A,b | Сброс бита РВВ | A.b = 0 | 2 | - | SBI A,b | Установка бита РВВ | A.b= 1 | 2 | - | BCLR s | Сброс флага | SREG.s = 0 | 1 | SREG.s | BSET s | Установка флага | SREG.s=l | | SREG.s | BLD Rd,b | Загрузка бита РОН из флага Т (SREG) | Rd.b = T | 1 | - | BST Rr,b | Запись бита РОН в флаг Т (SREG) | T=Rr.b | 1 | T | CLC | Сброс флага переноса | C = 0 | 1 | С | SEC | Установка флага переноса | C=l | 1 | С | CLN | Сброс флага отрицательного числа | N = 0 | 1 | N | SEN | Установка флага отрицательного числа | N=1 | | N | CLZ | Сброс флага нуля | Z = 0 | | Z | SEZ | Установка флага нуля | Z=l | 1 | Z | CLI | Общее запрещение прерываний | 1 = 0 | 1 | I | SEI | Общее разрешение прерываний | 1 = 1 | | I | CLS | Сброс флага знака | s = o | | s | SES | Установка флага знака | S=l | 1 | s | CLV | Сброс флага переполнения дополнительного кода | v=o | | V | SEV | Установка флага переполнения дополнительного кода | V=l | | V | CLT | Сброс флага Т | T = 0 | 1 | T | SET | Установка флага Т | T=l | 1 | T | CLH | Сброс флага половинного переноса | H = 0 | 1 | H | SEH | Установка флага половинного переноса | H = l | 1 | H | 0 ... 54 55 56 57 58 59 60 ... 195
|
|