2

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

ここで何かを短縮する指示はありますか?

4

1 に答える 1