免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4393 | 回复: 3
打印 上一主题 下一主题

问个CPU内存寻址的问题 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-05-03 23:33 |显示全部楼层

回复 #2 dgfsdgs 的帖子

你的问题这么多,还不如找本好书仔细看,介绍本好的教材给你《ISA System Architecture (3rd 》网上搜索一下,你能坚持将此书看完且能看两次,那么你的基本就打得很好了。

论坛徽章:
0
2 [报告]
发表于 2008-05-03 23:46 |显示全部楼层

回复 #2 dgfsdgs 的帖子

汗,这些问题是你自己想出来的? 还是书上的?

论坛徽章:
0
3 [报告]
发表于 2008-05-04 00:27 |显示全部楼层
原帖由 dgfsdgs 于 2008-5-4 00:10 发表
ISA System Architecture没中文版本啊,E文的我看不懂。。
我在看王爽那本汇编语言,看到大概120页了,感觉模模糊糊的,不是很懂。。
然后我买了本IBMPC汇编语言程序设计,我看到那个寻址方式多啊,复杂啊,也 ...


没看过王爽的汇编语言,《ISA System Architecture》真的比这些什么什么汇编语言强多了。E文不好,可以用金山词霸翻着看,坚持下去。我看E文不懂时也这样

论坛徽章:
0
4 [报告]
发表于 2008-05-04 00:56 |显示全部楼层
原帖由 dgfsdgs 于 2008-5-4 00:41 发表

王爽那本汇编语言不错,属于经典的汇编书了。可惜书店居然找不到,四川书市都没找到。
用金山词霸看估计太郁闷了点。。。
cjaizss大虾对硬件了解,等他来解答   

再简化下问题
16位寄存器放不下20位的地址,所以用2个寄存器放,这能理解,但为啥不直接把20位地址从0到FFFFF编号,低于FFFF的部分放到IP寄存器当中,高的部分直接放到CS寄存器的低4位去呢,这样CPU拿地址的时候直接把CS寄存器的低4位拿出来后面加上16个0然后再加上IP当中取出来的值。
又说了那么多,没简化成。还是等答案,先不说了   
要是以后地址总线是寄存器的3倍,NND,2个寄存器都不够放了,得用3寄存器了。。

汗~ 建议你爱听就听不听就算了。你就等着 cjaizss 给你解答吧

最后答你一次:
20 位地址的形式是: 高16位地址放CS,也即是放CS后,低4位被置为0,再上 offset 得20位地址。
20位的地址编号本来就是从 0 至 FFFFF,只是你转不过弯来而已,这20位地址的编号采取段式内存管理进行分段,形式一个段基CS加上偏移量这种表示形式。实际上编号是0到FFFFF
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP