【发布时间】:2018-04-25 07:04:15
【问题描述】:
fst tword [mem]在nasm下生成编译错误(生成“错误:操作码和操作数的无效组合”)。
fst qword [mem] 被 nasm 接受。
fstp tword [mem] 和 fstp qword [mem] 都被 nasm 接受。
这是 nasm 中的错误吗?
【问题讨论】:
fst tword [mem]在nasm下生成编译错误(生成“错误:操作码和操作数的无效组合”)。
fst qword [mem] 被 nasm 接受。
fstp tword [mem] 和 fstp qword [mem] 都被 nasm 接受。
这是 nasm 中的错误吗?
【问题讨论】:
来自英特尔的手册:
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 有变体。
【讨论】: