Команды арифметических и логических операций




 

ADD Rd, Rr - Сложение двух РОН
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd + Rr Циклов  
  Описание   Складывает содержимое двух регистров Rd и Rr. Результат помещается в регистр Rd
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

ADC Rd, Rr - Сложение двух РОН с переносом
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd + Rr + С Циклов  
  Описание Складывает содержимое двух регистров Rr и Rd и прибавляет содержимое флага переноса С.
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

ADIW Rd, К - Сложение регистровой пары с константой
  Операнды d {24, 26, 28, 30}, К = 0...63
  Операция Rd+l:Rd = Rd+l: Rd + K Циклов  
  Описание Складывает содержимое регистровой пары Rd+l:Rd с 6-разрядным числом. Результат помещается обратно в регистровую пару
  Состояние флагов I T H S V N Z C
  ­ - - + + + + +
                     

 

SUB Rd, Rr - Вычитание двух РОН
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd – Rr Циклов  
  Описание Вычитает из регистра Rd содержимое регистра Rr.
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

SUBI Rd, K - Вычитание константы из регистра
  Операнды 0 ≤ d ≤ 31, k = 0…255
  Операция Rd = Rd – K Циклов  
  Описание Вычитает из регистра Rd значение константы К. Результат помещается обратно в регистр. Данная команда применима только к старшей половине РОН
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

SBIW Rd, К - Вычитание константы из регистровой пары
  Операнды d {24, 26, 28, 30}, 0 < К < 63
  Операция Rd+1:Rd = Rd+1:Rd – К Циклов  
  Описание Вычитает из регистровой пары Rd+1:Rd значение константы К. Результат помещается обратно в регистровую пару. Команда применима только к 4 старшим регистровым парам
  Состояние флагов I T H S V N Z C
  ­ - - + + + + +
                     

 

SBC Rd, Rr - Вычитание с заемом
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd – Rr – C Циклов  
  Описание Вычитает из регистра Rd содержимое регистра Rr с учетом флага переноса С. Результат помещается в регистр Rd. Если результат вычитания не равен нулю, флаг нуля Z сбрасывается в «0», в противном случае он остается без изменений
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

SBCI Rd, К - Вычитание константы из РОН с заемом
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd – K – C Циклов  
  Описание Вычитает из регистра Rd значение константы К с учетом флага переноса С. Результат помещается в регистр Rd. Если результат вычитания не равен нулю, флаг нуля Z сбрасывается в «0», в противном случае он остается без изменений
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

AND Rd, Rr - «Логическое И» двух РОН
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd & Rr Циклов  
  Описание Выполняет операцию «Логическое И» между содержимым регистров Rd и Rr. Результат помещается в регистр Rd
  Состояние флагов I T H S V N Z C
  ­ - - +   + + -
                     

 

ANDI Rd, К - «Логическое И» РОН и константы
  Операнды 16 ≤ d ≤ 31, 0≤ k ≤ 255
  Операция Rd = Rd & К Циклов  
  Описание Выполняет операцию «Логическое И» между содержимым регистра Rd и 8-разрядным числом. Результат помещается в регистр Rd. Команда применима только к 16 старшим РОН (R16...R31)
  Состояние флагов I T H S V N Z C
  ­ - - +   + + -
                     

 

 

OR Rd, Rr - «Логическое ИЛИ» двух РОН
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd V Rr Циклов  
  Описание Выполняет операцию «Логическое ИЛИ» между реги-страми Rd и Rr. Результат помещается в регистр Rd
  Состояние флагов I T H S V N Z C
  ­ - - +   + + -
                     

 

ORI Rd, K - «Логическое ИЛИ» РОН и константы
  Операнды 16 ≤ d ≤ 31, 0≤ K ≤ 255
  Операция Rd = Rd V K Циклов  
  Описание Выполняет операцию «Логическое ИЛИ» между содержимым регистра Rd и 8-разрядной константой К. Результат помещается в регистр Rd. Команда применима только к 16 старшим РОН (R16...R31)
  Состояние флагов I T H S V N Z C
  ­ - - -   + + -
                     

 

