- •2.4 Выполнение арифметических операций в микропроцессорных
- •1 Основные сведения об информационно-измерительных системах
- •1.1 Место информационно-измерительных систем в современной измерительной технике и информационных технологиях
- •1.2 Классификация иис
- •1.3 Принципы организации и основные структурные схемы иис
- •1.3.1 Измерительные системы
- •1.3.2 Телеизмерительные системы
- •1.3.3 Системы автоматического контроля
- •1.3.4 Системы технической диагностики
- •1.4 Функции микропроцессоров в иис
- •1.5 Преимущества микропроцессорных измерительных систем
- •2 Базовые понятия и определения микропроцессорной арифметики
- •2.1 Системы счисления
- •2.1.1 Классификация систем счисления
- •1. Табличные методы.
- •2. Расчетные методы.
- •2.2 Представление числовых данных в микропроцессорных системах
- •Обратный код.
- •2.2.1 Арифметические флажки
- •2.2.2 Контроль переполнения в микропроцессорных системах
- •2.3 Выполнение арифметических операций в микропроцессорных системах над двоичными числами с фиксированной точкой
- •2.3.3 Операции сдвига в микропроцессорных системах
- •2.4 Выполнение арифметических операций в микропроцессорных системах над числами с плавающей точкой
- •2.4.2 Форматы двоичных числовых данных с плавающей точкой
- •2.4.3 Стандарт ieee-754
- •2.4.5 Сложение и вычитание чисел в форме с плавающей точкой
- •2.4.6 Умножение и деление чисел в форме с плавающей точкой
- •2.5 Представление числовых данных в коде bcd
- •2.5.1 Форматы числовых данных bcd-кодов
- •2.5.2 Арифметические операции над числовыми данными bcd-кодов
- •3 Основы микропроцессорных метрологических систем
- •3.1 Архитектурные особенности вычислительных систем на базе микропроцессора і80х86 в реальном режиме
- •3.1.1 Исследование сегментной структуры программы
- •3.2 Изучение арифметических и логических команд мп і80х86
- •3.2.1 Изучение принципов логического анализа данных
- •3.2.2 Изучение арифметических команд мп і80х86
- •3.3 Обработка массивов на языке Assembler для мп і80х86
- •3.3.2 Команды сравнения, условного и безусловного перехода
- •3.3.3 Оператор цикла
- •3.4 Исследование принципов организации подпрограмм в языке Аssembler для мп і80х86
- •3.4.1 Принципы функционирования стека в мп і80х86
- •3.5 Изучение принципов функционирования микропроцессоров со стековой архитектурой на примере математического сопроцессора і80х87
- •3.5.2 Архитектура математического сопроцессора і80х87
- •Задание:
- •Приложение е. Программа для изучения принципов обработки массивов на языке assembler для мп і80х86
- •Приложение и. Программа для исследования системы команд математического сопроцессора
2.2.1 Арифметические флажки
Арифметические флажки являются признаками, представляющими общую характеристику результата выполнения операции. Наиболее широко применяются следующие флажки:
флажок переноса (Flag Carry), обозначаемый (FC).
Устанавливается в (1) в двух случаях:
1. Если при выполнении операции сложения имеет место перенос из старшего бита результата (представляет собой расширение результата на 1 бит влево);
2. Если при выполнении операции вычитания имеет место заем (borrow) в старший бит. Это возможно в случае, если уменьшаемое меньше вычитаемого. Если операнды интерпретируются как беззнаковые числа, данный флажок является признаком переполнения микропроцессорой системы.
В операциях над знаковыми числами самостоятельного значения не имеет.
флажок вспомогательного переноса или дополнительный перенос (Flag Auxiliary), обозначаемый (FA).
При сложении показывает перенос, а при вычитании – заем из младшей тетрады (бит 3) результата. Используется в операциях двоично-десятичной арифметики.
флажок нуля (Flag Zero), обозначаемый (FZ).
Признак нулевого результата. Устанавливается в (1), когда результат выполнения операции равняется (0).
флажок знака (Flag Sign), обозначаемый (FS).
Повторяет состояние знакового бита.
флажок переполнения (Flag Overflow), обозначаемый (FО).
В операциях над знаковыми числами показывает, находится ли результат внутри диапазона представимых чисел:
– результат правильный;
– возникло переполнение. Следует
отметить, что (FO)
устанавливается в (1), если перенос в
старший разряд и из него не совпадают.
2.2.2 Контроль переполнения в микропроцессорных системах
Возможно, только при сложении чисел с одинаковыми знаками, когда для представления результата недостаточно отведенного количество разрядов (требуется больше, чем для представления операндов). Это может приводить не только к неправильному (по абсолютной величине) результату, но и к неправильному его знаку. Независимо от кода для представления отрицательных чисел (обратный или дополнительный), переполнение разрядной сетки имеет место всегда, если только при сложении положительных чисел возникает перенос в знаковый разряд, а при сложении отрицательных чисел такой перенос равен нулю. Введение масштабных коэффициентов, на которые необходимо умножить все исходные данные перед решением задачи, позволяет предотвратить переполнение. В микропроцессорных системах предусматривают специальные средства для обнаружения переполнения разрядной сетки:
– программный способ; основан на том, что при сложении чисел с одинаковыми знаками знак суммы должен совпадать со знаками операндов;
– аппаратный способ; основан на использовании модифицированных кодов.
При использовании модифицированных кодов знак числа изображается двумя одинаковыми цифрами. Эти цифры в процессе выполнения операций обрабатываются так же, как и числовые разряды. При этом появление в знаковых разрядах разных цифр (01 при сложении положительных и 10 при сложении отрицательных двоичных операндов) свидетельствует о переполнении разрядной сетки.
Модифицированный код позволяет формировать правильный знак результата даже при наличии переполнения.
Этот знак сохраняется во втором (старшем) знаковом разряде. Такой способ обнаружения переполнения разрядной сетки наиболее распространен в микропроцессорных системах, несмотря на некоторую избыточность в аппаратных средствах для представления чисел, поскольку позволяет оперативно (то есть, одновременно с результатом) получить информацию о переполнении.
На рис. 2.34 представлен формат двоичного знакового числа с использованием модифицированного кода.
Рисунок 2.34 – Формат двоичного знакового числа с использованием модифицированного кода
При выполнении операций сложения и вычитания чисел в дополни-тельных кодах обрабатывающее устройство микропроцессора не делает различий между знаковыми и беззнаковыми операндами.
То есть операнды должны интерпретироваться самим пользователем как знаковые или беззнаковые. В операции вычитания используется дополни-тельный код вычитаемого. Если длина операндов превышает длину машинного слова, то сложение и вычитание выполняют в несколько приемов, организуя программный цикл.
Операцию начинают с младших частей операндов, «продвигаясь» далее в сторону старших частей. На каждом шаге должны обрабатываться возника-ющие переносы (или заемы).
