
- •Арифметические основы эвм
- •Р азряды числа
- •Номера разрядов
- •Правило (алгоритм) перевода дробных чисел из десятичной системы в систему с основанием s
- •Представление чисел в эвм Классификация данных, используемых в эвм
- •Числовые данные
- •Десятичные числа
- •Двоичная и десятичная арифметики и области их применения
- •Двоичные числа с фиксированной запятой Знаковые и беззнаковые числа
- •Основные особенности представления чисел с плавающей запятой в современных эвм
- •Особенности представления чисел с плавающей запятой:
- •Диапазон представления чисел с плавающей запятой
- •Мини эвм
- •Cтандарт ieee
- •Точность представления чисел
- •Точность представления чисел для различных типов эвм
- •Методы округления чисел с плавающей точкой
- •Регистр флагов
- •Сложение целых чисел
- •Вычитание целых чисел (в формате ieee)
- •Операция умножения целых чисел и принципы ее реализации в эвм
- •Особенности операций умножения целых чисел:
- •Особенности реализации операций умножения в эвм:
- •Способы (схемы) реализации умножения в эвм
- •Анализ схем
- •Умножения чисел с фиксированной запятой
- •Основные положения
- •Умножения в дополнительных кодах с применением коррекции.
- •Два вида коррекции
- •Умножения в дополнительных кодах без применения коррекции.
- •Операция целочисленного деления и способы ее реализации в эвм Особенности двоичного деления
- •Особенности реализации целочисленного деления в эвм
- •Обоснование метода
- •Деление беззнаковых целых чисел
- •Проверка корректности беззнакового деления
- •Возможные модернизации метода деления
- •Деление знаковых чисел
- •Основные особенности метода деления в прямых кодах
- •Обоснование метода проверки корректности деления
- •Основные особенности метода деления в дополнительных кодах
- •Обоснование методов проверки корректности
- •Особый случай алгоритма
- •Арифметические операции над числами с плавающей запятой Операции сложения и вычитания
- •Умножение чисел с плавающей запятой
- •Методы ускорения операции умножения
- •Ускоренное умножение на 2 разряда множителя (в см эвм)
- •Особенности реализации метода
- •Метод ускоренного умножения на 4 разряда множителя (в ес эвм)
- •Особые случаи при выполнении операции
- •Операция деления чисел с плавающей запятой Основные положения
- •Особенности деления мантисс
Двоичная и десятичная арифметики и области их применения
Для обработки данных в ЭВМ возможно применение одной из двух следующих схем:
Вывод результатов
в десятичной системе счисления
1
Ввод данных в
десятичной системе счисления
Преобразование
результатов обработки из двоичной в
десятичную систему счисления
Обработка данных
в двоичной системе счисления
Преобразование
данных из десятичной в двоичную систему
счисления
двоичная арифметика
2
Ввод данных в
десятичной системе счисления
Обработка данных
в десятичной системе счисления
Вывод результатов
в десятичной системе счисления
десятичная арифметика
Первую схему обработки данных целесообразно применять при сравнительно небольших объемах перерабатываемых данных и достаточно большом объеме вычислений (операций), приходящихся на единицу данных. Подобным свойством обладают так называемые научно-технические задачи.
Вторую схему обработки целесообразно применять при больших объемах обрабатываемых данных и небольшом объеме вычислений, приходящихся на каждую единицу данных. Подобным свойством обладают так называемые экономические (коммерческие) задачи.
Аппаратная поддержка второй схемы обработки данных в ЭВМ предполагает наличие в составе процессора помимо традиционного двоичного АЛУ еще и десятичного АЛУ. Использование подобных АЛУ характеризуются компьютеры (ЭВМ), относящиеся к классам Main Frame. В ПК и рабочих станциях на базе практически всех современных процессоров десятичное АЛУ отсутствует.
Для наиболее типичной (классической) схемы обработки этапы преобразования данных из одной системы счисления в другую принципиально могут быть реализованы либо на аппаратном, либо программном уровне. В системе команд процессоров Intel отсутствуют как таковые команды преобразования данных из десятичной системы в двоичную и обратно. Подобные команды имели место в системе команд вычислительной системы IBM/370.
Аппаратная поддержка преобразования десятичного числа в упакованном формате в двоичное число с плавающей запятой в расширенном формате (80 бит), а также обратное преобразование реализуются специальными командами FPU.
FBLD – Load Binary coded Decimal (загрузка с преобразованием). По этой команде осуществляется пересылка десятичного числа в BCD-формате из памяти во внутренний регистр данных FPU с преобразованием из десятичной системы счисления в двоичную форму числа с плавающей запятой, представленного в расширенном формате (внутренний формат FPU).
Обратное преобразование из двоичной системы в десятичную реализуется командой FBSTP – Store BCD Integer and Pop. По этой команде осуществляется пересылка данных из вершины регистрового стека FPU в память с предварительным преобразованием двоичного числа с плавающей запятой, упакованной в десятичный формат. Выбираемый операнд удаляется из регистрового стека (POP).
Внутренняя регистровая память данных блока FPU включает в себя 8 80-битных регистров, организованных в виде так называемого регистрового стека.
Этими командами поддерживается 80-битный BCD-формат для представления упакованного десятичного числа. В данном формате представлено 18 десятичных цифр, которые занимают 72 младших разряда формата. Старший байт формата используется для представления знака, который занимает в нем старший бит. Десятичное число предполагается целым. Как таковые, десятичные числа в BCD и ASCII – форматах имеют аппаратную поддержку в процессорах Intel на уровне так называемых команд десятичной (BCD) и ASCII – коррекции. К ним относятся:
BCD-коррекция:
• DAA (Decimal Adjust after Addition);
• DAS (Decimal Adjust after Subtraction).
ASCII-коррекция:
• AAA (ASCII Adjust after Addition) ;
• AAS (ASCII Adjust after Subtraction);
• AAM (ASCII Adjust after Multiply);
• AAD (ASCII Adjust before Division).
Команды коррекции используются для преобразования результатов соответствующей операции в корректную десятичную форму. При этом предшествующая арифметическая операция, выполняемая командами ADD, SUB, MUL , предполагает использование двоичной арифметики применительно к десятичным числам. Все команды коррекции поддерживают минимальный формат данных – 1 байт.
Для операции деления команда коррекции AAD в машинной программе предшествует команде DIV, т.е. корректируется не результат деления, а операнд - делимое.