Wyvern-2> Сергей не спорь - не позорься Я программер-любитель, а ты вообще собственно ни ухом ни рылом в системном програмированнии
Ник, написание эммуляторов не есть системное программирование.
Так продемонстрируй. 10 не будет, даже если ты будешь эммулировать на той же аппаратуре. Загрузку программы и передачу управления на неё не рассматриваем за эммуляцию.
Абсолютно необходимые команды:
1. Выборка кода команды. Одна команда с автоинкрементом при условии, что КОП одинакового размера. Скажем, для х86 это не правда. Без автоинкремента — две.
2. Её дешифрация. Самый быстрый через косвенную инексацию в массиве. это переход-вызов по адресу. 1 команда.
3. Выборка операнда для операндной команды. Одна команда.
4. Дешифрация — тут уже не ободёшься массивом — длина и тип разные, регистры, адресация. Минимум 8 команд.
5. Выборка второго операнда. Одна команда.
6. Дешифрация. 8 команд.
7. Эммуляция — минимум 2 команды (эммуляция и возврат). Это считаем, что всё передается на регистрах. Если регистров не хватает — увы, надо делать stack frame — это ещё несколько команд. В том числе и на доступ к параметрам. Эммуляция идёт через память. Если через регистры,
Итого.
Для 0 операндной команды — 4.
Для 1 операндной команды — 13.
Для 2 операндной команды — 22.
Wyvern-2> Здесь на А_Базе много людей из этой сферы - пусть хоть один скажет, что можно сэмулировать одну систему команд под другой при разнице в производительности меньше, чем на порядок...
На порядок — никак. На три — нужно постараться. Обычно лежит в районе 20-120.