鱼C论坛

 找回密码
 立即注册
查看: 1728|回复: 8

关于8086的寻址

[复制链接]
发表于 2014-8-15 10:04:55 | 显示全部楼层 |阅读模式

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

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

x
看小甲鱼的汇编视频的时候不明白这里,为什么说8086是16位的结构呢?
QQ截图20140815100117.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-8-15 10:10:07 | 显示全部楼层
8086外部地址是,20位,而内部是16位(总线);
16位的要与外部20位的对应上,就要增加4位(即把16位的内部地址变成20位的,才能寻找外部地址)

8086用,段地址+偏移地址来寻找
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-15 10:30:47 | 显示全部楼层
haiouda 发表于 2014-8-15 10:10
8086外部地址是,20位,而内部是16位(总线);
16位的要与外部20位的对应上,就要增加4位(即把16位的内 ...

嗯,谢谢,那什么是外部地址,什么是内部地址呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-15 10:40:44 | 显示全部楼层
厚重的心 发表于 2014-8-15 10:30
嗯,谢谢,那什么是外部地址,什么是内部地址呢?

其实说白了就是地址线的个数,8086CPU内部地址线有16根,外部连接其他的硬件的地址线个数是20根,所以,内部的寻址范围是2^16Byte,外部的寻址范围是2^20Byte,为了使内部与外部一致,8086CPU使用(段地址*16 +  偏移地址)的方法进行寻址
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-15 10:55:24 | 显示全部楼层
一个人在战斗 发表于 2014-8-15 10:40
其实说白了就是地址线的个数,8086CPU内部地址线有16根,外部连接其他的硬件的地址线个数是20根,所以, ...

嗯,明白了,谢谢啦:handshake
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-15 10:58:34 | 显示全部楼层
厚重的心 发表于 2014-8-15 10:55
嗯,明白了,谢谢啦

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

使用道具 举报

发表于 2014-8-15 13:03:54 | 显示全部楼层
楼上说的都很详细。
但是
0.这里内部地址指的是CPU内,外部地址指的是内存地址(不是外部存储器)。
1.8086的cpu设计的是16位结构,可以访问的地址范围是64K。
2.内存地址总线是20位,说明可以访问的地址是1M。
3.那么就产生一个问题,CPU寻址范围达不到内存。当然聪明的设计者就想到一个办法,CPU想访问内存地址时,首先在CPU内部形成两个16位地址,一个叫段地址,一个叫偏移地址,通过内部的地址加法器,将段地址*16+偏移地址,刚好形成一个20位的地址。将原本64K的空间扩展到1M。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-15 15:08:41 | 显示全部楼层
小靚同学Leon 发表于 2014-8-15 13:03
楼上说的都很详细。
但是
0.这里内部地址指的是CPU内,外部地址指的是内存地址(不是外部存储器)。

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

使用道具 举报

发表于 2014-8-15 16:16:40 | 显示全部楼层
前来观看。。。。。。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 11:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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