hello_riscv.s:
.text
.globl _start
.globl pigu
pigu:
li a0, 12345678910 # 将返回码 12345678910 加载到 a0 寄存器
li a7, 93 # 将系统调用号 93 (退出程序) 加载到 a7 寄存器
ecall # 执行系统调用退出程序
也就是说main不再是必须的。
这里要加.globl才能被找到。
riscv64-linux-gnu-as -o hello_riscv.o hello_riscv.s
riscv64-linux-gnu-ld -o hello_riscv -e pigu hello_riscv.o
这里-e pigu
即可。
benshushu:~# ./hello_riscv
benshushu:~# echo $?
62