Система командАрхитектурные решения семейства нашли свое отражение в системе
команд. Практически все команды для всех ЭВМ семейства (за исключением
команд процессора плавающей точки ЭВМ «Электроника 79» и нескольких
команд управления внутренним оборудованием центрального процессора)
совпадают. Это обеспечивает совместимость программ на уровне Ассемблера
как снизу вверх, так и сверху вниз. Отметим основные особенности системы
команд. - Внесение счетчика команд в набор РОН
позволило по-новому решить ряд проблем адресации. Основной тип адресации
в любой системе — относительная адресация — обеспечивается указанием
смещения относительно текущего места в программе. Следовательно,
смещение зависит не только от положения операнда в программе (например,
от расстояния от начала программы), но и от места команды, которая
использует этот операнд. Это позволило отказаться от базовых регистров, а
также уменьшить размер всех команд ветвления за счет указания смещения
перехода (±256 байт) в самой команде. Считается, что большинство
переходов в хорошей программе осуществляет переходы в этом диапазоне.
- Команды системы не зависят от уровня памяти,
на которой размещены операнды (регистровой и оперативной). Метод
адресации у каждого операнда свой и в подавляющем большинстве является
произвольным (в том числе и непосредственная адресация). Поэтому
варианты расположения операндов команды в памяти не увеличивают
количество команд, и система команд имеет высокий логический уровень.
- Все операнды явным образом адресуются через регистры,
и формат собственно команды является неизменным — одно слово (т. е. 16
разрядов). Адресация через счетчик команд (относительная,
непосредственная, абсолютная) и индексная предполагают размещение вслед
за командой смещения индекса непосредственного операнда или абсолютного
адреса. Эти данные образуют с командой как бы одно целое — расширенную
команду, которая имеет длину от одного до трех слов в зависимости от
применяемых методов адресации операнда.
- Ограниченная разрядность
слова привела к поиску новых решений в области назначения кода
операции. Здесь применен прием расширения кода операции, при котором
длина кода операции не фиксирована (как, например, в ЕС ЭВМ — 1 байт), а
изменяется в зависимости от числа операндов. Этот прием
проиллюстрирован в табл. 1.5.
Произвольный доступ к операнду занимает 6 разрядов: 3 — метод адресации, 3 — номер регистра.
Поэтому в двухадресной команде на код операции — КОП (горизонтальная
штриховка) остается 4 разряда, т. е. 16 комбинаций. 12 используются в
команде, а 4 — для расширения: из них 2 комбинации идут на кодирование
команд ветвления, 1 — двухадресных регистровых команд, в которых первый
операнд обязательно в регистре, 1 — управления процессором плавающей
точки. В следующей группе старшие 4 разряда уже заняты (косая
штриховка), а два операнда занимают 9 разрядов, так как один просто
номер регистра. Следовательно, код операции имеет 3 разряда, всего здесь
6 команд, одна комбинация расширяется для регистровых одноадресных
команд, одна резервная и т. д. С помощью такого приема удалось
кодировать 150 команд. При фиксированном размере кода операции под него
необходимо было бы отвести байт, т. е. при размере слова в 16 разрядов
можно было использовать только один адрес. Кроме того, под возможные
расширения системы имеются еще 182 резервных комбинации (в основном
одноадресных регистровых и безадресных). |