EOR Rd, Rr - «Исключающее ИЛИ» двух РОН
  Операнды 0 ≤ d ≤ 31, 0≤ r ≤ 31
  Операция Rd = Rd Rr Циклов  
  Описание Выполняет операцию «Исключающее ИЛИ» между регистрами Rd и Rr.
  Состояние флагов I T H S V N Z C
  ­ - - +   + + -
                     

 

COM Rd - Вычисление обратного кода
  Операнды 0 ≤ d ≤ 31
  Операция Rd = $FF – Rd Циклов  
  Описание Вычисляет обратный код числа, находящегося в реги-стре Rd. Результат помещается обратно в регистр Rd
  Состояние флагов I T H S V N Z C
  ­ - - +   + +  
                     

 

SBR Rd, К - Установка разрядов РОН
  Операнды 16 ≤ d ≤ 31, 0≤ K ≤ 255
  Операция Rd = Rd V К Циклов  
  Описание Устанавливает отдельные разряды регистра Rd путем выполнения операции «Логическое ИЛИ» между содержимым регистра Rd и маской (константа К).
  Состояние флагов I T H S V N Z C
  ­ - - +   + + -
                     

 

CBR Rd, К - Сброс разрядов РОН
  Операнды 16 ≤ d ≤ 31, 0≤ K ≤ 255
  Операция Rd = Rd & ($FF – К) Циклов  
  Описание Сбрасывает разряды в регистре Rd в соответствии с маской, задаваемой константой К.
  Состояние флагов I T H S V N Z C
  ­ - - +   + + +
                     

 

INC Rd - Инкремент РОН
  Операнды 0 ≤ d ≤ 31
  Операция Rd = Rd + 1 Циклов  
  Описание Увеличивает содержимое регистра Rd на единицу. Команда не влияет на флаг переноса С. Она идеально подходит для организации счетчика числа итераций цикла. При работе с числами в дополнительном коде могут использоваться все команды условного перехода для знаковых проверок. Флаг V устанавливается в «1» только в том случае, если до выполнения операции в регистре находилось значение $7F
  Состояние флагов I T H S V N Z C
  ­ - - + + + + -
                     

 

DEC Rd - Декремент РОН
  Операнды 0 ≤ d ≤ 31
  Операция Rd = Rd – 1 Циклов  
  Описание Уменьшает содержимое регистра Rd на единицу. Команда не влияет на флаг переноса С. Она идеально подходит для организации счетчика числа итераций цикла. Флаг V устанавливается в «1» только в том случае, если до выполнения операции в регистре находилось значение $80
  Состояние флагов I T H S V N Z C
  ­ - - + + + + -
                     

 

NEG Rd - Вычисление дополнительного кода
  Операнды 0 ≤ d ≤ 31
  Операция Rd = $00 – Rd Циклов  
  Описание Вычисляет дополнительный код числа, находящегося в регистре Rd. Результат помещается в регистр Rd
  Состояние флагов I T H S V N Z C
  ­ - + + + + + +
                     

 

TST Rd - Проверка РОН на нулевое или отрицательное значение
  Операнды 0 ≤ d ≤ 31
  Операция Rd = Rd & Rd Циклов  
  Описание Проверяет содержимое регистра на нулевое или отрицательное значение путем выполнения операции «Логическое И» регистра с самим собой. Содержимое регистра Rd не изменяется
  Состояние флагов I T H S V N Z C
  ­ - - +   + + +
                     

 

CLR Rd - Очистка РОН
  Операнды 0 ≤ d ≤ 31
  Операция Rd = 0 Циклов  
  Описание Сбрасывает все разряды регистра общего назначения путем выполнения операции «Исключающее ИЛИ» регистра с самим собой
  Состояние флагов I T H S V N Z C
  ­ - -          
                     

 

SER Rd - Установка РОН
  Операнды 16 ≤ d ≤ 31
  Операция Rd = $FF Циклов  
  Описание Устанавливает все разряды регистра общего назна-чения в «1». Команда применима только к регистрам из старшей половины регистрового файла
  Состояние флагов I T H S V N Z C
  ­ - - - - - - -
                     

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: