请问这道题端口A、B和控制端口的地址是怎么计算出来的?(微机原理) 50

 我来答
ASSEMBLYZENG
2016-08-26 · TA获得超过251个赞
知道答主
回答量:27
采纳率:100%
帮助的人:27.3万
展开全部
无论在单片机还是电脑,内存映射或端口映射IO的地址都是通过硬件生产方在硬件上设置,而不是通过检测得出地址的。只有很少一部分的通用硬件是固定映射在某些地址上。

回到你的问题中,在图中的8255A硬件的各个端口是由它自己在地址总线上监听属于自己的地址,而并不是微处理器内部反馈给它。

题外话: 电脑上的驱动程序就是为了初始化和运行硬件用的,因为有时候操作系统开发商并不知道该硬件会被映射到哪里去,还有该硬件的特性。

有什么不明白可以继续追问
追问
所以我问它监听的地址是怎么根据图中地址总线信息计算出来的。比如端口A的地址FF98是怎么得出的?
谢谢
追答
图里标的不是很细,只能初略猜一下:

--G1,G2必须为1才能激活地址解析器的输出Y0-Y7;
--A5,和AEN相连组成G2B,A6为G2A;A5和AEN,和A6,只要两者之间有一者结果是1,则G2为1
--A,B,C端控制输出至Y0-Y7的哪一个(图中没标),ABC总共3位刚好可以组成7个数(111二进制),所以估算出当C,B为0,A为1时,8255A的CS会为1,从而激活8255A(前提是G1,G2都是1)

那把上面的二进制列出来就是:1111 1111 1XX1 XXXX,十六进制为FF90(X为不确定位,假设X都为0),所以得出FF90-FFFF为该地址解析器的接受空间

地址解析器虽然有位A2-A15,但位A0,A1是在8255A上的,这两个位可以组成4个不同的输出,0,1,2,3;8255A通过解析这4个不同的输入来确定到底是哪个端口是要被写或读。(上网查了下8255A实际上是有A,B,C端口和控制端口的,对应的就是那4个输出)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式