Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何在MIPS中的数组中存储序列?_Arrays_Assembly_Mips - Fatal编程技术网

Arrays 如何在MIPS中的数组中存储序列?

Arrays 如何在MIPS中的数组中存储序列?,arrays,assembly,mips,Arrays,Assembly,Mips,我有这个家庭作业问题 编写一个产生以下序列的程序;1、2、2、4、8、32、256…并将其存储在数组中,具体取决于用户选择的术语数量。序列中的每个元素都可以通过将其前面的两个元素相乘来计算。换句话说,通过等式Sn=Sn-1×Sn-2来计算第n个序列号Sn 我试过了,但没有成功 我的代码 ^ ^ MARS错误消息: 第26行错误:0x00400030处的运行时异常: 存储地址在字边界0x1001002d上未对齐 错误消息告诉您,您正试图使用以下指令中的非法(非字对齐)地址访问内存: sw $t0,

我有这个家庭作业问题

编写一个产生以下序列的程序;1、2、2、4、8、32、256…并将其存储在数组中,具体取决于用户选择的术语数量。序列中的每个元素都可以通过将其前面的两个元素相乘来计算。换句话说,通过等式Sn=Sn-1×Sn-2来计算第n个序列号Sn

我试过了,但没有成功

我的代码

^ ^

MARS错误消息:

第26行错误:0x00400030处的运行时异常: 存储地址在字边界0x1001002d上未对齐

错误消息告诉您,您正试图使用以下指令中的非法(非字对齐)地址访问内存:

sw $t0,0($s1)
当您遇到这样的问题时,需要使用调试器。首先,在引发异常的指令处设置断点

运行该程序,当它在断点处停止时,检查您试图访问的地址(以$s1为单位)。您将看到它是
268501037
0x1001002d
,并且由于它以7结尾,所以它不是单词对齐的

$s1
具有正确的数组地址,但我认为您假设在数据段中创建数组时,它将从字对齐的地址开始。事实并非如此。要解决此问题,您需要删除数据

    .data   # Data declaration section
str1: .ascii "Please enter the number of terms to produce: "
    .align 2
arr: .space 40

您做了哪些调试工作?你认为问题出在哪里?@MichaelPetrotta我使用堆栈保存结果,然后在数组中排序..但我的代码没有运行。。最后,编码程序_uufor loop=>A[i]=A[i-1]*A[i-2]我认为问题在于如何从数组中加载字和排序字指令
    .data   # Data declaration section
str1: .ascii "Please enter the number of terms to produce: "
    .align 2
arr: .space 40