簡體   English   中英

我需要將 C(或更好)轉換為 https://venus.cs61c.org/ 將接受的 RISC-V

[英]I need to convert C (or better) into RISC-V that https://venus.cs61c.org/ will accept

我已經嘗試過https://godbolt.org/以及到 RISC-V 的所有不同轉換,但它仍然出錯。

例如我的 C 代碼:

#include <stdio.h>

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

轉換為:

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"

它在“lui”處給出錯誤,因為它期望 2 arguments 但收到 3。我嘗試通過 using.data 部分和 .text 部分組織代碼,但仍然沒有工作。

使用la $a0, .L.str而不是 2 指令 %hi,%lo 組合。

另外,使用.string而不是.asciz

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM