M/o/Vfuscator CPU


I had a project idea for a CPU. I found this paper by Stephen Dolan called mov is Turing-complete about how x86 MOV is Turing-complete. At the end, it says,

Removing all but the mov instruction from future iterations of
the x86 architecture would have many advantages: the instruc-
tion format would be greatly simplified, the expensive decode unit
would become much cheaper, and silicon currently used for com-
plex functional units could be repurposed as even more cache. As
long as someone else implements the compiler.

And the compiler has already been written, by Christopher Domas, it’s known as the M/o/Vfuscator. https://github.com/xoreaxeaxeax/movfuscator is the link for it. However, as far as my knowledge, Intel has not removed everything except mov. So, I had an idea: create (irl or in Minecraft) a CPU that only uses x86 mov. Of course, MOV does a lot of things. So, if you get tired of that, Christopher Domas has created another thing: GitHub - xoreaxeaxeax/reductio: An exploration of code homeomorphism

Reductio is another project that Christopher Domas made, which reduces all code to just a few lines of assembly. There’s a slight issue though to make it in Minecraft: it requires a lot of RAM. So, we need the scratchpad RAM (I’ll give an example why you need redundant RAM), the RAM itself, and ROM for the instructions.

For instance, to make not a jump, but “ignore” if not equal, we can do this:

mov eax, 7
mov ebx, 7
mov [eax], 0
mov [ebx], 100
mov ecx, [eax]
mov edx, [ecx]

This will put a value from address 100 into edx, rather than address 0 if the numbers were not equal.

TL;DR: An idea I had for an irl or Minecraft CPU is based on the M/o/Vfuscator or reductio. Thanks!

1 Like