返回信息流请问若自己写函数 如何充分利用64位的cpu的数据宽度
还有,64位CPU指什么?地址线宽度?内部寄存器大小还是什么?
召唤人来解答下~~
这是一条镜像帖。来源:北邮人论坛 / soft-design / #31429同步于 2008/12/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖
【64bit】64位编程的一些问题
flyingmiao
2008/12/2镜像同步15 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
这个就是杨老师不清楚了,他以为还跟8086 CPU是内部16位,外部8位一样呢。
事实上现在的AMD和Intel的64位CPU都是真正64位的,不管内部总线还是外部。只不过它能够兼容32位运行模式,这跟奔腾CPU是32位,但是兼容16位程序有点类似。
问题是64位应用程序必须在64位操作系统上才能运行,例如64位Linux、64位Windows XP/2003/Vista等。现在很多操作系统还是32位的。
【 在 wks 的大作中提到: 】
: 记得杨旭东老师说过,现在的AMD的64位,内部是64位的,外部还是32位
不仅仅是内存寻址空间的问题。事实上32位CPU在运行Windows 2000/2003 server,采用PAE内存模式的时候,也可以突破32位寻址空间。
64位CPU内部是有真正64位寄存器的,例如EAX、EBX等等。执行指令当然也能以64位字长来执行。例如:
ADD EAX,EBX
【 在 ericyosho 的大作中提到: 】
: 是说,内存的寻址空间是64位的。
: 并不是地址线的数目。
举个简单例子:
__int64 a[10],b[10];
int i;
for (i=0; i<10; a[i]=b[i],i++);
等效于
__int32 a[20],b[20];
int i;
for (i=0; i<20; a[i]=b[i],i++);
这样的例子还有很多。
【 在 flyingmiao 的大作中提到: 】
: 请问若自己写函数 如何充分利用64位的cpu的数据宽度
EAX、EBX只可能是32位
在x86-64和EM64T中它们是RAX、RBX的低32位
在IA64中只有名如r0-r127的64位寄存器
以上...
【 在 dragon2000 (龙之梦工作室) 的大作中提到: 】
: 不仅仅是内存寻址空间的问题。事实上32位CPU在运行Windows 2000/2003 server,采用PAE内存模式的时候,也可以突破32位寻址空间。
: 64位CPU内部是有真正64位寄存器的,例如EAX、EBX等等。执行指令当然也能以64位字长来执行。例如:
: ADD EAX,EBX
: ...................