I have a question: let's say my stack of the Floating-point unit is as follows:
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
After doing this instruction:
fstp st(1)
My prediction it that the unit would send the st(0) to st(1) (the situation on the stack would be 1.5;1.5;2.5;0 etc
) and then pop the top of the stack so the stiuation would be 1.5;2.5;0 etc.
Instead, I see the following:
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
My question is, why has st(7)
changed and how can I achieve my expected results. Thanks for any help!