GNU GCC + QEMU + GDB
安装ARM交叉编译器:
sudo apt install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
安装QEMU环境:
sudo apt install qemu qemu-user qemu-user-static
安装gdb环境
sudo apt install gdb-multiarch
编写汇编代码:hello_world.s
.section .data
msg: .asciz "Hello, AArch64!\n"
.section .text
.global _start
_start:
// Write the string to stdout
mov x0, 1 // File descriptor (stdout)
ldr x1, =msg // Load the address of the string
mov x2, 16 // Length of the string
mov x8, 64 // syscall: write
svc 0 // Make syscall
// Exit the program
mov x8, 93 // syscall: exit
mov x0, 0 // Exit status
svc 0 // Make syscall
编写Makefile文件
hello_world:hello_world.o
aarch64-linux-gnu-ld -o hello_world hello_world.o
hello_world.o:hello_world.s
aarch64-linux-gnu-as -o hello_world.o hello_world.s
clean:
rm hello_world.o
执行hello_world程序
hello_world代码的程序解释