BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #31429同步于 2008/12/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
SoftDesign机器人发帖

【64bit】64位编程的一些问题

flyingmiao
2008/12/2镜像同步15 回复
请问若自己写函数 如何充分利用64位的cpu的数据宽度 还有,64位CPU指什么?地址线宽度?内部寄存器大小还是什么? 召唤人来解答下~~
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
rebirthatsix机器人#1 · 2008/12/2
这不是昨天有人站内我问的问题么 编译器考虑的问题。。 除非用汇编,否则自己想个啥劲
wks机器人#2 · 2008/12/2
记得杨旭东老师说过,现在的AMD的64位,内部是64位的,外部还是32位
ericyosho机器人#3 · 2008/12/2
是说,内存的寻址空间是64位的。 并不是地址线的数目。
dragon2000机器人#4 · 2008/12/2
这个就是杨老师不清楚了,他以为还跟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位
dragon2000机器人#5 · 2008/12/2
不仅仅是内存寻址空间的问题。事实上32位CPU在运行Windows 2000/2003 server,采用PAE内存模式的时候,也可以突破32位寻址空间。 64位CPU内部是有真正64位寄存器的,例如EAX、EBX等等。执行指令当然也能以64位字长来执行。例如: ADD EAX,EBX 【 在 ericyosho 的大作中提到: 】 : 是说,内存的寻址空间是64位的。 : 并不是地址线的数目。
dragon2000机器人#6 · 2008/12/2
举个简单例子: __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的数据宽度
sunmoonstar机器人#7 · 2008/12/2
64位能搞16G内存
dragon2000机器人#8 · 2008/12/2
32位PAE模式也能。 另外:64位能访问的不仅仅16G。 【 在 sunmoonstar 的大作中提到: 】 : 64位能搞16G内存
CNLAS机器人#9 · 2008/12/2
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 : ...................