Картонное иллюстративное пособие для вычислений - Википедия - CARDboard Illustrative Aid to Computation
CARDIAC (Картонное иллюстративное пособие для вычислений) это учебное пособие, разработанное Дэвид Хагельбаргер и Сол Фингерман за Bell Telephone Laboratories в 1968 году научить старшеклассников, как компьютеры работай. В комплект входит инструкция по эксплуатации и высеченный картонный «компьютер».
Компьютер «действует» с помощью карандаша и выдвижных карточек. Любая арифметика производится в голове человека, работающего на компьютере. Компьютер работает в база 10 и имеет 100 ячейки памяти которые могут содержать числа со знаком от 0 до ± 999. Он имеет набор из 10 инструкций, который позволяет CARDIAC складывать, вычитать, тестировать, сдвигать, вводить, выводить и переходить.
Аппаратное обеспечение
Значок «ЦПУ ”Компьютера состоит из 4 слайдов, на которых перемещаются различные числа и стрелки, чтобы иметь представление о реальном процессоре (пользователь мозг ) двигаться в правильном направлении. У них есть один флаг (+/-), на который влияет результат в аккумуляторе.
объем памяти состоит из второй половины картонного выреза. Есть 100 ячеек. Ячейка 0: «ПЗУ », Всегда содержащий числовую« 1 »; ячейки с 1 по 98 "баран »; доступны для инструкций и данных; а ячейку 99 лучше всего описать как «EEPROM ”.
Ячейки памяти содержат подписанные десятичный числа от 0 до ± 999 и пишутся карандашом. Клетки стираются ластиком. Предоставляется «жучок», который действует как счетчик программы, и помещается в отверстие рядом с текущей ячейкой памяти.
Программирование
CARDIAC имеет 10 инструкций машинный язык. Инструкция состоит из трех десятичных цифр (знак игнорируется) в виде OAA
. Первая цифра - это код операции (О
); вторая и третья цифры - это адрес (AA
). Адресация представляет собой одну из следующих форм: от аккумулятора к абсолютной памяти, от абсолютной памяти к аккумулятору, от ввода к абсолютной памяти и от абсолютной памяти к выходу.
Языки высокого уровня никогда не разрабатывались для CARDIAC, поскольку они нарушили бы одну из целей устройства: представить концепции программирования на языке ассемблера.
Программы собираются вручную, а затем заносятся в соответствующие ячейки памяти.
Набор инструкций
Код операции | Мнемонический | Инструкция | Описание |
---|---|---|---|
0 | INP | Вход | взять номер с карты ввода и поместить его в указанную ячейку памяти. |
1 | CLA | Очистить и добавить | очистить аккумулятор и добавить в аккумулятор содержимое ячейки памяти. |
2 | ДОБАВИТЬ | Добавлять | добавить в аккумулятор содержимое ячейки памяти. |
3 | TAC | Содержимое тестового аккумулятора | выполняет знаковую проверку содержимого аккумулятора; если минус, переход к указанной ячейке памяти. |
4 | SFT | Сдвиг | сдвигает аккумулятор на x мест влево, затем на y вправо, где x - это верхняя цифра адреса, а y - нижняя. |
5 | ИЗ | Выход | взять число из указанной ячейки памяти и записать его на карту вывода. |
6 | СТО | Магазин | скопировать содержимое аккумулятора в указанную ячейку памяти. |
7 | SUB | Вычесть | вычесть из аккумулятора содержимое указанной ячейки памяти. |
8 | JMP | Прыгать | переход к указанной ячейке памяти. Текущий номер ячейки записывается в ячейку 99. Это позволяет использовать один уровень подпрограмм, имея в качестве возврата инструкцию в ячейке 99 (в которой жестко запрограммировано «8» в качестве первой цифры. |
9 | HRS | Остановить и сбросить | переместить ошибку в указанную ячейку, затем остановить выполнение программы. |
Операция
Программы запускаются путем сдвига первых трех слайдов таким образом, чтобы число в регистре инструкций равнялось числу в ячейке памяти, в которой находится ошибка. Как только это будет сделано, ошибка перемещается в следующую ячейку памяти. Затем пользователь следует за стрелкой, которая сообщает ему, что делать дальше. Это продолжается на протяжении всего выполнения программы.
Смотрите также
- Маленький компьютер человека (другая учебная модель)
- Бумажный компьютер WDR
внешняя ссылка
- http://cs.drexel.edu/~bls96/museum/cardiac.html - обсуждение CARDIAC с примерами и симулятором в JavaScript
- https://github.com/jawhitti/Cardiac - интерпретатор и интерактивный отладчик на платформе .NET
- http://www.sourceforge.net/projects/cinc/ - тренажер для Платформа Java с интерфейсами командной строки и графического интерфейса. Sourceforge проект под названием jcinc.
- http://www.kaleberg.com/software/cardiac/ - симулятор, размещенный на Macintosh, Windows (не тестировалось) и Linux (не тестировалось). Симулятор предоставляет редактор, простой ассемблер и примеры. Как описано на странице, коды операций 0 и 9 меняются местами. Исходный код симулятора проприетарный, его можно скачать бесплатно.
- https://www.youtube.com/watch?v=CW96m7R0u-s
- http://www.drdobbs.com/embedded-systems/cpu-design-on-paper/240153480 - Эл Вильямс опубликовал версию CARDIAC в виде электронной таблицы на сайте доктора Добба.
- http://www.drdobbs.com/embedded-systems/paper-to-fpga/240155922 - Реализация CARDIAC на ПЛИС на плате ПЛИС Элом Вильямсом (заключительная статья серии на веб-сайте доктора Добба)