关于内存寻址的问题
我们知道8086是16位的cup,是以16位x16+偏移地址方式,也就是2的20次方等于1M寻址范围 但我听说32位的cup ,寻址范围是2的32次方=4GB,他没有32位x16+偏移地址的 寻址方式吗? 可不可以大于4GB? 还有现在64位的cup也是一样,2的64次方等于1024GB, 还可不可以大于1024GB。还有寻址和操作系统有什么关系??我听说32位的操作系统寻址是4GB, 那操作系统的寻址有和cup寻址又有什么关系?
问题很菜,但是我确实想不清楚,希望懂的大哥有时间的话解说一下,感激不尽~~~~~~~~~!
有人吗?? 我先上课去了,回来再看!!!!!谢谢 :'(没有人吗? 是不是我的问题很蛋疼?都没有人帮忙。。。 先理解16位CPU吧,
学完16位在看32位汇编教程,如鱼得水! :'(。。。搞不清楚。。。 CPU 寻址范围是看地址总线宽度的8086的cpu 地址总线宽度为20 寻址能力为2的20次方,一个cpu有n根地址线,可以说这个cpu的地址总线宽度为n,这样的cpu 寻址能力为2的n次方 那系统和寻址的关系呢? 是没人看还是不想回答? 无语了。。。。 我们知道8086是16位的cup whatdoes " cup" means ??? 刚开始学就是这样的,不要太深究,这样就容易钻牛角尖了,后面学到了自然就可以解释前面学的东西了,你只要记住以前的DOS系统下只能使用16位地址线,寻址1M,win32下32位地址线寻址4G就可以了,想有深入的了解可以看看微型计算机及其应用和计算机组成原理你会明白的,有些东西就目前你掌握情况来看不要太深究,我们是学习编程,而不是造CPU cpu是打错了。。。 谢谢大家的解答~! qiou_fong 发表于 2011-10-12 11:11 static/image/common/back.gif
我认为:(不一定正确!)
x86之所以用段地址+偏地址,因为cpu是16位,主板总线是20位,主板可控2 ...
恩,谢谢你的解答,你对CPU原理理解的满深刻的啊,呵呵!! 想多了,Win32汇编语言程序设计主要是调用API,和DOS编程差异甚远,Win32汇编学习主要是学习常用API的使用,对于算法部分也非是入门级别主攻的。
推介书籍--罗云彬<Windows环境下的Win32汇编语言程序设计第三版 琢石成器>
书不在多,在于精,假使能把这本书看透的话,你的WIN32也算是完全入门了。这本书售价79元,在书店一般都买不到,网上应该能找到电子书!
还有Win32的内存是平坦的,寻址范围可以达到4G(其实不可能有这么多哦),没有DOS下的64K的限制,所以寻址没有 基地址x10h+偏移地址 之说。 嗯嗯,谢谢!! 段加偏移的寻址方式本来就是一道硬伤,32位的肯定不是用段加偏移了,用的最多的是平坦模式flat BinGu 发表于 2011-10-13 11:23 static/image/common/back.gif
想多了,Win32汇编语言程序设计主要是调用API,和DOS编程差异甚远,Win32汇编学习主要是学习常用API的使用, ...
这本书,在网店有销售的,价钱要比实体店便宜不少
页:
[1]
2