Cтраница 1
Байты первого операнда используются как аргументы для обращения к словарю, указанному адресом второго операнда. Каждый байт, выбранный из словаря ( байт-функция), замещает соответствующий аргумент в первом операнде. [1]
Байты первого операнда перекодируются в соответствии со вторым операндом следующим образом. Код каждого байта первого операнда последовательно слева направо преобразуется в десятичный эквивалент, который прибавляется к адресу второго операнда. Содержимое байта второго операнда для полученного адреса замещает соответствующий байт первого операнда. [2]
Байты первого операнда выбираются для перекодирования один за другим слева направо. [3]
Байты первого операнда используются как аргументы для обращения к словарю, указанному адресом второго операнда. [4]
Байты первого операнда выбираются для перекодирования один за другим слева направо. Первый операнд в памяти не изменяется. Выборка байт-функции из словаря производится так же, как при выполнении команды ПЕРЕКОДИРОВАТЬ. [5]
Перекодирование осуществляется на основе просмотра таблицы - словаря, в соответствии с которой байты первого операнда замещаются байтами второго операнда. База В2 и смещение D2 такой команды определяют начальный адрес словаря. Байты первого операнда называют аргументами, а второго - функциями. В процессе выполнения команды каждый байт - аргумент первого операнда, начиная с первого ( считая слева направо), прибавляется к младшим разрядам начального адреса словаря. В результате последовательно формируются адреса, по которым из таблицы-словаря выбираются байты-функции, замещающие байты в поле первого операнда. [6]
Если длина поля первого операнда больше, чем это необходимо для размещения результата операции, то старшие байты первого операнда дополняются символьными десятичными нулями. Если результат не помещается в поле первого операнда, то старшие разряды числа теряются. [7]
Байты первого операнда перекодируются в соответствии со вторым операндом следующим образом. Код каждого байта первого операнда последовательно слева направо преобразуется в десятичный эквивалент, который прибавляется к адресу второго операнда. Содержимое байта второго операнда для полученного адреса замещает соответствующий байт первого операнда. [8]
Второй операнд помещается слева от младших 4 битов первого операнда и вплотную к этим битам. Младшие 4 бита первого операнда присоединяются в качестве младших битов ко второму операнду, и результат помещается на место первого операнда. Байты первого и второго операндов не проверяются на допустимость кодов. [9]
Перекодирование осуществляется на основе просмотра таблицы - словаря, в соответствии с которой байты первого операнда замещаются байтами второго операнда. База В2 и смещение D2 такой команды определяют начальный адрес словаря. Байты первого операнда называют аргументами, а второго - функциями. В процессе выполнения команды каждый байт - аргумент первого операнда, начиная с первого ( считая слева направо), прибавляется к младшим разрядам начального адреса словаря. В результате последовательно формируются адреса, по которым из таблицы-словаря выбираются байты-функции, замещающие байты в поле первого операнда. [10]
Упакованное число по адресу второго операнда переводится в зонный формат и помещается на место первого операнда. Опера ция выполняется байт за байтом справа налево следующим образом: тетрады младшего байта меняются местами, каждая следующая цифра расширяется приписыванием зоны F. Оставшиеся свободными байты первого операнда заполняются зонными нулями. Цифры и зоны не проверяются. [11]
Команды сдвига. [12] |
При выполнении операций CL, CLR и CLI операнды сравниваются как двоичные целые положительные числа без знака. При выполнении операций CLC и CLCL поле первого операнда побайтно ( справа налево) сравнивается с полем второго операнда и устанавливается признак результата. При выполнении операции CLM байты первого операнда, для которых разряд маски ( в поле М) равен 1, сравниваются ( слева направо) с последовательно выбираемыми байтами из поля второго операнда в основной памяти и устанавливается признак результата. При выполнении операций CS, CDS если первый операнд равен второму, то третий операнд замещает второй, в противном случае второй операнд замещает первый. Во всех командах, кроме CS и CDS, исходные операнды не изменяют своих значений. [13]
При обработке первого, самого крайнего правого байта знак и младшая десятичная цифра меняются местами. Все остальные байты обрабатываются одинаково, а именно, к каждой цифре упакованного формата автоматически добавляется зона F, и полученная десятичная цифра помещается в соответствующий байт. Если поле первого операнда имеет длину большую, чем это необходимо для размещения результата операции, то старшие байты первого операнда дополняются символьными десятичными нулями FO. Если ре-зультат не помещается в поле первого операнда, то старшие разряды числа теряются. На правильность кодирования второй операнд не проверяется. В результате операции второй операнд не изменяется. Изменяется только первый операнд. Команда UNPK позволяет производить преобразование в своем собственном поле так же, как команда PACK. Значение исходного операнда в этом случае не сохраняется. [14]
При обработке первого, самого крайнего правого байха знак и младшая десятичная цифра меняются местами. Все остальные байты обрабатываются одинаково, а именно, к каждой цифре упакованного формата автоматически добавляется зо а F, и полученная десятичная цифра помещается в соответствующий байт. Если поле первого операнда имеет длину большую, чем это необходимо для размещения результата операции, то старшие байты первого операнда дополняются символьными десятичными нулями FO. На правильность кодирования второй операнд не проверяется, В результате операции второй операнд не изменяется. Изменяется только первый операнд. Команда UNPK позволяет производить преобразование в своем собственном поле так же, как команда PACK. Значение исходного операнда в этом случае не сохраняется. [15]