Linux 用の「Hello World」プログラムのコンパイル済み AArch64 アセンブリ ファイルに取り組んでいます。
私はすでに 504 バイトから 124 バイトに短縮することに成功しています。私が考えることができる唯一の「最適化」は、1 つの命令で 2 つ以上のタスクを実行するいくつかの命令を見つけることです。
現在、ファイル内のマシン コード (asm で表される) は次のとおりです。
mov x8, 64 // __NR_write
adr x1, hello //the string, I know the exact address
mov x2, 10 //string length (actually only "HelloWorld")
j:
mov x0, 0 // write to stdin happens to work
svc 0
mov x8, 93 // __NR_exit
b j //the branching saves me one instruction to exit with status = 0
ここで何かを短縮する指示はありますか?