MIPS FPU 编程 - 操作数类型不正确
MIPS FPU programming - operand is of incorrect type
使用 FPU 协处理器进行 MIPS 编码。我想构造一个 for 循环并重复显示字符串。
但是错误消息显示如下:
D:\Users\Administrator\Desktop\mips2.asm 第 9 行第 14 列中的错误:“end”:操作数的类型不正确。
from
和end
都是双浮点变量。我在 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”是一个数据标签,不能用作那里的操作数。
使用 FPU 协处理器进行 MIPS 编码。我想构造一个 for 循环并重复显示字符串。 但是错误消息显示如下: D:\Users\Administrator\Desktop\mips2.asm 第 9 行第 14 列中的错误:“end”:操作数的类型不正确。
from
和end
都是双浮点变量。我在 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”是一个数据标签,不能用作那里的操作数。