Лучшие вопросы
Таймлайн
Чат
Перспективы

MIX

Из Википедии, свободной энциклопедии

Remove ads

MIX — это гипотетический компьютер, использованный в монографии Дональда Кнута, «Искусство программирования»[1]. Номер модели компьютера MIX — 1009, происходит от комбинации номеров и названий коммерческих моделей машин, современных времени написания книги и показавшихся автору значимыми. Кроме того, «MIX» равняется 1009 в Римской системе счисления.

MIX 1960-х был заменён новой (также гипотетической) компьютерной архитектурой, MMIX, которая будет включена в ожидаемой редакции книги. Программные реализации MIX- и MMIX-архитектур были разработаны различными авторами и свободно доступны (например, разработанные самим Кнутом MIXware и MMIXware).

Remove ads

Архитектура

Суммиров вкратце
Перспектива

MIX представляет собой гибридный двоично-десятичный компьютер. Когда компьютер программируется в бинарном режиме, каждый байт имеет 6 бит (значения от 0 до 63). В десятичном режиме каждый байт имеет 2 десятичных знака (значения от 0 до 99). Байты сгруппированы в слова по пять байт со знаком. Большинство программ, написанных для MIX, будут работать как в бинарном, так и в десятичном режимах, пока они не попытаются сохранить значение больше 63 в одном байте.

Слово изменяется в пределах от −1.073.741.823 до 1.073.741.823 (включительно) в бинарном режиме и от −9.999.999.999 до 9.999.999.999 (включительно) в десятичном режиме. В компьютере MIX различаются числа −0 и +0, чего нет на современных компьютерах, в которых есть только одно представление нуля, но количество отрицательных чисел, которые могут быть представлены определённым числом бит, на единицу больше количества положительных чисел.

Регистры

В компьютере MIX 9 регистров:

  • rA: Аккумуляторный регистр (accumulator)(полное слово (full word), пять байт со знаком);
  • rX: Расширение (extension) (полное слово, пять байт со знаком);
  • rI1, rI2, rI3, rI4, rI5, rI6: Индексные регистры (Два байта и знак);
  • rJ: Адрес перехода (два байта, всегда положительный).

Полагается, что байт имеет, как минимум, 6 бит. Большинство инструкций могут указывать, какие из полей (байт) регистра требуется изменить, используя суффикс в форме (первый: последний). Нулевое поле — однобитовый знак.

MIX также записывает, вызвала ли предыдущая операция переполнение и один из трёх индикаторов (меньше, равно или больше). На диаграмме ниже каждый регистр показан разделённым на свои поля.

±A1A2A3A4A5
±X1X2X3X4X5
+J4J5
OV?
<=>?
±I1.4I1.5
±I2.4I2.5
±I3.4I3.5
±I4.4I4.5
±I5.4I5.5
±I6.4I6.5

Память и ввод-вывод

Компьютер MIX имеет 4000 слов хранения (каждый по 5 байт со знаком), адресуемых с 0 до 3999. Кроме того, есть множество устройств ввода и вывода:

  • Магнитофонные устройства (устройства 0 … 7);
  • Диск или барабанные устройства (устройства 8 … 15);
  • Устройство чтения карт (устройство 16);
  • Карточный перфоратор (устройство 17);
  • Построчный принтер (устройство 18);
  • Пишущая машинка (устройство 19);
  • Перфолента (устройство 20).

Инструкции

Каждая машинная инструкция в памяти занимает одно слово и состоит из 4 частей: адрес (2 байта со знаком) в памяти для чтения или записи, указание индексного регистра (1 байт, определяющий, какой индексный регистр rI использовать) для добавления к адресу, модификация (1 байт), определяющая, какие части регистра или ячейки памяти будут прочитаны или изменены, и код операции (1 байт). Все коды операции имеют словесные обозначения.

Программы MIX часто используют самомодифицирующийся код, в частности, чтобы вернуться из подпрограммы, так как в MIX отсутствует автоматический стек подпрограмм.

Программы для компьютера MIX обычно пишутся на языке MIXAL.

Команды загрузки

Содержимое поля по адресу [ ADDR + rIi(содержимое регистра I с индексом i) ] загружается в регистр.

Подробнее LDA ADDR, i(0 : 5), LDX ADDR, i(0 : 5) ...

Команды записи в память

Записывает содержимое регистра в ячейку памяти с адресом [ ADDR + rIi ]

Подробнее STA ADDR, i(0 : 5), STX ADDR, i(0 : 5) ...

Арифметические команды

Подробнее ADD ADDR, i(0 : 5), SUB ADDR, i(0 : 5) ...

Команды операций с адресами

Подробнее ENTA ADDR, i, ENTX ADDR, i ...

Команды сравнения

Подробнее CMPA ADDR, i(0 : 5), CMPX ADDR, i(0 : 5) ...

Команды перехода

Подробнее JMP ADDR, i, JSJ ADDR, i ...

Другие команды

Подробнее MOVE ADDR, i(F), SLA/SRA ADDR, iSLAX/SRAX ADDR, i SLC/SRC ADDR, i ...

Команды ввода-вывода

Подробнее IN ADDR, i( F ), OUT ADDR, i( F ) ...

Команды преобразования

Подробнее NUM, CHAR ...
Remove ads

Примечания

Ссылки

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads