Cтраница 2
Команды обработки десятичных данных, их мнемоника, формат и коды операций представлены в табл. 10.1. В ней также показано, для каких операций устанавливается признак результата, и перечислены особые случаи, вызывающие программное прерывание. [16]
Для представления десятичных данных в такой форме требуется большая емкость памяти. [17]
Преобразование упакованных десятичных данных в распакованный формат; операция, обратная упаковке. [18]
Форма представления десятичных данных, их возможные форматы и машинные коды были рассмотрены выше в пп. Непосредственно в арифметических операциях десятичные числа участвуют в упакованном формате. В этих пределах операнды могут иметь разную длину. [19]
Для ввода десятичных данных с перфокарт цифра каждого разряда числа набивается в отдельной колонке перфокарты. Для отрицательных чисел последний разряд числа со знаком определяет символ ДКОИ. Каждая цифра записывается на отдельной позиции бланка. [20]
Строки символов и десятичные данные в форме с фиксированной или плавающей точкой могут быть описаны шаблоном. [21]
Строки символов и десятичные данные в форме с фиксированной или плавающей точкой могут быть описаны шаблонами. [22]
По команде АР десятичные данные в упакованном формате из поля второго операнда пересылаются в поле первого операнда, устанавливая в нуль оставшиеся незаполненными старшие полубайты поля первого операнда. [23]
Эта команда помещает десятичные данные упакованного формата из поля второго операнда в область памяти, указанную в первом операнде, устанавливая в нуль оставшиеся незаполненными старшие полубайты поля первого операнда. Эта команда отличается от других команд десятичной арифметики тем, что только второй операнд проверяется на правильность кодов цифр и знака. Если длина поля первого операнда больше длины поля второго операнда, то оставшиеся незаполненными старшие полубайты поля первого операнда заполняются десятичными нулями. Если длина поля первого операнда меньше длины поля второго операнда, то происходит десятичное переполнение. Максимальная неявная или явная длина для любого из операндов равна 16 байтам. [24]
Бели в еравнении внешних десятичных данных с буквенно-цифровыми данными знак не должен участвовать, то следует задать специальный режим в управляющем операторе CBL транслятора ( для ДОС ЕС) или в операторе EXEC управления заданиями ( для ОС ЕС), вызывающем выполнение транслятора. [25]
Во всех командах обработки десятичных данных, за исключением ОТРЕДАКТИРОВАТЬ и ОТРЕДАКТИРОВАТЬ И ОТМЕТИТЬ, либо поля операндов не должны перекрываться совсем, либо у них должны совпадать самые правые байты. В команде СЛОЖЕНИЕ С ОЧИСТКОЙ поля операндов могут перекрываться, но при этом самый правый байт первого операнда должен находиться правее самого правого байта второго операнда; при правильном перекрытии операндов результат будет получен такой же, как если бы операнды обрабатывались справа налево. Так как в процессе выполнения арифметических операций коды цифр и знаков проверяются, то неправильное перекрытие полей операндов рассматривается как особый случай в данных. В командах редактирования перекрытие операндов приводит к непредсказуемым результатам. [26]
Во время выполнения команд обработки десятичных данных доступ ко всем байтам поля операнда не обязательно осуществляется одновременно, а запись в ячейку не обязательно непосредственно следует за выборкой из нее. Кроме того, в поле результата может быть помещено промежуточное значение, отличное от исходного операнда и конечного результата. Таким образом, при наличии общего поля основной памяти, в случае, когда оба процессора обращаются к одному и тому же операнду, результат операции для таких команд, как СЛОЖЕНИЕ ДЕСЯТИЧНОЕ, будет непредсказуем. [27]
Командой CVD они преобразуются в упакованные десятичные данные. [28]
Обращения к памяти по командам обработки десятичных данных и командам ПРЕОБРАЗОВАНИЕ В ДВОИЧНУЮ, ПРЕОБРАЗОВАНИЕ В ДЕСЯТИЧНУЮ, ПЕРЕСЫЛКА СО СДВИГОМ, УПАКОВАТЬ и РАСПАКОВАТЬ не обязательно являются обращениями с одноразовым доступом. [29]
Длины двух операндов в командах обработки десятичных данных не обязательно должны быть одинаковыми. Если это необходимо, то операнды рассматриваются как дополненные нулями слева от старшей цифры. [30]