Как выполнялись инструкции филиала на микропроцессоре 6502? - PullRequest
0 голосов
/ 24 марта 2019

Существует много способов реализации инструкции ветвления в аппаратном обеспечении контроллера / секвенсора. Я сам делал это раньше с помощью моего собственного метода, но мой вопрос: как это было сделано на микропроцессоре 6502 и существует ли универсальный или, по крайней мере, популярный способ разработки аппаратного обеспечения для инструкций ветвления?

(Дополнительная информация). Метод, который я использовал, - это добавление выводов флажков, прикрепленных к шине кода операции, которые при установке высокого значения во время конкретной инструкции ветвления будут загружать значение определенного флага в ПЗУ декодера, таким образом, выполняя переход, если флаг был высоким / низким, и пропуск ветви, если флаг был низким / высоким. Например, во время взлома BNE (ветвь на неравных) в определенный тактовый цикл будет активирован вывод «Нулевой флаг». Если вывод низкий, он не меняет код операции, и декодер обычно переходит в следующую ячейку памяти, чтобы выполнить следующий набор микроинструкций, который в этом случае завершает инструкцию BNE без ветвления, а затем ожидает новую инструкцию. Однако, если вывод «Zero flag» высокий, то он меняет код операции, тем самым заставляя декодер перейти к новому адресу (который равен операционному коду), где он будет читать другой набор микроинструкций, которые будут выполнять переход вместо простого завершения / игнорируя это.

1 Ответ

0 голосов
/ 25 марта 2019

Прежде всего, код операции не меняется, никогда.

Если у вас нет инсайдерской информации о "микрокоде" 6502, вы не сможете узнать точную реализацию. Таблица данных только дает вам информацию о выполняемой операции, но редко дает информацию о том, как именно это выполняется. Можно только догадываться.

Одна такая догадка:

  1. Соответствующий бит регистра кода состояния (нормальный или инвертированный в зависимости от инструкции) маскирует операнд команды перехода в ноль, если переход не должен быть взят.

  2. (теперь возможно замаскированное) 8-битное смещение со знаком добавляется на ПК.

...