Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аппаратные средства микрокрнтроллеров.doc
Скачиваний:
0
Добавлен:
14.09.2019
Размер:
224.26 Кб
Скачать

Арифметико-логическое устройство

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

АЛУ можно представить как аппаратный блок, который обрабатывает два слова данных (операнды) и сохраняет полученный результат (рис. 13). Как вводятся операнды в АЛУ и куда поступает результат – зависит от конкретного типа микроконтроллера. В этом состоит одно из основных различий между разными типами процессоров и их системами команд. Некоторые микроконтроллеры выбирают один операнд из регистра-аккумулятора и сохраняют результат также в аккумуляторе. Другие микроконтроллеры позволяют использовать различные источники операндов и места размещения результатов.

Рис. 13 – Структура АЛУ

АЛУ обычно работают только с положительными целыми числами. Однако при выполнении вычитания получаются отрицательные числа, если вычитаемое больше уменьшаемого. Для представления отрицательных чисел используется дополнительный код («дополнение до двух»).

Рассмотрим, как выполняется команда вычитания на примере микроконтроллера Microchip PIC. Вместо вычитания одного числа из другого, происходит добавление отрицательного числа:

А – В = А + (-В).

где отрицательное число – В представляется в дополнительном коде. Чтобы получить дополнительный код отрицательного двоичного числа, необходимо инвертировать значение каждого бита, а затем прибавить единицу:

Если есть схема преобразования отрицательных чисел в дополнительный код, то нет необходимости использовать схему вычитания. Достаточно иметь в составе АЛУ сумматор, который реализует вычитание с помощью следующей замены:

.

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

В АЛУ, не использующем вычитатель. флаг переноса устанавливается в 1, когда результат вычитания положительный, и сбрасывается в 0. когда результат отрицательный.

Необходимо иметь в виду, что различные представители одного семейства микроконтроллеров обычно имеют одинаковые АЛУ. В некоторых семействах АЛУ реализуют определенные операции, например, умножение, которые не выполняются микроконтроллерами других семейств. Дополнительные функции, которые обеспечивают различные микроконтроллеры одного семейства, реализуются путем включения в их структуру дополнительных аппаратных средств, аналогично периферийным устройствам.

Сложность АЛУ во многом определяет сложность всего микроконтроллера в целом. Часто над созданием АЛУ работает группа разработчиков, сравнимая по составу с той, которая работает над остальной частью микропроцессора или микроконтроллера (и даже большая, когда разрабатывается процессор аналогичный по сложности персональному компьютеру). От того, как работает АЛУ, зависит функционирование процессора, входящего в состав микроконтроллера, а значит и функционирование всего микроконтроллера.