# 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!"