Вам просто нужна инструкция x86 MOV
.
"M / o / Vfuscator (короткий 'o', звучит как" mobfuscator ") компилирует программы винструкции "mov" и только инструкции "mov". Арифметика, сравнения, переходы, вызовы функций и все остальное, что нужно программе, все выполняются с помощью операций mov; нет никакого самоизменяющегося кода, нет вычислений, инициируемых транспортом, и нетдругая форма обмана без движения. "
Если серьезно, то эти примитивы не будут реализовывать Лисп-машину.Машине нужны такие средства, как ввод / вывод и сборка мусора.Не говоря уже о механизме вызова функции!Хорошо, у вас есть семь примитивов, которые являются функциями.Как машина вызывает функцию?
Правильное понимание того, что делают эти примитивы возможными, состоит в том, что они представляют набор инструкций Универсальной машины Тьюринга .Поскольку эти инструкции - «Лиспи», намеканием языка (говорящим с Лиспом) мы хитро называем это «Лисп-машиной».«Универсальный» означает, что машина является программируемой: с помощью некоторых комбинированных инструкций, применяемых к универсальной машине Тьюринга, мы можем создать экземпляр любой машины Тьюринга.Но пока что все это чисто математическая конструкция.
Чтобы реально моделировать этот UTM - реализовать его физически, чтобы исследовать его на компьютере, нам нужна машина, которая предоставляет нам способ фактическивведите те формы, которые создают машины Тьюринга из комбинаций этих семи инструкций Lisp.И нам также нужна некоторая форма вывода;машина, чтобы, по крайней мере, сказать нам «да», «нет» или «подожди, я все еще работаю».
Другими словами, эти семь инструкций могут работать практически только так:если они размещены на более крупной машине, которая обеспечивает среду.
Также обратите внимание, что семь примитивов Грэма не имеют явной поддержки чисел, поэтому вам придется строить их из функций (техника «Церковные цифры»).Ни одна производственная реализация Lisp не делает такую безумную вещь.