Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.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
Assembly 从内存空间加载浮点值的正确方法是什么?为什么不是';这段代码不会产生预期的结果吗?_Assembly_Mips_Mars Simulator - Fatal编程技术网

Assembly 从内存空间加载浮点值的正确方法是什么?为什么不是';这段代码不会产生预期的结果吗?

Assembly 从内存空间加载浮点值的正确方法是什么?为什么不是';这段代码不会产生预期的结果吗?,assembly,mips,mars-simulator,Assembly,Mips,Mars Simulator,我想加载存储在内存位置上的浮点。在这种情况下,它是aSpace、bSpace和one。例如,如果我在请求用户输入之前加载一个,它将正确加载,即“1.0”。尽管如此,如果我在用户输入后加载它,它将作为用户在最后一次输入时的输入加载。事实上,每个加载的浮点都会这样做。我做错了什么 我试着改变操作顺序,一行一行地运行,几乎所有的事情。我无法理解这些结果 .data aSpace: .float bSpace: .float one: .float

我想加载存储在内存位置上的浮点。在这种情况下,它是aSpace、bSpace和one。例如,如果我在请求用户输入之前加载一个,它将正确加载,即“1.0”。尽管如此,如果我在用户输入后加载它,它将作为用户在最后一次输入时的输入加载。事实上,每个加载的浮点都会这样做。我做错了什么

我试着改变操作顺序,一行一行地运行,几乎所有的事情。我无法理解这些结果

.data
    aSpace:     .float
    bSpace:     .float
    one:        .float      1

.text
    la $a0, aSpace
    jal floatInput

    la $a0, bSpace
    jal floatInput

    lwc1 $f12, one
    jal floatPrint
    lwc1 $f4, aSpace
    lwc1 $f6, bSpace
    jal floatPrint
    j exit

##################################################

return:
    jr $ra


floatPrint:
    li, $v0, 2
    syscall
    j return

floatInput:
    li $v0, 6
    syscall
    swc1 $f0, ($a0)
    syscall
    j return

exit:
li, $v0, 10
syscall

我希望在“一”中加载值,但我加载用户最后输入的内容。

正如Jester和Peter Cordes所说,我的问题是aSpace:.float,而不是aSpace:.float 0.0。修正了

正如Jester和Peter Cordes所说,我的问题是使用aSpace:.float,而不是aSpace:.float 0.0。已修复

您需要初始化该值,否则将不会分配任何空间,并且所有三个标签都指向同一位置。您可以使用调试器或符号列表验证。PS:我认为这是汇编程序中的一个bug。就像杰斯特所说的,<代码> .FULLUT/CONT>空参数列表组合为零字节,没有浮点。也许您想在BSS中保留4个字节?您需要初始化该值,否则不会分配空间,并且所有三个标签都指向同一位置。您可以使用调试器或符号列表验证。PS:我认为这是汇编程序中的一个bug。就像杰斯特所说的,<代码> .FULLUT/CONT>空参数列表组合为零字节,没有浮点。也许你想在BSS中保留4个字节?