鱼C论坛

 找回密码
 立即注册
查看: 2275|回复: 13

多个段地址与偏移地址都是指向一个物理地址,那么为什么不直接寻物理地址呢?

[复制链接]
发表于 2013-8-18 15:38:19 | 显示全部楼层 |阅读模式

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

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

x
物理地址容量只有64KB 那么你无论怎么变段地址与偏移地址他的物理地址容量不还是那么多么?就像一个杯子容量是500ML把他变成1000ML这是什么逻辑啊?这个问题一直很朦胧;求解?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2013-8-18 16:18:26 | 显示全部楼层
应为物理地址是20位
寄存器是16位啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-18 16:31:25 | 显示全部楼层
这个物理地址是怎么算出来的啊?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-18 16:46:28 | 显示全部楼层
王爽老师的书基础知识讲的很清楚了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-18 19:03:46 | 显示全部楼层
看汇编语言,我也不懂。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-18 21:06:11 | 显示全部楼层
王爽老师的家到学校的比喻,那是说先有物理地址  后再有段地址与偏移地址;但是看了很多人的回复感觉就是先有段地址与偏移地址然后再有物理地址;求解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-18 21:14:25 | 显示全部楼层
最看不惯那种自以为很懂,却说不出个所以然来的人;

评分

参与人数 1荣誉 -1 鱼币 -1 收起 理由
Crazy迷恋. -1 -1 好心回答~~朋友不要恶意相向~~~

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-18 22:48:43 From FishC Mobile | 显示全部楼层
本帖最后由 Dardy 于 2013-8-18 22:49 编辑

地址需运算如对地址的加减运算,这些运算又需要寄存器的叁与如存放加数结果,地址是20位寄存器是16位,一个地址至少需要两个寄存存放,所以把一个地址拆分为两部分是必须的。精心设计了这种拆分方式,基址和偏移地址,符合我们的理解和使用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-18 23:04:38 | 显示全部楼层
段地址,物理地址这里讲的比较详细了
http://bbs.fishc.com/thread-35811-1-1.html

最后说明一点:最看不惯论坛上有些伸手党,就跟孙子似的,比如说上面的7楼。别人有义务还是拿了你多少钱吗。一定要为你服务???你丫不是说了看不惯那种自以为很懂,却说不出个所以然来的人;我看你就是懒种一个,论坛强大的搜索功能,你个SB不去用。你还着别人把饭咀嚼好。亲自吐到你嘴中吃吗?

点评

朋友注意用语哦~~~文明文明~~~  发表于 2013-8-18 23:38
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-18 23:15:37 | 显示全部楼层
呵呵终于知道是说你了哦!有点自知知明
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-19 07:40:37 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-19 08:38:08 | 显示全部楼层
是这样的:首先。因为8086的数据总线只有16位,所以它的几乎所有寄存器都是16位。于是,这就涉及到了一个严重的问题:“我们要用多少个寄存器来保存地址?”
显然,我们第一次尝试使用1个寄存器来保存地址,也就是用16个2进制位来保存地址,但是这样只能保存64KB大小的地址空间。但是8086的地址总线是20根,可以有1MB的地址。我们不能浪费剩下的地址空间不用。
于是,我们产生了一个朴实无华的想法:一个寄存器不够的话,就用两个。但两个寄存器总共有32位,可以寻址4GB的空间,但实际上能用的只有1MB。
接着思考的就是:在这种情况下,肯定有很多的地址表示是重复的,也就是说同一个20位的物理地址可以对应多种不同的32位表示。问题在于:这种硬把32位地址转换为20位地址的方法有很多,我们要选择哪一种方法呢?其实随便你选择哪种都可以,不过这个问题答案的关键不在于你如何选择,而在于8086CPU的设计者如何选择。
接下来的事情你已经知道了,8086的设计者为了让人觉得他们的做法“比较明智”,硬是搞了段地址和偏移地址的概念。当然,有概念比没有概念要好,因为有概念,你可以根据概念由段地址和偏移地址自己计算出物理地址;没有概念的话,你基本就要像查ascii表那样查一张很大的表。
整个故事就是这样的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-19 22:07:40 | 显示全部楼层
谢谢仰望天上的光;讲解的非常透彻;如果小甲鱼把你这段解释放到视频当中;学习者会理解的很快!非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-8-20 10:03:14 | 显示全部楼层
讨论的好激烈啊!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 05:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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