У меня проблемы с MIPS. Я могу хранить и записывать поплавки в стек без каких-либо проблем. Но если я попытаюсь сделать то же самое с двойным, появится следующее сообщение:
Error in line 12: Runtime exception at 0x0040001c: address not aligned on doubleword boundary 0x7fffeff4
#Line12:#
ldc1 $f12, 0($sp) # Pop from stack
Это мой код
.data
test: .double 22.75
.text
.globl main
main:
l.d $f4, test # Value to $f4
mfc1 $t0,$f4 # $f4 to $t0
addi $sp, $sp, -8 # Decrease SP
sw $t0, 4($sp) # Store first word
mfc1 $t0,$f5 # $f5 to $t0
sw $t0, 0($sp) # Store second word
ldc1 $f12, 0($sp) # Pop from stack
li $v0, 3 # Call API StdOut
syscall # Print result
li $v0, 10 # Call API
syscall # End of program
Я действительно не знаю, что делать. Я использую неправильную функцию для восстановления двойного значения?