如何在MIPS程序中的内存位置100(十进制)声明一个数组?
答案 0 :(得分:2)
spim
模拟器支持可选的data
指令参数,详细内容为here。
.data <addr>
以下数据项应存储在数据段中。如果存在可选参数
addr
,则从地址addr
开始存储项目。
因此,使用spim
,您可以将任何数据存储在确切的地址,只要它在用户数据段的范围内即可。在spim
中,保留范围为0x10000000 - 0x10040000
。
因此,例如,如果您想在地址0x10000030
存储数组,您可以写:
.data 0x10000030
list: .word 3, 0, 1, 2, 6, -2, 4, 9, 3, 7
但是,地址100
不在spim
模拟器用户数据段的可接受范围内(或者可能在任何其他情况下,因为它将成为第一页内存的一部分)。
我在.data 100
中尝试了一个spim
指令,只是为了看看当我尝试从中加载时它会做什么,答案是Memory address out of bounds
错误。