Я пишу простой эмулятор GB (ничего себе, теперь это что-то новое, не так ли), так как я действительно делаю первые шаги в эму.Эмуляция: безусловные переходы и увеличение ПК с помощью циклов процессора
Я, похоже, не понимаю, как правильно реализовать цикл процессора и безусловные переходы.
Рассмотрим команду JP Nn (безусловный переход к адресу памяти указал,), как JP 1000h, если у меня есть основной цикл:
increment PC
read opcode
execute command
Тогда после того, как опкод JP считаны и команда выполняется (прочитайте 1000h из памяти и установите PC = 1000h), ПК получает прирост и становится 1001h, что приводит к плохой эмуляции.
tl; dr Как вы эмулируете прыжки в эмуляторах, так что значение ПК остается верным, если у процессора есть петли, которые увеличивают число ПК?
Вы посмотрели другие эмуляторы, чтобы увидеть различные подходы? –