我有一个程序,只要用户输入Y,我就会循环播放(是的)。然后用户输入long float类型的数据。我还有一个计数器,r14,每次输入长浮点数时都会计数。循环结束后,我希望计算平均值。如果我这样做:
fld tword [r14]
并显示它,生病得到分段错误。我也尝试过其他一些东西,但它总是给我一个段。尝试分割和显示后出现故障。我认为问题是r14是一个int,我不能把它放到FPU堆栈中那样和除。但我无法想出另一种方式。
有人可以帮忙吗?提前致谢。答案 0 :(得分:0)
FPU指令从存储器或FPU寄存器获取其参数,但不从通用CPU寄存器获取。
fld tword [r14]
从tword
中包含的地址的内存位置获取r14
,并将其推送到FPU堆栈顶部。
如果r14
未指向可以读取10字节浮点值的内存位置,则会出现分段错误。
因此,将浮动内容存储在内存中并使用fld
从那里读取。