MIPS FPU 编程 - 操作数类型不正确

MIPS FPU programming - operand is of incorrect type

使用 FPU 协处理器进行 MIPS 编码。我想构造一个 for 循环并重复显示字符串。 但是错误消息显示如下: D:\Users\Administrator\Desktop\mips2.asm 第 9 行第 14 列中的错误:“end”:操作数的类型不正确。

fromend都是双浮点变量。我在 MARS4.5 上编码。

.data
    from: .double 10.0
    end:  .double 100.0
    step: .double 20.0
    say: .asciiz "fooooo\n"
.text
    ldc1    $f0, from
loop:
    c.le.d  $f0, end
    bc1t exit
    # loopbody
    li $v0, 4
    la $a0, say
    syscall
    add.d   $f10, step
    j loop
exit:
    li $v0,10
    syscall

MIPS 是一个load/store architecture,这意味着数据存储器只能通过加载或存储指令访问。所有其他指令都需要寄存器操作数(或寄存器操作数和立即数,对于某些整数运算)。

Error in ... mips2.asm line 9 column 14: "end": operand is of incorrect type.

这里的compare指令需要两个浮点寄存器操作数,add指令需要三个浮点寄存器操作数。它告诉你“end”是一个数据标签,不能用作那里的操作数。