fst tword [mem]
在nasm下生成编译错误(生成“错误:操作码和操作数的无效组合”)。
fst qword [mem]
被nasm接受。
fstp tword [mem]
和fstp qword [mem]
都被nasm接受。
这是nasm中的错误吗?
答案 0 :(得分: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.
正如您所看到的,m80fp
没有tword
(即FST
)变种,但FSTP
有。{/ p>