Electrologica X1 - Electrologica X1

Память X1

Electrologica X1 был цифровой компьютер разработан и изготовлен в Нидерландах с 1958 по 1965 год Около тридцати были произведены и проданы в Нидерландах и за рубежом.

X1 был разработан Математическим центром в Амстердаме , академической организацией, которая занималась компьютерным проектированием с 1947 года, и произведен компанией Electrologica NV, созданной специально для производства машины.

X1 был твердотельным двоичным компьютером («полностью транзисторным») с памятью на магнитных сердечниках . Длина слова составляла 27 бит, а периферийные устройства включали перфорированную и магнитную ленту. Это был один из первых компьютеров в Европе с функцией прерывания .

X1 был предметом докторской диссертации Эдсгера Дейкстры. диссертацию и цель первого полностью работающего компилятора ALGOL 60 , выполненного Дейкстрой и Яапом Зонневельдом. В 1965 году X1 был заменен X8 . Несколько лет спустя компания Electrologica была поглощена Philips .

Набор инструкций

X1 позволял условное выполнение каждой инструкции, а не только переходов, как в большинстве компьютеров. Аналогичная возможность существовала в Zuse Z22 и ZEBRA , а гораздо позже в архитектуре ARM . Подход, используемый в X1, более гибкий, чем эти другие: он делает выполнение условным для текущего состояния флага условия, который установлен предыдущей инструкцией, если он включает модификатор для этой цели, но не затрагивается в противном случае. В результате условное выполнение может быть основано на тестах, выполненных на несколько строк раньше, а не на основе только результата последней арифметической операции. Это позволило компактно выразить программы. В следующем примере демонстрируется загрузка значения памяти в n в аккумулятор A , вызов подпрограммы (которая предположительно использует это значение в A ) и, наконец, установка A в качестве абсолютного значения прочитанного числа:

   2A n P   // copy [n] to A, set condition flag to "yes" if positive
   6T fn 0  // call the function at fn, which will return with the condition flag preserved
 N 5P AA    // if condition flag is "no", copy -A to A

В арифметических операторах X1 использовалась арифметика с двоичным дополнением до единиц .

Ассемблер

X1 включил простой ассемблер в свою постоянную память . Он имеет довольно базовые функции: можно определять символические адреса, но символы состоят только из двух букв. Команды называются комбинацией цифры, представляющей операцию, и буквы, обозначающей регистр, над которым нужно работать, или одной или двух букв, обозначающих класс операции. Например, «0A» означает «добавить содержимое памяти к аккумулятору A», а «5P» означает «установить отрицательное значение аккумулятора другого аккумулятора». Обычно символические адреса используются для обозначения «абзацев», т. Е. Связанных блоков кода или данных. Символьные адреса будут изменены на «номер строки» (числовое смещение) и «номер страницы» (число в диапазоне от 0 до 31). Например, «3 FE 6» - это номер строки 3, номер страницы 6, представляющий смещение 195 (6 * 32 + 3) от начала абзаца FE. Такая запись адресов - особенность ассемблера; Аппаратная адресация просто использует 15-битные адреса.

Рекомендации