Assembly 用MIPS汇编求3x3矩阵的逆

Assembly 用MIPS汇编求3x3矩阵的逆,assembly,mips,mars-simulator,Assembly,Mips,Mars Simulator,编辑:删除了Pastebin链接,因为其中包含标识信息@杰斯特解决了这个问题 我正在MIPS汇编中编写一个程序来求3x3矩阵的逆。然而,只有得到的逆矩阵的前两个元素保持正确的值,而其余元素不知何故偏离了标记 我正在使用火星模拟器,虽然我在网上试过一些。他们都给了我相同(错误)的结果。所以我相信是我的代码出了问题,但它在逻辑上似乎是正确的 以下是“问题领域”$s0存储原始矩阵,$f0存储行列式,$s1应存储矩阵的逆矩阵。$s0和$s1都是使用系统调用分配的。此处提供的其余代码(pastebin):

编辑:删除了Pastebin链接,因为其中包含标识信息@杰斯特解决了这个问题

我正在MIPS汇编中编写一个程序来求3x3矩阵的逆。然而,只有得到的逆矩阵的前两个元素保持正确的值,而其余元素不知何故偏离了标记

我正在使用火星模拟器,虽然我在网上试过一些。他们都给了我相同(错误)的结果。所以我相信是我的代码出了问题,但它在逻辑上似乎是正确的

以下是“问题领域”$s0存储原始矩阵,$f0存储行列式,$s1应存储矩阵的逆矩阵。$s0和$s1都是使用系统调用分配的。此处提供的其余代码(pastebin):(已删除)

例如,对于矩阵:

3.0 6.0 2.0

4.0 7.0 2.0

5.0 6.0 3.0
预期的反向为:

-1.28571 0.857143 0.285714

0.285714 0.142857 -0.285714

1.57143 -1.71429 0.428571
但是,我的代码给出了以下结果:

-1.2857143 0.85714287 -1.4693878

0.4985423 -1.1432736 -0.26239064

-0.14894302 -0.9172964 -1.4693878

使用您的模拟器单步执行代码,并找出出错的地方。你知道每一条指令应该做什么,验证它们。你至少可以展示你试图实现的公式。顺便说一下,syscall#9分配字节,而不是字。所以你应该通过9*4。也许这就是你问题的原因,也许不是。是的,修复两个分配对我来说很好。
-1.2857143 0.85714287 -1.4693878

0.4985423 -1.1432736 -0.26239064

-0.14894302 -0.9172964 -1.4693878