Cтраница 2
Команды десятичной арифметики вырабатывают такие же коды признака, что и команды с фиксированной точкой. [17]
Команды десятичной арифметики работают с упакованными десятичными числами. Каждый байт поля, отведенного для запоминания числа, содержит две десятичные цифры. Исключение составляет самый правый байт, в четырех младших разрядах которого должен содержаться знак числа. [18]
Операции десятичной арифметики выполняются над десятичными числами переменной длины со знаками, размещенными в оперативной памяти и представленными в сжатом формате. [19]
Блок десятичной арифметики и полей переменной длины обеспечивает выполнение арифметических операций над десятичными числами, а также логических операций с данными переменной длины. В командах, обрабатывающих данные переменной длины, допускается перекрытие полей данных ( операндов) в оперативной памяти. Это позволяет наиболее экономично использовать ОП, а также расширяет логические возможности некоторых команд. [20]
Блок десятичной арифметики и полей переменной длины предназначен для выполнения арифметических операций над десятичными числами, а также логических операций с данными переменной длины. [21]
Представление порядка чисел. [22] |
Операнды десятичной арифметики представляются полями переменной длины. [23]
Команды десятичной арифметики выделяются в том смысле, что оба операнда этих команд могут рассматриваться как имеющие неявно заданную длину. [24]
Схема преобразования форматов данных в десятичной арифметике. [25] |
В десятичной арифметике пересылка данных осуществляется с помощью логических команд MVC, MVZ, MVN, MVI и MVO. Сдвиги в десятичной арифметике получают либо только с помощью логической команды MVO, либо программным путем с использованием вышеуказанных команд логических пересылок и команды MVO. Необходимо заметить, что логическая команда MVO специально предназначена для десятичной арифметики. Поэтому она будет рассмотрена в данной главе. Кроме того, при работе с десятичными числами используются команды преобразования данных CVB - ПРЕОБРАЗОВАТЬ В ДВОИЧНУЮ, CVD - ПРЕОБРАЗОВАТЬ В ДЕСЯТИЧНУЮ, PACK - УПАКОВАТЬ и UNPK-РАСПАКОВАТЬ. На рис. 5.3 показаны пути преобразования форматов - данных в десятичной арифметике. [26]
В десятичной арифметике часто требуется округлить результат в большую или меньшую сторону. Если делимое и делитель имеют одинаковые знаки, можно рекомендовать следующие простые приемы. [27]
В десятичной арифметике пересыжа данных осуществляется с помощью логических команд MVC, MVZ, MVN, MVI и MVO. Сдвиги в десятинной арифметике получают либо только с помощью логической команды МУО, либо программным путем с использованием вышеуказанных команд логических пересылок и команды MVO. Необходимо заметить, что логическая команда MVO специально предназначена для десятичной арифметики. Поэтому оиа будет рассмотрена в данной главе. Кроме того, при работе с десятичными числами используются команды преобразования данных CVB - ПРЕОБРАЗОВАТЬ В ДВОИЧНУЮ, CVD - ПРЕОБРАЗОВАТЬ В ДЕСЯТИЧНУЮ, PACK - УПАКОВАТЬ и UNPK - РАСПАКОВАТЬ. На рис. 5.3 показаны пути преобразования форматов данных в десятичной арифметике. [28]
При выполнении десятичной арифметики предполагается, что исходные данные уже представлены в соответствующем формате. [29]
Арифметические операции десятичной арифметики производятся над целыми десятичными числами, которые находятся в памяти в упанованном формате данных в прямом оде со знаком плюс или минус. В общем виде структура упакованного формата данных приведена ниже. [30]