Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Юрий Владимирович самый уважаемы человек =)экза...doc
Скачиваний:
7
Добавлен:
12.09.2019
Размер:
1.41 Mб
Скачать

35. Арифметические команды

В наборе команд имеются следующие арифметические операции: сложение, сложение с учетом флага переноса, вычитание с заемом, инкременирование, декременирование, сравнение, десятичная коррекция, умножение и деление.

В АЛУ производятся действия над целыми числами без знака. В двухоперандных операциях: сложение (ADD), сложение с переносом (ADDC) и вычитание с заемом (SUBB) аккумулятор является первым операндом и принимает результат операции. Вторым операндом может быть рабочий регистр выбранного банка рабочих регистров, регистр внутренней памяти данных с косвенно-регистровой и прямой адресацией или байт непосредственных данных. Указанные операции влияют на флаги: пеполнения, переноса, промежуточного переноса и флаг четности в слове состояния процессора (PSW).

Использование разряда переноса позволяет многократно повысить точность при операциях сложения (ADDC) и вычитания (SUBB).

Выполнение операций сложения и вычитания с учетом знака может быть осуществлено с помощью программного управления флагом переполнения (OV) регистра PSW. Флаг промежуточного переноса (АС) обеспечивает выполнение арифметических операций в двоично-десятичном коде.

Операции инкременирования и декременирования на флаги не влияют.

Операции сравнения не влияют ни на операнд назначения, ни на операнд источника, но они влияют на флаги переноса.

Существуют три арифметические операции, которые выполняются только на аккумуляторе: две команды проверки содержимого аккумулятора А (JZ, JNZ), и команда десятичной коррекции при сложении двоично-десятичных кодов.

При операции умножения содержимое аккумулятора А умножается на содержимое регистра В и результат размещается следующим образом: младший байт в регистре В, старший - в регистре А.

В случае выполнения операции деления целое от деления помещается в аккумулятор А, остаток от деления - в регистр В.

Группа команд арифметических операций

Мнемоника

Описание

Операция

Циклы

Флаги

 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 Rd, K

 Сложение регистровой пары с константой

 R(d+1):Rd  R(d+1):Rd + K

2

 Z,C,N,V,S

 SUB Rd, Rr

 Вычитание двух РОН

 Rd   Rd - Rr

1

 Z,C,N,V,H

 SUBI Rd, K

 Вычитание константы из РОН

 Rd   Rd - K

1

 Z,C,N,V,H

 SBC Rd, Rr

 Вычитание двух РОН с заемом

 Rd   Rd - Rr - С

1

 Z,C,N,V,H

 SBCI Rd, K

 Вычитание константы из РОН с заемом

 Rd   Rd - K - С

1

 Z,C,N,V,H

 SBIW Rd, K

 Вычитание константы из регистровой пары

 R(d+1):Rdl   R(d+1):Rd - K

2

 Z,C,N,V,S

 DEC Rd

 Декремент РОН

 Rd   Rd – 1

1

 Z,N,V

 INC Rd

 Инкремент РОН

 Rd   Rd + 1

1

 Z,N,V