+ -
当前位置:首页 → 问答吧 → 32位cpu跑16位的程序,是不是寄存器有一半没有用到?

32位cpu跑16位的程序,是不是寄存器有一半没有用到?

时间:2011-01-12

来源:互联网

还是说,寄存器都用上了,只不过一次执行2条指令?

谢谢。

作者: jkljljkl   发布时间: 2011-01-12

只用一半寄存器,如eax只用它的低16位ax。

作者: shzhfu   发布时间: 2011-01-12

你的标题基本上算对了,如eax只用它的低16位ax(这是1楼的我复制来的哈哈),但不排除程序里使用32位寄存器----这是合法的。

帖子里问得貌似不太合适,“只不过一次执行2条指令”,事实上,在某个瞬间查看CPU的话,你会看到它正在执行的指令---那只有一条。即使是在所谓的“超流水线处理器”也是如此的。但是你可以说,它是“在单位时间里执行了2倍的指令”----或者N倍,毕竟CPU的工作频率提高了。

32位CPU跑16位程序的另一个限制是程序大小。这是因为按照段地址:偏移量计算的地址,受限于不能使用全32位地址线。

作者: JustFromHell   发布时间: 2011-01-12