微机原理端口问题

为什么 上面两个芯片8253和8255端口地址是四个呀,而下面的两个芯片8251和8259端口地址是两个呢?是不是与芯片有关呢?还是怎么回事儿?

8255A有两个地址引脚A1和A0进行片内地址译码,A1A0应该接系统地址总线(也就是CPU的地址总线)的最低两位。
以8086CPU为例,假设前级系统板A9-A5这5根地址线确定的片选8255A地址范围是060H-07FH,它的含义是地址总线上出现这个地址范围内的地址则8255A被选中可以进行读写操作,这里的地址重叠(指的是多个地址可以选中同一芯片)是因为A4-A0没有接线造成的,实际上8086有16根地址总线,高位地址总线会造成更多的地址重叠,此处不再考虑。
在以上的连线方式上,A1A0进行片内译码,对应关系如下:
A1A0为11,此时地址确定为063H,写方式控制字
A1A0为00,此时地址确定为060H,读写A口
A1A0为01,此时地址确定为061H,读写B口
A1A0为10,此时地址确定为062H,读写C口
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-05
中断向量放在内存开始的1024个字节之 中 他就是中断的入口地址.1CH 就是(16+12)*4开始的4个内存单元。 所以应该是从70H开始的四个单元。0070H 0071H 0072H 0073H 其实你那个5110H 是CS 2030是 IP CS放高两位,IP放低两位。所以对应0071H~0073H分别放 30H 20H 10H 51H

可屏蔽中断。就是先中断请求。然后CPU处理完当前的任务后 响应中断 响应中断的时候要关中断也就是IF=1 保存断口地址,保存FLAG寄存器。都压入栈。接着就要进入中断子程序,在中断子程序中要开中断。中断子程序结束后,要返回断口地址,也就是弹出栈CS:IP 和FLAG。 接着返回后执行下一条指令
响应之后顶部四个单元应该是先压入CS再压入IP分别对应着顶~下4个单元存放着
IP低2位 IP高2位 CS低2位 CS高2位

INT N是通过中断类型号进行的中断。调用子程序是用的
call 然后返回的时候用ret 中断是int 返回iret 这两个比较相似。
然后就是都需要保存断口地址,以留返回的时候用的哈~
不同点就是
个人认为是FLAG的保存问题。