浮点寄存器ST的入栈简单问题

ucdosxp 2018-03-26 11:58:16
当ST0-ST7都有数据时,继续用fild继续向ST0人栈。
按书中所说,会将ST7的数据丢弃,并且ST0入栈成功。
但结果是,ST0入栈数据为bad -NAN FFFF C0000000 00000000,未入栈成功。为什么会这样
...全文
793 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2018-03-28
  • 打赏
  • 举报
回复
对程序设计完善性要求更严格了吧
  • 打赏
  • 举报
回复
早在387时代就是这样了(287不能确定),要模拟8087的举止,浮点寄存器堆满之后,可以ffree st(0), fincstp,再fld...
ucdosxp 2018-03-28
  • 打赏
  • 举报
回复
还是不明白为什么会这样
zara 2018-03-27
  • 打赏
  • 举报
回复
没怎么写过浮点的,刚才试了下,发现在dosbox 里确实是你说的继续循环入栈;在原机环境下,无论 dos16 或 win32 的都是你说的出错的情形。
这样的话,比较可能是早期是设计为循环入栈的,不管原来状态;后来,就会检测目的栈单元的状态了,如果非空,就会栈溢出错误。不过,这个错误的后果好像也太离谱了,还是扰乱了浮点栈里的内容啊。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