Cтраница 3
Первая команда сравнивает два поля упакованных десятичных данных. [31]
Рассмотрим еще два пр имера упаковки десятичных данных. [32]
Команда, суммирующая два поля упакованных десятичных данных, имеет вид, который довольно легко интерпретируется программистом. [33]
В этом примере 2 байта упакованных десятичных данных из поля PKFIELDA, расположенных начиная с третьего байта этого поля ( PKFIELDA 2), пересылаются в поле PKFIELDB, выравниваются по правой границе этого поля и сдвигаются относительно младшего разряда на полубайт. В соответствии с этим 2 байта данных, содержащих шестнадцатеричные цифры 7671, занесены в PKFIELDB и сдвинуты влево на полбайта. В поле PKFIELDB сформировано правильное упакованное десятичное число 7671 со знаком, так как находившийся в младшем полубайте стандартный код знака плюс С не искажается при выполнении команды. [34]
![]() |
Цикл выполнения арифметических операций над данными. [35] |
Вначале по команде упаковать осуществляется преобразование десятичных данных из формата с зоной в упакованный формат. Вычисления осуществляются над десятичными числами или ( после преобразования в двоичную форму) над двоичными числами с фиксированной запятой. [36]
Давайте рассмотрим прежде всего шаблоны, описывающие десятичные данные. [37]
Это предложение сравнивает 3 байта поля упакованных десятичных данных, адресованного с помощью метки PACKFLD, с трехбайтовым шестнадцатеричным литералом. Программист мог бы использовать команду Compare Packed ( CP) ( Сравнение десятичное), если бы не то обстоятельство, что команда СР рассматривает плюс нуль и минус нуль как равные величины. [38]
Наконец, если определяющим моментом является достоверность подготовки десятичных данных и передачи их в машину, то для выбора способа кодирования существенны простота контроля правильности поступающих данных и возможность исправления возникающих при передаче ошибок. [39]
![]() |
Выравнивание данного В1 на границу слова. [40] |
Для всех данных в использованием ДЛЯ ВЫДАЧИ и внутренних десятичных данных фраза ВЫДЕЛЕНО рассматривается как комментарий. [41]
Вариант ДЛЯ ВЫДАЧИ может быть использован в описании буквенных, буквенно-цифровых, буквенно-цифровых редактируемых, числовых редактируемых и внешних десятичных данных и означает, что каждая литера данного будет занимать один байт основной памяти. Четыре старших бита этого байта представляют зонную часть числа, а четыре младших - числовую. Такой формат представления называется зонированным форматом. Если в зонированном формате представляется число со знаком, то знак будет располагаться в зонной части младшей литеры значения данного. [42]
Команда UNPK преобразует данные, указанные вторым операндом ( десятичные данные в упакованном формате), из упакованного формата в зонный формат и помещает их по адресу, указанному в первом операнде. Данные из поля упакованного формата перемещаются в поле зонного формата справа налево. Знак поля упакованного формата ( младшие четыре разряда) помещается в левую половину младшего байта поля зонного формата. Самая цравая десятичная цифра, находящаяся в одном байте со знаком поля упакованного формата, помещается в самые правые четыре разряда поля зонного формата, таким образом заполняя младший байт зонного формата десятичной цифрой со знаком. Затем из поля упакованного формата выбирается следующий полубайт, дополняется до полного байта десятичного зонного формата стандартным символом зоны в коде EBCDIC ( шестнадцатеричным F) и помещается в поле первого операнда, которое таким образом загружается байт за байтом справа налево. Если длина области, указанной в первом операнде, больше, чем требуется для размещения данных второго операнда, то незаполненные старшие байты области первого операнда заполняются десятичными нулями в зонном формате. Если длина второго операнда больше длины области первого операнда, то неиспользуемые старшие разряды области второго операнда теряются. [43]
Команды пересылки и сравнения кодов могут также использоваться при обработке десятичных данных. [44]
Экономический набор команд включает стандартный набор команд и команды обработки десятичных данных. [45]