装配存储浮动到内存

时间:2015-05-30 21:42:39

标签: assembly floating-point mips

我正在研究迷你编译器。我想将一个浮点数存储到内存中,但我想以下列方式存储它:

首先,我想为2个变量保留一个空格。

然后,我想把第二个放在第一个(这将在稍后给我信息,我将浮动存储在这个位置),我想把实际的浮点数放在第二个。

我也想为整数保留一个空格,第一个变量(标志)对于我的代码中的整数是4。

在某些情况下我似乎得到了错误(并非所有情况)。它说我在内存上访问不可读的地方。 这是我的代码:

ori $a2,$0,2
ori $v0,$0,9
syscall
addi $sp,$sp,-8
sw  $v0,0($sp)
ori $t2,$0,1
sw  $t2,4($v0)
ori $t2,$0,4
sw  $t2,0($v0)
ori $a2,$0,2
ori $v0,$0,9
syscall
addi $sp,$sp,-8
sw  $v0,0($sp)
li.s    $f2,1.2
s.s $f2,4($v0)
ori $t2,$0,2
sw  $t2,0($v0)

在这段代码中,我首先用标志4保存一个整数(1)。

然后,我正在用标志2保存一个浮点数(1.2)。

这种情况给出了一个例外,在其他一些情况下,它没有给出任何异常,但浮点数是四舍五入的。如果它是2.5,那么它存储为2.5000002。

任何人都能帮助我吗?

0 个答案:

没有答案