Вам просто потрібна MOV
інструкція x86 .
"M / o / Vfuscator (коротке" o ", звучить як" mobfuscator ") компілює програми в інструкції" mov "і лише інструкції" mov ". Арифметика, порівняння, переходи, виклики функцій та все інше, що потрібно програмі все виконується за допомогою операцій mov; немає самомодифікуючого коду, немає обчислень, викликаних транспортом, і жодної іншої форми обману без руху. "
Хоча серйозно, ці примітиви не реалізують Lisp Machine. Машині потрібні такі засоби, як введення / виведення та збір сміття. Не кажучи вже про механізм виклику функції! Гаразд, у вас є сім примітивів, які є функціями. Як машина викликає функцію?
Правильне розуміння того, що ці примітиви роблять можливим, полягає в тому, що вони розкривають набір інструкцій універсальної машини Тьюрінга . Оскільки ці вказівки є "Ліспі", за допомогою ковзання мови (розмовляючи Лиспа) ми підступно називаємо це "Машиною Ліспа". "Універсальний" означає, що машина програмована: за допомогою деяких комбінованих інструкцій, що застосовуються до Універсальної машини Тьюрінга, ми можемо створити екземпляр будь-якої машини Тьюрінга. Але поки що все це суто математична конструкція.
Щоб насправді змоделювати цю UTM - реалізувати її фізично, щоб дослідити на комп’ютері, нам потрібна машина, яка забезпечує нам спосіб фактичного введення тих форм, які створюють машини Тьюрінга з комбінацій цих семи інструкцій Ліспа. І нам також потрібна якась форма виводу; машина, як мінімум, зможе сказати нам "так", "ні" або "Зачекай, я все ще працюю".
Іншими словами, єдиний спосіб, яким ці сім інструкцій можуть практично працювати, - це якщо вони розміщені у більшій машині, яка забезпечує середовище.
Також зауважте, що сім примітивів hamрема не мають явної підтримки чисел, тому вам доведеться будувати їх з функцій (техніка "церковні цифри"). Жодна реалізація Lisp не робить такого шаленого.