环境是先用QEMU装一个Ubuntu20.04,然后再按照《RISC-V体系结构编程与实践》安装benshushu
hello_riscv.s:
.text
.globl _start
_start:
li a0, 12345678910 # 将返回码 12345678910 加载到 a0 寄存器
li a7, 93 # 将系统调用号 93 (退出程序) 加载到 a7 寄存器
ecall # 执行系统调用退出程序
这个程序直接返回,什么也不做。
先生成.o,再生成可执行文件
riscv64-linux-gnu-as -o hello_riscv.o hello_riscv.s
riscv64-linux-gnu-ld -o hello_riscv hello_riscv.o
./hello_riscv
输出62,而不是12345678910,是因为返回码只认最低的一个字节。
3E就是62