МИРЭА кафедра МОВС


Способы адресации
В System/370 команды, которые ссылаются на операнды, расположенные в оперативной памяти, должны использовать относительную адресацию с базированием. Целевой адрес получается как сумма содержимого базового регистра, индексного регистра (если он задан) и смещения. Смещение интерпретируется как 12-разрядное целое без знака (отрицательное смещение запрещено). Регистр общего назначения R0 нельзя использовать как базовый или индексный регистр. Если в команде задан в качестве базового или индексного регистра регистр с номером нуль, то при вычислении целевого адреса соответствующий регистр использоваться не будет. В System/370 применяются два способа непосредственной адресации. В команде LA (Load Address) целевой адрес загружается в заданный регистр (вместо того чтобы вызывать операнд из оперативной памяти). Некоторые другие команды, например такие, как MVI (MoVe Immediate), используют непосредственый однобайтовый операнд прямо из команды. Однако это особые случаи, когда непосредственная адресация определяется как часть команды. В большинстве команд использование непосредственных операндов невозможно. В System/370 не предусмотрено адресации относительно счетчика команд или косвенной адресации. Прямая адресация возможна только в весьма специфическом случае, когда в качестве и базового, и индексного регистров используется регистр с нулевым номером. В этом случае в качестве фактического адреса будет взято 12-разрядное смещение. Возможность прямой адресации первых 4096 байт оперативной памяти иногда используется в операционной системе и дает определенные преимущества.