Я разработал полный эмулятор для машины MIX (воображаемый компьютер Кнута из TAOCP) в Perl несколько лет назад. Исходный код хорошо документирован, а симулятор работает, поэтому можно попрактиковаться с примерами. Это было не слишком сложно, и я не помню, чтобы мне понадобились какие-то специальные рамки. Регистры машины - это просто переменные состояния в симуляторе, а остальные интерпретируют инструкции и изменяют это внутреннее состояние.
У вас есть более конкретные вопросы? Возможно, тогда вам будет легче указать правильное направление.