我需要将C(或更好的)转换成RISC-Vhttps://venus.cs61c.org/ 将接受

我需要将C(或更好的)转换成RISC-Vhttps://venus.cs61c.org/ 将接受,c,riscv,C,Riscv,我尝试了所有不同的RISC-V转换,但仍然有错误 例如,我的C代码: #include <stdio.h> int main(){ printf("test"); return 0; } 它在“lui”处给出错误,因为它预期2个参数,但收到3个。我尝试使用.data部分和.text部分来组织代码,但仍然没有效果。使用la$a0、.L.str而不是您的2指令%hi,%lo组合 另外,请使用.string而不是解决该问题的.a

我尝试了所有不同的RISC-V转换,但仍然有错误

例如,我的C代码:

#include <stdio.h>

int main(){
    printf("test");
    
    
    return 0; 
}

它在“lui”处给出错误,因为它预期2个参数,但收到3个。我尝试使用.data部分和.text部分来组织代码,但仍然没有效果。

使用
la$a0、.L.str
而不是您的2指令%hi,%lo组合


另外,请使用
.string
而不是解决该问题的
.asciz

。另一个问题是我从#include使用的任何函数似乎都没有被转换。所以我必须复制printf的源代码并将其显式粘贴到转换器中?
main:                                   # @main
        addi    sp, sp, -16
        sw      ra, 12(sp)                      # 4-byte Folded Spill
        sw      s0, 8(sp)                       # 4-byte Folded Spill
        addi    s0, sp, 16
        mv      a0, zero
        sw      a0, -16(s0)                     # 4-byte Folded Spill
        sw      a0, -12(s0)
        lui     a0, %hi(.L.str)
        addi    a0, a0, %lo(.L.str)
        call    printf
        lw      a0, -16(s0)                     # 4-byte Folded Reload
        lw      s0, 8(sp)                       # 4-byte Folded Reload
        lw      ra, 12(sp)                      # 4-byte Folded Reload
        addi    sp, sp, 16
        ret
.L.str:
        .asciz  "test"