繁体   English   中英

如何在 RISC-V 程序集中使用数组

[英]How to use an array in RISC-V Assembly

我正在学习 RISC-V 汇编,我需要将数组用于我正在解决的练习; 问题是我正在使用的模拟器( RARS )给了我一个错误:
Error in /home/username/file_name line 8: Runtime exception at 0x00400010: address out of range 0x000003e8.

这是我到目前为止编写的代码:

.data
arr: .word 1000
e0: .word 5

.text
lw t1, arr # load arr into t1
lw t2, e0 # Load e0 value into t2
sw t2, 0(t1) # save t2 value into arr[0]

我在做什么错?

指令sw t2, 0(t1)将寄存器t2的内容存入寄存器t1提供的内存地址中。 但是, t1不包含与标签arr对应的地址——存储值1000的地址——因为t1是由指令lw t1, arr初始化的,这会将与arr对应的地址的内容加载到t1 ,即,它将值1000加载到t1

相反,将lw t1, arr替换为la t1, arr ,这arr表示的地址加载到t1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM