faddp st(0), st(1)
甚至无法编码在机器代码中。 您是对的,这没什么用(除了提高FP例外外),这就是为什么8087的建筑师不包括OPCODE的原因。 有寄存器源的
3形式的opcodes:
fadd
D8 C0+i
FADD ST(0), ST(i)
DC C0+i
FADD ST(i), ST(0)
但没有opcodeDE C0+i
So
FADDP ST(i), ST(0)
是可编码的,但使用
faddp st(0), st(i)
可以是任何寄存器,包括
faddp st(0), st(0)
的无用情况,但源被固定为
faddp st(i), st(0)
st(0)
https://masm32.com/masmcode/rayfil/tutorial/fpuchap4.htm#fstp
(有关指导费用,请参见Https://agner.org/optimize/。https://uops.info/
没有测试旧版X87说明,尽管它确实有一些IACA数据。)
如果您真的想添加一个数字并丢弃结果,例如要在使用整数位操作的数学库函数返回之前提高FP例外
st(0)