Уровень 20: Двойное чтение
Открыть уровень →Где это в машине →
Задание
Подключите вторую ROM (операнды): её адрес — от PC, выход — на адресный вход RAM. PC шагает на +2.
В word-формате инструкция занимает 2 байта. Первая ROM хранит опкоды, вторая ROM — операнды.
Главная идея уровня: один адрес, два потока: PC читает опкод из ROM#1 и операнд из ROM#2 параллельно, и команда собирается за один цикл. Гарвардское разделение инструкций и данных упрощает выборку, а не усложняет её.
Материалы по теме
- Справка по ассемблеру →
- RAM — оперативная память
Решение для самопроверки
Сначала попробуйте собрать схему сами. Решение ниже — способ свериться, если застряли или уже справились.
Обе ROM адресуются PC (который шагает на +2). Это значит: - ROM[0] выдаёт опкод (старший байт инструкции), - ROM#1 (вторая ROM) выдаёт операнд (младший байт инструкции).
Задачи: 1. BusConstant = 2 → вход Inc у PC (как в уровне 19). 2. ROM#1.Q → вход Addr у RAM. Это направит операнд инструкции на адресный вход оперативной памяти — теперь LDA/STA будут работать с 8-битными адресами.
Совет: ROM#1 (вторая ROM) находится ниже первой ROM на холсте. Её выходной пин — Q.