• All you need is mov

    From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Sun Aug 9 14:55:07 2026
    From Newsgroup: comp.arch

    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Terje Mathisen@terje.mathisen@tmsw.no to comp.arch on Mon Aug 10 13:51:19 2026
    From Newsgroup: comp.arch

    Thomas Koenig wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    Any MOVE is Turing Complete, IFF said MOVE has sufficient side-effects!

    Remember the Weitek FPU? All the instructions were memory-mapped onto a
    range of memory addresses, so that the memory source/destination was the opcode.

    Terje
    --
    - <Terje.Mathisen at tmsw.no>
    "almost all programming can be viewed as an exercise in caching"
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From David Brown@david.brown@hesbynett.no to comp.arch on Mon Aug 10 16:04:27 2026
    From Newsgroup: comp.arch

    On 10/08/2026 13:51, Terje Mathisen wrote:
    Thomas Koenig wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions.-a Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    Any MOVE is Turing Complete, IFF said MOVE has sufficient side-effects!

    Remember the Weitek FPU? All the instructions were memory-mapped onto a range of memory addresses, so that the memory source/destination was the opcode.


    There is a commercial microcontroller family called the MAXQ from Maxim
    that has only one instruction - a MOV. I don't think it was ever very popular, but you can still buy them (though they are marked "not
    recommended for new designs").

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Stephen Fuld@sfuld@alumni.cmu.edu.invalid to comp.arch on Mon Aug 10 08:14:54 2026
    From Newsgroup: comp.arch

    On 8/9/2026 7:55 AM, Thomas Koenig wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    This seems like another variant of a single instruction set computer.

    en.wikipedia.org/wiki/One-instruction_set_computer
    --
    - Stephen Fuld
    (e-mail address disguised to prevent spam)
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Bill Findlay@findlaybill@blueyonder.co.uk to comp.arch on Mon Aug 10 17:16:29 2026
    From Newsgroup: comp.arch

    On 10 Aug 2026, Terje Mathisen wrote
    (in article <115cdvo$33ljl$1@dont-email.me>):

    Thomas Koenig wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    Any MOVE is Turing Complete, IFF said MOVE has sufficient side-effects!

    Remember the Weitek FPU? All the instructions were memory-mapped onto a
    range of memory addresses, so that the memory source/destination was the opcode.

    Terje

    Turing's ACE design implemented the more complicated operations (e.g. *)
    by moving data to/from a pseudo address that veiled a functional unit,
    ca. 1946.
    --
    Bill Findlay

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From antispam@antispam@fricas.org (Waldek Hebisch) to comp.arch on Wed Aug 12 22:26:59 2026
    From Newsgroup: comp.arch

    Thomas Koenig <tkoenig@netcologne.de> wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    It is clear that sequence of mov-s plus a single goto is Turing
    complete. But how to get a loop without cheating and using only
    mov? In 16-bit real mode one can use assigment to code segment
    register or simply rely on address wraparound. But that is
    obsolete. Honest solution would use user level instrutions in
    64-bit mode, I do not see how one could get loop here using
    only mov.

    OTOH 32-bit ARM 'mov' can do assignment to program counter, but
    loads and stores to memory are not called 'mov'. However, little
    creative renaming of instructions give Turing complete 'mov'.
    --
    Waldek Hebisch
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From antispam@antispam@fricas.org (Waldek Hebisch) to comp.arch on Wed Aug 12 22:46:53 2026
    From Newsgroup: comp.arch

    Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:
    On 8/9/2026 7:55 AM, Thomas Koenig wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    This seems like another variant of a single instruction set computer.

    en.wikipedia.org/wiki/One-instruction_set_computer

    Only if one views 'mov' as a single instruction. But there are
    several different encodings doing somewhat different things. If one
    allows complex instructions, then IBM-360 is a single instruction
    computer, with single instruction being 'Execute'. Other
    instructions may be viewed just as alternative encodings of special
    cases of 'Execute', allowing better code density.
    --
    Waldek Hebisch
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From R Kym Horsell@kym@sdf.org to comp.arch on Wed Aug 12 23:47:53 2026
    From Newsgroup: comp.arch

    Thomas Koenig <tkoenig@netcologne.de> wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator


    I remember a joke paper a while back that asserted a simple
    1-instruction program was sufficient to test all the circuitry
    of a then-modern computer.

    It was a mov that moved itself backwards in memory and jumped on itself.

    The paper was mostly caveats. Turned out while the hardware
    would accept the instruction no assembler available had the syntax
    to describe it. Then it turned out no loader available could put
    the damn bit-pattern in the last word of memory as required for
    the test. And no known computer had a front panel that allowed you
    to start a program on the last word of memory.

    Other than that it was a great idea. :)

    Yeah. PDP-11.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Lawrence =?iso-8859-13?q?D=FFOliveiro?=@ldo@nz.invalid to comp.arch on Wed Aug 12 23:57:30 2026
    From Newsgroup: comp.arch

    On Wed, 12 Aug 2026 23:47:53 -0000 (UTC), R Kym Horsell wrote:

    The paper was mostly caveats. Turned out while the hardware would
    accept the instruction no assembler available had the syntax to
    describe it.

    The other caveats may make sense, but that one doesnrCOt. Where was
    there an assembler that *didnrCOt* allow the insertion of arbitrary byte/word/whatever values in the instruction stream?
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Thu Aug 13 05:41:58 2026
    From Newsgroup: comp.arch

    Waldek Hebisch <antispam@fricas.org> schrieb:
    Thomas Koenig <tkoenig@netcologne.de> wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    It is clear that sequence of mov-s plus a single goto is Turing
    complete. But how to get a loop without cheating and using only
    mov?

    Page faults. I did write "twisted mind" above...
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From MitchAlsup@user5857@newsgrouper.org.invalid to comp.arch on Thu Aug 13 17:52:20 2026
    From Newsgroup: comp.arch


    antispam@fricas.org (Waldek Hebisch) posted:

    Thomas Koenig <tkoenig@netcologne.de> wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    It is clear that sequence of mov-s plus a single goto is Turing
    complete. But how to get a loop without cheating and using only
    mov? In 16-bit real mode one can use assigment to code segment
    register or simply rely on address wraparound. But that is
    obsolete. Honest solution would use user level instrutions in
    64-bit mode, I do not see how one could get loop here using
    only mov.

    MOV IP,#top-of-loop

    OTOH 32-bit ARM 'mov' can do assignment to program counter, but
    loads and stores to memory are not called 'mov'. However, little
    creative renaming of instructions give Turing complete 'mov'.

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Thomas Koenig@tkoenig@netcologne.de to comp.arch on Thu Aug 13 18:38:22 2026
    From Newsgroup: comp.arch

    MitchAlsup <user5857@newsgrouper.org.invalid> schrieb:

    antispam@fricas.org (Waldek Hebisch) posted:

    Thomas Koenig <tkoenig@netcologne.de> wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    It is clear that sequence of mov-s plus a single goto is Turing
    complete. But how to get a loop without cheating and using only
    mov? In 16-bit real mode one can use assigment to code segment
    register or simply rely on address wraparound. But that is
    obsolete. Honest solution would use user level instrutions in
    64-bit mode, I do not see how one could get loop here using
    only mov.

    MOV IP,#top-of-loop

    That instruction is not required by the MOV-only compiler (and it
    is not called mov in x86 parlance).

    It uses page faults on invalid addresses instead.
    --
    This USENET posting was made without artificial intelligence,
    artificial impertinence, artificial arrogance, artificial stupidity,
    artificial flavorings or artificial colorants.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Anthk GM@anthk@disroot.org to comp.arch on Sat Aug 15 22:29:58 2026
    From Newsgroup: comp.arch

    On 2026-08-10, Stephen Fuld <sfuld@alumni.cmu.edu.invalid> wrote:
    On 8/9/2026 7:55 AM, Thomas Koenig wrote:
    All you need is mov.
    All you need is mov.
    All you need is mov, mov.
    Mov is all you need.

    Some more thought will have to go into rewriting the lyrics
    of "All You Need Is Love" completely.

    So somebody proved that mov on x86 is Turing-complete, and the
    same guy who put up the assembly hall of shame wrote a compiler
    which translates C into only mov instructions. Some people have
    a twisted mind... https://github.com/xoreaxeaxeax/movfuscator

    This seems like another variant of a single instruction set computer.

    en.wikipedia.org/wiki/One-instruction_set_computer


    I was about to post about Subleq right now...
    --- Synchronet 3.22a-Linux NewsLink 1.2