我试图在Linux中使用as和gcc编译RISC V汇编。
模拟器是TinyEmu.busybox拥有所有实用程序--TinyEmu
镜像为diskimage-linux-riscv- 2018-09-23 .
我可以编译该程序,但是控制台上没有输出内容。.section .text
.globl _start
_start:
li a0, 0 # stdout
1: auipc a1, %pcrel_hi(msg) # load msg(hi)
addi a1, a1, %pcrel_lo(1b) # load msg(lo)
li a2, 12 # length
li a3, 0
li a7, 64 # _NR_sys_write
ecall # system call
li a0, 0
li a1, 0
li a2, 0
li a3, 0
li a7, 93 # _NR_sys_exit
ecall # system call
loop:
j loop
.section .rodata
msg:
.string"Hello Worldn"
我已经尝试了as和gcc调用的几种组合:as -o hello.o hello.s
ld as -o hello.o hello.s
这将创建一个二进制文件,但是没有控制台输出。