Уровень 25: Проверка на минус

Задание

Изучите условный переход JN (Jump if Negative). Запустите тестовую программу и убедитесь, что переход работает.

JN (Jump if Negative) — условный переход, срабатывающий когда бит 7 результата = 1 (отрицательное число в дополнительном коде).

Решение

Как это работает аппаратно: 1. Splitter извлекает бит 7 из выхода ALU (флаг Negative). 2. Элемент AND комбинирует: Decoder.JumpCond AND Bit7. 3. Элемент OR комбинирует: JumpUncond OR (JumpCond AND Bit7) → PC.Load. 4. При PC.Load=1 счётчик команд загружает адрес перехода из операнда.

Программа-тест: - LDA 10 → Acc = 10 - STA 10 → RAM[10] = 10 - LDA 5 → Acc = 5 - SUB 10 → Acc = 5 − RAM[10] = 5 − 10 = 251 (бит 7 = 1, отрицательное) - JN negative → переход (бит 7 = 1) - LDA 99 → Acc = 99 - HLT

Если JN работает, Acc = 99. Если нет — Acc останется 251.

Нажмите «Выполнить», затем «Чекпойнт».