我正在研究迷你编译器。我想将一个浮点数存储到内存中,但我想以下列方式存储它:
首先,我想为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。
任何人都能帮助我吗?