将 ARM 汇编转换为 RISC-V 汇编

问题描述 投票:0回答:1

我正在尝试重写这段代码。它非常适合 ARM 汇编,但我正在尝试用 RISC-V 汇编重写它。这是 ARM 代码:

.text
.global main

.equ ADD1, 0x40000000
.set ADD2, 0x40000004

main:
    ldr r1,=ADD1
    ldr r2,=ADD2
loop:
    ldr r0,[r1]
    str r0,[r2] 
    b loop      

.end

我最好的尝试是:

.global main

.data
ADD1: .word 0x40000000
ADD2: .word 0x40000004

.text
main:
    la  t0, ADD1 
    lw  a1, 0(t0)    
    la  t1, ADD2     
    sw  a1, 0(t1)    
    j main           

.end

但是当我尝试在 Vitis 中构建它时,出现以下错误:

../src/PROJ1.S:9: Error: register expected, but saw 't0,ADD'
../src/PROJ1.S:9: Error: register expected, but saw '0,ADD1'
../src/PROJ1.S:9: Fatal error: missing operand
make: *** [src/subdir.mk:23: src/PROJ1.o] Error 1

对于前两个错误,我似乎找不到任何帮助。我如何解决所有这些特定问题?

assembly mips riscv vitis
1个回答
0
投票

您使用的工具链对于该特定版本的 Assembly 来说不正确。

在 Vitis Classic 上:右键单击应用程序图标,进入 C/C++ 设置并将工具链更改为正确的汇编语言。

© www.soinside.com 2019 - 2024. All rights reserved.