【问题标题】:nasm rejects fst tword [mem] --- bug?nasm 拒绝 fst tword [mem] --- 错误?
【发布时间】:2018-04-25 07:04:15
【问题描述】:

fst tword [mem]在nasm下生成编译错误(生成“错误:操作码和操作数的无效组合”)。

fst qword [mem] 被 nasm 接受。

fstp tword [mem]fstp qword [mem] 都被 nasm 接受。

这是 nasm 中的错误吗?

【问题讨论】:

    标签: nasm x87


    【解决方案1】:

    来自英特尔的手册:

    FST/FSTP—Store Floating Point Value
    
    Opcode   Instruction  64-Bit   Compat/Leg  Description
                          Mode     Mode
    ----------------------------------------------------------------------
    D9 /2    FST m32fp   Valid     Valid       Copy ST(0) to m32fp.
    DD /2    FST m64fp   Valid     Valid       Copy ST(0) to m64fp.
    DD D0+i  FST ST(i)   Valid     Valid       Copy ST(0) to ST(i).
    D9 /3    FSTP m32fp  Valid     Valid       Copy ST(0) to m32fp and pop register stack.
    DD /3    FSTP m64fp  Valid     Valid       Copy ST(0) to m64fp and pop register stack.
    DB /7    FSTP m80fp  Valid     Valid       Copy ST(0) to m80fp and pop register stack.
    DD D8+i  FSTP ST(i)  Valid     Valid       Copy ST(0) to ST(i) and pop register stack.
    

    如您所见,FST 没有m80fp(即tword)变体,但FSTP 有变体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-04
      • 2019-11-14
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2011-10-15
      • 2020-05-06
      • 1970-01-01
      相关资源
      最近更新 更多