вот это условие проверить проблематично. Как узнать в новом M1 операция зависит от префикса или нет?
Для этого нужно выполнить цикл, чтобы процессор полноценно сделал выборку опкода, тогда станет понятно зависит или нет.
Но когда новый цикл M1 будет выполнен, то может оказаться что выбран новый опкод #DD/#FD, и требуется еще один цикл М1, чтобы проверить новое состояние. И так до бесконечности.
Грубо говоря проблема в том, что читать память для проверки что будет выполнять процессор в следующем цикле - это ошибочный подход, т.к. предсказать какой опкод будет выбран нереально. Можно только сделать предположение, что опкод прочитается из текущей страницы памяти, но это далеко не факт, т.к. во время выборки опкода какое-то эмулируемое устройсво может переключить страницу памяти или отключить память и само выдать опкод на шину данных во время выборки опкода.
И даже если удалось правильно предсказать, какой прочитается опкод в следующем M1 цикле, пользователь после загрузки снэпшота может поменять память, сделав какой-то poke или загрузив патч для кода и тогда окажется что опкод который прогнозировался до сохранения опкода окажется неправильным и это приведет к неправильной интерпретации "некорретности" префикса.





Ответить с цитированием