Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

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

Синтез схем, свободных от логических состязании | Анализ комбинационных схем с целью выявления состязаний | Состязания сигналов в последовательностных схемах | Существенные состязания | Порядок выполнения работы | Краткие теоретические сведения | Организация памяти и функционирование микроконтроллера | Запись исходного текста программы на языке программирования ASM-51 | Встроенные имена | Группа команд пересылки данных |


Читайте также:
  1. I чемпионата по силовому многоборью г. Красноярска среди команд
  2. II группа
  3. II. Психологизация управления людьми и группами
  4. III. Работа в группах.
  5. III. Третья группа профессиональных вредностей возникает вследствие несоблюдения общесанитарных условий в местах работы.
  6. IV. Анализ предложений. Работа в группах.
  7. IV. Участники и команды. Требования к ним и снаряжению.

В ранее рассмотренных командах обработки информации кодирова­ние содержимого отдельных битов байта не имело значения. В арифме­тических операциях нужно придерживаться строго определенных правил записи данных в соответствии с порядковыми номерами разрядов двоичного кода. В связи с ограниченными ресурсами микроконтроллера в нем используются только четыре арифметических операции с целыми числами. Отступления от правил кодирования приводят к неправильному выполнению арифметических операций.

В одном байте может быть закодировано 256 значений целого числа. При работе с положительными числами это соответствует значениям от 0 до 255. Все команды арифметических операций предназначены для работы с положительными целыми числами байтового формата, хотя команды сложения и вычитания в случае отсутствия переполнения обес­печивают получение корректного результата при специальном способе кодирования отрицательных чисел. Кодирование чисел более подробно рассмотрено в главе о программировании арифметических операций. При необходимости работы с числами, которые не могут быть представ­лены в байтовом формате, необходимо разрабатывать соответствующие подпрограммы. Выполнение операций умножения и деления с числами, имеющими произвольный знак, возможно при их представлении через знак и модуль и использовании соответствующих подпрограмм. Это могут быть собственные разработки или заимствования из хорошо прове­ренных библиотек других разработчиков.

Команда сложения работает с данными байтового формата, притом в качестве приемника всегда используется только аккумулятор:

ADD A, #dat8

ADD A, Rn

ADD A, @Ri

ADD A, dat8

Мнемоника этой команды соответствует слову ADDition (сложение).

Для работы с числами, которые не могут быть представлены одним байтом, используется команда сложения, учитывающая перенос, полу­ченный при сложении предыдущей пары байтов:

ADDC A, #dat8

ADDC A, Rn

ADDC A, @Ri

ADDC A, dat8

С теми же операндами работают и команда вычитания с заемом:

SUBB A, #dat8

SUBB A, Rn

SUBB A, @Ri

SUBB A, dat8

При выполнении этой команды из вычитаемого вначале вычитается единица, если установлен флаг переноса CY, а затем само вычитаемое. Здесь следует отметить, что при вычитании многобайтовых чисел, при выполнении первого вычитания, для получения правильного результата необходимо предварительно сбрасывать флаг переноса CY.

Для увеличения, или уменьшения содержимого регистров на «1» существуют команды INC и DEC соответственно:

INC A

INC Rn

INC dat8

INC @Ri

DEC A

DEC Rn

DEC dat8

DEC @Ri

Команда INC работает и для двухбайтового регистра DPTR.

Команды уменьшения для работы с двухбайтовым форматом данных нет.

Результаты выполнения команд сложения и вычитания влияют на содержимое битов переноса, дополнительного переноса и переполнения в cлове состояния программы. Результаты выполнения команд увеличе­ния и уменьшения не влияют па содержимое слова состояния программы.

Команда умножения (MULtiplication) и деления (DIVision) работают при записи операндов в накопитель и регистр В, Для команды умножения порядок записи сомножителей в эти регистры не важен:

MUL АВ

Произведение имеет двухбайтовый формат. Младший байт произведения записывается в накопитель, а старший - в регистр В.

Для команды деления делимое должно быть записано в аккумулятор а делитель - в регистр В:

DIV AB

После выполнения команды в накопителе находится частное, а в регистре В - остаток. После выполнения команд умножения и деления в бит переноса заносится 0. Если старший байт произведения не равен нулю, то в байт переполнения заносится «1». При делении на 0 в байт переполнения также заносится «1».

 

 


Дата добавления: 2015-07-20; просмотров: 45 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Группа логических команд| Группа команд управления

mybiblioteka.su - 2015-2024 год. (0.006 сек.)