鱼C论坛

 找回密码
 立即注册
查看: 4300|回复: 3

32位系统的CPU寄存器和数据总线都是32位吗?

[复制链接]
发表于 2013-8-5 17:12:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在学习"内存边界对齐"这个概念的时候有点迷惑,大概由于鱼大认为这点不是太重要,就点了两句就过去了。但我还是想把问题搞透彻
我认为小甲鱼讲的自然边界应该就是指CPU中的寄存器位数,也就是CPU一次能够处理的数据位数。32位系统就是指CPU一次可以处理4个字节数据。因此一个数据在传输给CPU的时候尽量使其一次性传完才是有效的,如果由于不对齐边界,则会使得总线要分两次才能传给CPU,相当于浪费了CPU效率。
但新疑问来了,32系统的数据总线宽度是否就一定也是32位的呢?会不会可能是更多

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-8-5 17:50:01 | 显示全部楼层
系统和cpu不一样吧。不要把概念搞乱了。32位cpu或者64位cpu是由通用寄存器的位数决定的,而不是总线位数。(我查到的资料是这么说的,我也不太清楚)李忠的书上写了,32位cpu的数据总线宽度可以大于32位。

这下概念应该清楚了吧。

评分

参与人数 1鱼币 +1 贡献 +1 收起 理由
南风烟雨五庄观 + 1 + 1 热爱鱼C^_^

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-8 13:37:41 | 显示全部楼层
32位系统CPU可以是64位的 这个是确定的
不过64位系统CPU貌似不能使32位的哦
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-8 22:41:08 | 显示全部楼层
本帖最后由 565123 于 2013-8-8 22:42 编辑

xmm0这个寄存器专门处理64位的double资料,在C语言中进行一些浮点运算,反汇编后就可以见到一堆和xmm0有关的操作
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-15 18:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表