Часть 2 · Продвинутая архитектура · уровни 17–29
Вторая часть собирает из деталей первой настоящий компьютер: дешифратор читает байт инструкции, ROM хранит программу, RAM — данные, а ассемблер переводит текст в машинный код. Финал — «Змейка», работающая на вашем процессоре.
Открыть в игре →Программа курса
Основные идеи части
- Дешифратор превращает байт инструкции в управляющие сигналы: старшие биты — что делать, младшие — с чем.
- Гарвардская архитектура: программа и данные хранятся раздельно — программа в ROM, данные в RAM.
- Ассемблер — язык машины: одна строка — один байт кода в формате «опкод + операнд».
- Флаги и условные переходы дают программам ветвления и циклы: JZ физически — мультиплексор перед счётчиком команд.
- Порты ввода-вывода — те же адреса памяти: геймпад, дисплей и ГПСЧ читаются и пишутся обычными командами.
Что вы построите к концу части
К концу части у вас полный 8-битный Harvard-процессор с ассемблером, флагами и портами ввода-вывода — и программы с циклами на нём, вплоть до «Змейки» уровня 29.
Уровни части
- 17. Анатомия дешифратора — собрать дешифратор опкода на цепочках AND и проверить распознавание заданного кода Открыть в игре →
- 18. ФИНАЛ: Компьютер Ершова — собрать процессор на Harvard-архитектуре и протактировать цикл выполнения инструкции (ROM → дешифратор → АЛУ → аккумулятор) Открыть в игре →
- 19. Шаг вперёд (PC+2) — перенастроить счётчик команд на шаг +2 и показать на программе, зачем нужен переменный шаг (word-формат) Открыть в игре →
- 20. Двойное чтение — подключить два банка ROM к одному PC и показать двойное чтение опкода и операнда Открыть в игре →
- 21. Указатели — использовать регистр IX для косвенной адресации в программе и объяснить роль указателя Открыть в игре →
- 22. Конфликт на шине — диагностировать конфликт на шине и восстановить разделение устройств дешифратором адреса Открыть в игре →
- 23. Геймпад — написать программу чтения порта ввода и объяснить разницу LDA N и ADD N Открыть в игре →
- 24. Ручной пиксель — объяснить протокол memory-mapped портов дисплея (X, Y, пиксель) и зажечь пиксель Открыть в игре →
- 25. Проверка на минус — объяснить флаги состояния (доп. код) и написать программу с условным переходом JN Открыть в игре →
- 26. Бросок кубика — подключить LFSR как третий источник на шину и получить серию «случайных» чисел, объяснив псевдослучайность Открыть в игре →
- 27. Hello, Ports! — читать и править готовую ассемблерную программу под новое условие Открыть в игре →
- 28. Движущаяся точка — написать полную программу с переменными в RAM, вводом, ветвлением и циклом Открыть в игре →
- 29. ФИНАЛ: Змейка — спроектировать игру «Змейка» на ассемблере: состояние, ввод, отрисовка Открыть в игре →
Номер уровня ведёт в его гайд в библиотеке; «Открыть в игре» — прямо в симулятор на этот уровень.
Что дальше: Часть 3 · Verilog →