Наглядное пособие по вычислениям CARDboard

Учебное пособие
Программа степени двойки, запущенная в эмуляторе CARDIAC. Программа выводит 1, 2, 4, 8, …, 512 и останавливается после 277 шагов.

CARDIAC (CARDboard Illustrative Aid to Computation) — учебное пособие, разработанное Дэвидом Хагелбаргером и Солом Фингерманом для Bell Telephone Laboratories в 1968 году для обучения школьников работе компьютеров . Комплект состоит из инструкции и вырезанного из картона «компьютера».

Компьютер «работает» с помощью карандаша и скользящих карточек. Любая арифметика выполняется в голове человека, управляющего компьютером. Компьютер работает в десятичной системе счисления и имеет 100 ячеек памяти , которые могут хранить числа со знаком от 0 до ±999. Он имеет набор из 10 инструкций, которые позволяют CARDIAC складывать, вычитать, проверять, сдвигать, вводить, выводить и прыгать.

Аппаратное обеспечение

Передняя часть устройства CARDIAC

« CPU » компьютера состоит из 4 слайдов, которые перемещают различные числа и стрелки, чтобы поток реального CPU ( мозга пользователя ) двигался в правильном направлении. У них есть один флаг (+/-), на который влияет результат в аккумуляторе.

Память состоит из другой половины картонной выкройки. Всего 100 ячеек. Ячейка 0 — это « ПЗУ », всегда содержащая число «1»; ячейки с 1 по 98 — это « ОЗУ »; доступны для инструкций и данных; а ячейку 99 лучше всего можно описать как « ЭСППЗУ ».

Ячейки памяти содержат десятичные числа со знаком от 0 до ±999 и записываются карандашом. Ячейки стираются ластиком. «Жук» предоставляется для работы в качестве счетчика программ и помещается в отверстие рядом с текущей ячейкой памяти.

Программирование

CARDIAC имеет 10 инструкций машинного языка . Инструкция представляет собой три десятичных цифры (знак игнорируется) в форме OAA. Первая цифра — код операции ( O); вторая и третья цифры — адрес ( AA). Адресация может быть аккумулятором в абсолютную память, абсолютной памятью в аккумулятор, входом в абсолютную память и абсолютной памятью в выход.

Языки высокого уровня никогда не разрабатывались для CARDIAC, поскольку они противоречили бы одному из предназначений устройства: внедрению концепций программирования на языке ассемблера.

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

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

Набор инструкций CARDIAC
Код операцииМнемоническийИнструкцияОписание
0ИНПВходвзять число с входной карты и поместить его в указанную ячейку памяти.
1КЛАОчистить и добавитьочистить аккумулятор и добавить содержимое ячейки памяти в аккумулятор.
2ДОБАВЛЯТЬДобавлятьдобавить содержимое ячейки памяти в аккумулятор.
3ТАСТестовое содержимое аккумуляторавыполняет проверку знака содержимого аккумулятора; если отрицательно, переходит к указанной ячейке памяти.
4СФТСдвигсдвигает аккумулятор на x позиций влево, затем на y позиций вправо, где x — старшая цифра адреса, а y — младшая.
5ВНЕВыходвзять число из указанной ячейки памяти и записать его на выходную карточку.
6СТОМагазинскопировать содержимое аккумулятора в указанную ячейку памяти.
7СУБВычитатьвычесть содержимое указанной ячейки памяти из аккумулятора.
8СПМПрыжокперейти к указанной ячейке памяти. Текущий номер ячейки записывается в ячейку 99. Это позволяет использовать один уровень подпрограмм, возвращая инструкцию в ячейке 99 (в которой «8» жестко закодировано как первая цифра).
9ЧРСОстановка и сброспереместить ошибку в указанную ячейку, затем остановить выполнение программы.

Операция

Программы запускаются путем перемещения трех слайдов таким образом, чтобы число в регистре команд совпадало с числом в ячейке памяти, в которой находится ошибка. После этого ошибка перемещается в следующую ячейку памяти. Затем пользователь следует за стрелкой, которая затем сообщает ему, что делать дальше. Это продолжается для всего выполнения программы.

Смотрите также

  • обсуждение CARDIAC с примерами и симулятором на JavaScript
  • интерпретатор и интерактивный отладчик на платформе .NET на GitHub
  • cinc/jcinc – симулятор для платформы Java с интерфейсом командной строки и графическим пользовательским интерфейсом на SourceForge
  • Программный эмулятор для CARDIAC – размещен на Macintosh, Windows (не проверено) и Linux (не проверено); содержит редактор, простой ассемблер и примеры; коды операций 0 и 9 взаимозаменяемы, как описано на странице; исходный код, по-видимому, является собственностью; бесплатная загрузка
  • Краткий обзор компьютера Built CARDIAC на YouTube
  • Проектирование ЦП на бумаге – версия CARDIAC в виде электронной таблицы Эла Уильямса на сайте доктора Добба
  • Статья о ПЛИС – реализация ПЛИС CARDIAC Элом Уильямсом на плате ПЛИС (заключительная статья из серии на веб-сайте доктора Добба)
  • Эмулятор, написанный на RUST - это реализация эмулятора для CARDIAC на RUST.
Получено с "https://en.wikipedia.org/w/index.php?title=CARDboard_Illustrative_Aid_to_Computation&oldid=1188547249"