栈,数据段,代码段和cpu外内部总线之间的关系问题
小甲鱼,你好!我是您的终极粉丝,我想问个很郁闷我的问题,那就是:原来8086cpu内部是16位的嘛对吧,而而内部是用16位的段地址和16位的偏移地址通过地址加法器形成和外部地址总线20条相匹配的20条总线对吧?但是,数据段和代码段的长度最长是64K,还有栈最长的长度也是64k,对吧?可是那这样不管是数据段还是代码段还 是栈,它们都是长度不超过64k即16位,而cpu的地址总线有20位即能访问1MB的内存,那这样20和16相比不是总线多了4,这样不是浪费了4条总线?求解答,可能是我对内部这些关系理解错了,能不能在把我的主题中“栈,数据段,代码段和cpu外内部总线之间的关系”解释解释???谢谢,最近要考微机了,呜呜呜。:lol 首先,禁止点将!其次是问题:8086有20位地址总线,所以寻址能力是1MB,但他却是16位的CPU,所以才会有加法器这个东西
8086CPU将1MB的存储器空间分成许多逻辑段,每个段最大限制为64KB, 段地址就是逻辑段在主存中的起始位置。为了能用16位寄存器表示段地址,8086规定段地址必须是模16地址。
其次这个问题,你可以看下IBM的那本汇编书,你最后的问题就是说,既然8086限制了64kb,何必又要用20位地址总线,浪费4位...这个问题,你也理解下数据段长度和寻址范围,提醒一点:原始的创造又时间不需要什么原因! 8086本来是16的,他非要加一个20位的,为了不浪费使用,然后CPU把1MB的分割为...
本帖最后由 紫色/tp雲天 于 2012-12-23 11:53 编辑
:dizzy:你的意思是这3个段的寻址范围只有64KB而地址总线却是1MB,1MB-64KB剩下的段就没有用是吗?
sa*16+ea=20位物理地址,其寻址长度64KB是指的ea的变化范围吧,具体的物理地址范围还要看sa的啊
我也是新手,不知道回答的对不对
另求个QQ交流群啊,我实在是没看到哪里有官方交流群。
来看看呵呵
页:
[1]