 |
МИРЭА кафедра МОВС |
Система команд
Одной из целей разработчиков системы VAX было создание системы команд,
симметричной в отношении различных типов данных. Значительная часть
мнемонических имен команд формируется с помощью комбинации следующих
элементов:
- префикса, определяющего тип операции;
- суффикса, определяющего тип операндов;
- модификатора (в ряде команд), задающего число операндов.
Например, команда ADDW2 является операцией сложения с двумя операндами,
каждый из которых занимает длинное слово. Аналогично команда MULL3
является операцией умножения с тремя операндами, каждый из которых
занимает одно слово. Команда CVTWL определяет операцию преобразования
слова в длинное слово (в последнем случае подразумевается
использование двух операндов). В большинстве команд операнд может
располагаться в регистре, в памяти или непосредственно в самой
команде. Один и тот же код операции используется независимо от
месторасположения операндов. Этот подход является более гибким по
сравнению с подходом в System/370, который требует различных кодов
операций в зависимости от месторасположения операндов.
VAX обеспечивает все обычные типы команд для вычислений, пересылки
данных, преобразования, сравнения, ветвления и т. п. Кроме того
существует ряд более сложных команд, чем те, которые имеются в
большинстве ЭВМ. Во множестве случаев такие операции являются
аппаратной реализацией часто используемых последовательностей команд
для увеличения эффективности и скорости их выполнения. Например, VAX
предоставляет команды групповой загрузки и запоминания регистров, а
также команды для работы с очередями и строками битов переменной длины.
Предусмотрены мощные команды для вызова и возврата из процедур.
С помощью одной-единственной команды осуществляется запоминание
содержимого заданной группы регистров, передача списка фактических
параметров процедуре, управление указателями стека, фрейма и списка,
аргументов, а также установка маски для предотвращения ошибок в
арифметических операциях. Более детальную информацию о системе команд
VAX можно найти в DEC [1981]