Уровень 19: Шаг вперёд (PC+2)
Открыть уровень →Где это в машине →
Задание
Цель: Подключите BusConstant(2) к входу Inc счётчика команд, чтобы PC шагал на +2 вместо +1.
С 19-го уровня архитектура переходит на word-формат: каждая инструкция занимает 2 байта (байт 0 = опкод, байт 1 = операнд 0–255).
Главная идея уровня: шаг счётчика команд обязан совпадать с размером инструкции: как только команда занимает два байта, PC шагает на +2, иначе попадёт в середину слова. Формат машинного слова диктует аппаратуре, куда двигаться.
Путь к уровню
Компетенции, к которым ведёт этот уровень, и их уровни формирования.
Материалы по теме
- Справка по ассемблеру →
- ProgramCounter — счётчик команд
- BusSHL — сдвиг влево, умножение на 2
Решение для самопроверки
Сначала попробуйте собрать схему сами. Решение ниже — способ свериться, если застряли или уже справились.
Что должно получиться: при каждом такте PC увеличивается на 2: 0, 2, 4, 6… — каждый чётный адрес начинает новую инструкцию.
Поэтому счётчик команд (PC) должен шагать не на +1, а на +2.
У ProgramCounter есть вход Inc (порт 4) — он определяет, на сколько PC увеличивается при каждом такте. По умолчанию, если вход не подключён, Inc = +1.
Задача:
- Найдите на холсте BusConstant (серый блок с надписью): значение 2 в нём уже предустановлено. Виджет значения правится двойным щелчком, если захотите поэкспериментировать.
- Соедините выход BusConstant (Q) с входом Inc у ProgramCounter (порт 4, подписан «Inc»).
Теперь PC будет шагать на +2, идя по чётным адресам: 0, 2, 4, 6… — каждый чётный адрес начинает новую инструкцию word-формата (нечётный байт — её операнд).
Проверь себя
Почему PC шагает именно на +2, а не на +1?
В word-формате инструкция занимает 2 байта: шаг +2 попадает в начало следующей команды, а не в середину слова.