Число-команда: два бита выбирают операцию

Перед тринадцатым уровнем игра предлагает короткое интерактивное вступление: вы собираете числа двумя лампами-битами и сами переводите число-команду в биты-переключатели. Здесь — то же самое в тексте.

Опыт: две лампы и число

Перед вами две лампы: число 1 — первая лампа, число 2 — вторая. Включайте лампы и смотрите на сумму: соберите 2, потом соберите 3. Заметьте: 3 получается только когда горят обе. Каждая лампа добавляет своё постоянное число — вес: выключены обе — 0, обе горят — 3. Четыре сочетания — по одному на каждое число от 0 до 3.

Лампа 2Лампа 1Число
000
011
102
113

Формализация: число-команда = биты

Вы только что записали число двумя битами: первая лампа — младший бит, вторая — старший. 0=00, 1=01, 2=10, 3=11. Одна лампа — один бит выбора. На этом уровне число-команда называется OpSelect: 0 = сложение (ADD), 1 = И (AND), 2 = ИЛИ (OR). Вместо «включи лампу 2» схема скажет «бит 1 равен единице» — и это выберет OR.

Перенос: биты выбирают операцию

BusMUX — тот же мультиплексор с девятого уровня, но 8-битный: он выбирает не два бита, а две шины. Число-операция раскладывается на биты-переключатели: бит 0 OpSelect выбирает между ADD и AND, бит 1 решает, заменить ли результат на OR. OpSelect=2 — это 10: первая лампа погашена, вторая горит — бит 0 равен 0 (первый MUX пропускает один из результатов пары), бит 1 равен 1 (второй MUX подставляет OR).

Зачем это нужно

Двух бит хватает на 4 команды — ровно столько и нужно: ADD, AND, OR и запас. На следующем уровне (АЛУ, четырнадцатый) появится третий бит и семь операций. В процессоре точно так же работает любая команда: число из памяти раскладывается на биты, и каждый бит переводит свой «стрелочный перевод» — вплоть до выбора, куда прыгнет программа.

Пройти вступление в игре · Гайд уровня 13 · Все вступления