当前位置: 代码迷 >> 汇编语言 >> 浮点寄存器与整形寄存器有关问题。求大神指点。
  详细解决方案

浮点寄存器与整形寄存器有关问题。求大神指点。

热度:6449   发布时间:2013-02-26 00:00:00.0
浮点寄存器与整形寄存器问题。。。。求大神指点。。。
汇编(我学的是MIPS汇编)里为什么要分别为浮点数与整数设置寄存器。。。我觉得浮点寄存器与整形寄存器可以是一样的,所以既可以表示浮点数又可以表示整数。
因为它们大小一样。。。。

还问个问题,

书上说:设置独立的浮点寄存器有很多好处。1 在几乎无需增加指令字长的情况下, 我们可以有更多的寄存器用来存放程序中的数据,2 寄存器组的带宽也得以倍增。此外,3 这也使我们有可能对浮点数进行一些特殊的处理,例如,有的计算机规定,所有不同精度的浮点数在处理器的内部都必须表示为某种单一格式。

好处1,我觉得不对,MIPS汇编的寄存器数量是一定的(32个),怎么能说有更多的呢?
好处2,不明白带宽为什么会倍增。
好处3,难道没有浮点寄存器就不能将不同精度的浮点数在处理器的内部都表示为单一格式吗?


求大神指点。。。。。。。谢谢


------最佳解决方案--------------------------------------------------------
1。现在的所有cpu都是把浮点处理部件作为协处理器,从逻辑上把浮点处理分开,而浮点处理部件有自己独立的浮点寄存器,不能与a0等通用寄存器混淆。
2。一般32位机器上,浮点寄存器都至少会是64bit的,通用寄存器无法达到精度要求
3。浮点数在内存或寄存器的表达方式 与 通用寄存器的表达方式有根本性的差异

理解以上3点 就可以理解你的几个问题
------其他解决方案--------------------------------------------------------
学好一门语言要懂这门语言的历史,同样学好一种架构要了解他的历史。

早期的cpu没有所谓的浮点运算器,那时后来增加的。所以为了兼容性2者自然

要分开。
------其他解决方案--------------------------------------------------------
膜拜两位大神。。。。。谢谢了。。。
  相关解决方案