我正在尝试重写这段代码。它非常适合 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 来说不正确。
在 Vitis Classic 上:右键单击应用程序图标,进入 C/C++ 设置并将工具链更改为正确的汇编语言。