Раздел:
Документация0 ...
77 78 79 80 81 82 83 ...
195 SUB Rd, Rr
Вычитание двух РОН
Операция | Rd = Rd | -Rr | | | | | | |
Код операции | 0001 10rd dddd rrrr | | | | 1 слово (2 байта) |
Операнды | 0<d<31,0<r<31 |
Описание | Вычитает из регистра Rd содержимое регистра Rr. Результат помещается в регистр Rd |
Регистр SREG | I | T | H | S | V | N | Z | С |
- | - | о | о | о | | | |
Число тактов | 1 |
Пример | sub brne noteq: | rl3,rl2 noteq | ; Вычесть rl2 из rl3 (rl3=rl3-rl2) ; Перейти, если rl2 * rl3 | |
SUBI Rd, К
Вычитание константы из регистра
Операция | Rd = Rd | -К | | | | | | |
Код операции | 1010 KKKK dddd KKKK | | | | 1 слово (2 байта) |
Операнды | 16<d<31,K = 0...255 |
Описание | Вычитает из регистра Rd значение константы К. Результат помещается обратно в регистр. Данная команда применима только к старшей половине регистров общего назначения |
Регистр SREG | I | т | Н | S | V | N | Z | С |
- | - | | | | о | о | о |
Число тактов | 1 |
Пример | subi brne noteq: | г22,$11 ; Вычесть $11 из г22 noteq ; Перейти, если г22 | t $11 | | |
SWAP Rd
Перестановка полубайтов РОН
Операция | Rd(7:4) = | Rd(3:0), Rd(3:0) = Rd(7:4) | | | | |
Код операции | 1001 010d dddd 0010 | | | | | 1 слово (2 байта) |
Операнды | 0 <d < 31 |
Описание | Команда производит перестановку старшего и младшего полубайта содержимого регистра Rd |
Регистр SREG | I | T | H | S | V | N | Z | С |
- | - | - | - | - | - | - | - |
Число тактов | 1 |
Пример | inc swap inc swap | rl rl rl rl | Инкрементировать rl Переставить полубайты Инкрементировать старший полубайт rl Переставить полубайты обратно | |
TSTRd
Проверка РОН на нулевое или отрицательное значение
Операция | Rd = Rd • Rd |
Код операции | 0010 00dd dddd dddd | | | | 1 слово (2 байта) |
Операнды | 0 <d < 31 |
Описание | Проверяет содержимое регистра на нулевое или отрицательное значение путем выполнения операции «Логическое И» регистра с самим собой. Содержимое регистра Rd не изменяется |
Регистр SREG | I | Т | н | S | V | N | Z | С |
- | - | - | о | 0 | о | о | - |
Число тактов | 1 |
Пример | tst rO breq zero zero: | ; Проверить г0 ; Перейти, если г0 = 0 | | | |
WDR
Сброс сторожевого таймера
Операция | Рестарт сторожевого таймера |
Код операции | 1001 0101 1010 1000 | | | | 1 слово (2 байта) |
Операнды | Нет |
Описание | Выполняет сброс сторожевого таймера При включенном сторожевом таймере данная команда должна выполняться через определенный промежуток времени, определяемый коэффициентом деления предделителя сторожевого таймера Для получения подробной информации обратитесь к главе 6 |
Регистр SREG | I | Т | Н | S | V | N | Z | С |
- | - | - | - | - | - | - | - |
Число тактов | 1 |
Пример | wdr | ; Сбросить сторожевой таймер | | |
0 ...
77 78 79 80 81 82 83 ...
195