байт) в команде либо непосредственно (4- или 8-разрядное поле L), либо в виде
ссылки на регистр GR, содержащий код длины.
В командах z/Architecture допускается использование 24-, 31-разрядных
адресов, размещаемых в формате слова, и 24-, 31-, 64-разрядных адресов - в
формате двойного слова. Разрядность адреса определяется битами 31,32 в слове
состояния программы PSW. Такой способ управления разрядностью позволяет
в рамках одной архитектуры применять различные комбинации разрядностей
адресов и операндов, используемых в z/Architecture и более ранних
архитектурах. Ранее разработанные программы для 32-разрядных операндов
могут быть исполнены в сочетании с 64-разрядной адресацией и, наоборот, 31-
разрядная адресация может применяться совместно с 64-разрядной
арифметикой. Новые дополнительные команды z/Architecture допускают
использование 32-разрядных и 64-разрядных операндов в одной команде.
Зависимость способа исполнения команд не только от кода операции, но и от
способа адресации принято называть модальностью команд. Архитектура
zSeries допускает тримодальную адресацию (по числу вариантов разрядности
адреса). Большинство команд z/Architecture являются немодальными, что
позволило сохранить без изменений исполнение команд предшествующих
архитектур.
z/Architectuire включает форматы всех команд предшествующих архитектур с
одним или двумя байтами COP (первый и второй байты команд в разрядах 0-
15). Новые команды получены в основном за счет неиспользованных кодов
COP или путем добавления второго байта COP в шестой байт команд (разряды
40-47 в форматах RXE, RXF, RXY, RSY, RSE, RSL, RIE и SIY).
Генерация адресов операндов (АО), размещенных в памяти, основана на
косвенно-регистровой адресации, когда адрес берется из регистра, заданного
полем R команды, либо на вычислении путем сложения содержимого базового
(B), индексного (X) регистров и смещения D:
АО = (B) + (X) + D
Разрядность базового и индексного регистров определяется типом команд и
способом адресации. Разрядность смещения равна 12 либо 20 (расширенный
формат). В последнем случае используются два поля смещения: DL - младшие
12 бит, DH - старшие 8 бит. При суммировании база и индекс рассматриваются
как целые двоичные числа, 12-разрядное смещение является целым без знака, а
20-разрядное смещение расширенного формата задано как целое со знаком.
Нулевые значения номеров базового B и индексного X регистров означают
отсутствие соответствующих им компонентов при формировании адреса. Если
один и тот же регистр используется в команде для формирования адреса и в
качестве приемника операнда, первым выполняется формирование адреса. При
формировании адреса с использованием 64-разрядного формата коды базы,