# AArch64 machine language Linux, <s>48</s> 45 bytes
     0: d2800020 mov x0, #0x1       ; stdout is fd=1
     4: d28001a2 mov x2, #0xd       ; length of string
     8: 94000001 bl  c              ; put addr of pc to x30
     c: 910053c1 add x1, x30, #0x14 ; put addr of string to x1
    10: d2800808 mov x8, #0x40      ; select write() syscall
    14: d4000001 svc #0x0           ; syscall
    18: d2800bc8 mov x8, #0x5e      ; select exit() syscall
    1c: d4000001 svc #0x0           ; syscall
    20: 6c6c6548 "Hello, World!"
        77202c6f
        646c726f
              21

To try it out on an AArch64 Linux machine or Android device with Termux, compile and run the following C program. You may need to pass the `-zexecstack` argument to the compiler.

    const char main[]=" \0\x80\xd2\xa2\1\x80\xd2\1\0\0\x94\xc1\x53\0\x91\b\b\x80\xd2\1\0\0\xd4\xc8\v\x80\xd2\1\0\0\xd4Hello, World!"