最近業務でAArch64なLinuxをずっと使っているけどアセンブリコードを書いたことはなかった.
なんとなく気が向いたのでいわゆるHello Worldコードをコーディングしてみた.
アセンブリを書いて,理解することはCPUアーキテクチャをソフトウェア側から意識することになる.
コード
.global _start _start: // Write system call to print 'Hello World' mov x0, 1 // File descriptor (stdout) ldr x1, =msg // Message address mov x2, 13 // Message length mov x8, 64 // Write syscall number svc 0 // Make syscall // Exit system call mov x8, 93 // Exit syscall number svc 0 // Make syscall .data msg: .ascii "Hello, world!\n"