我有一个问题,下面这段代码。 它是在IA-32体系结构GAS ASM语法。 它产生算术异常,后fsqrt
指令。 SetDouble
是int
值的类型0x0200
和input
是浮点数。 我与编写本-m32
使用gcc标志。 在哪里可以我犯过错误的人点。
pushl %ebp
movl %esp,%ebp
finit
fldcw SetDouble
fld input
fld input
fmulp
fld1
faddp
fsqrt
fld1
fxch
fsubp
fstp output
mov %ebp,%esp
pop %ebp