Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个程序,只要用户输入 Y(是),我就会循环。然后用户输入 long float 类型的数据。我还有一个计数器,r14,每次输入长浮点数时都会计数。循环结束后,我希望计算平均值。如果我这样做:
fld tword [r14]
并显示它,我会得到一个分段错误。我也尝试了很多其他的东西,但它总是给我一个段。尝试分割显示后出现故障。我认为问题在于 r14 是一个 int,我不能像那样将它放入 FPU 堆栈并进行划分。但我想不出另一种方法。
有人可以帮忙吗?提前致谢。
FPU 指令从内存或 FPU 寄存器中获取参数,而不是从通用 CPU 寄存器中获取参数。
fld tword [r14]tword从包含在的地址的内存位置获取 ar14并将其推送到 FPU 堆栈的顶部。
tword
r14
如果r14不指向可以读取 10 字节浮点值的内存位置,则会出现分段错误。
因此,将您的浮点数存储在内存中并使用fld.
fld