指令在汇编语言中是否有意义?

问题描述 投票:0回答:1
faddp st(0), st(1)

甚至无法编码在机器代码中。 您是对的,这没什么用(除了提高FP例外外),这就是为什么8087的建筑师不包括OPCODE的原因。 有寄存器源的

3形式的opcodes:

assembly x86 instruction-set x87
1个回答
3
投票

fadd

D8 C0+i

FADD ST(0), ST(i)
DC C0+i

  • FADD ST(i), ST(0)
    但没有opcode
    DE C0+i
  • So
    FADDP ST(i), ST(0)
    是可编码的,但使用
    faddp st(0), st(i)
  • opcode,
  • destination
    可以是任何寄存器,包括
    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)


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.