AArch64 machine language Linux, 48 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!"