我有一个问题:假设我的浮点单元堆栈如下:
ST0 = +1.5000000000000000e+0001 ST1 = +5.0000000000000000e+0000
ST2 = +2.5000000000000000e+0001 ST3 = +0.0000000000000000e+0000
ST4 = +0.0000000000000000e+0000 ST5 = +0.0000000000000000e+0000
ST6 = +0.0000000000000000e+0000 ST7 = +0.0000000000000000e+0000
执行此指令后:
fstp st(1)
我的预测是该单元会将 st(0) 发送到 st(1) (堆栈上的情况将是1.5;1.5;2.5;0 etc
)然后弹出堆栈的顶部,因此情况将是1.5;2.5;0 etc.
相反,我看到以下内容:
ST0 = +1.5000000000000000e+0001 ST1 = +2.5000000000000000e+0001
ST2 = +0.0000000000000000e+0000 ST3 = +0.0000000000000000e+0000
ST4 = +0.0000000000000000e+0000 ST5 = +0.0000000000000000e+0000
ST6 = +0.0000000000000000e+0000 ST7 = +1.5000000000000000e+0001
我的问题是,为什么st(7)
发生了变化,我怎样才能达到预期的结果。谢谢你的帮助!