写在前面
期末整理重点,留档自用复习
第一章 8086CPU
物理地址计算
物理地址=段地址×16+偏移地址
堆栈
堆栈范围 SS:0000H~SS:(SP-1)
初始SP指向堆栈底
PUSH:SP=SP-2
POP:SP=SP+2
存储器分体结构
8086访问存储器时,既要能传送一个字,又要能传送一个字节。因此把16位的存储器分成两个8位的存储体来处理。
- 奇地址体(高位)~BHE
- 偶地址体(低位) A0
选择引脚低电平有效
~BHE | A0 | 使用数据线 |
---|---|---|
0 | 0 | D15 ~ D0 |
0 | 1 | D15 ~ D8 |
1 | 0 | D7 ~ D0 |
1 | 1 | 无效 |
存取操作时,都是从偶地址体开始。
因此存取一个字时,若从偶地址开始,进行一次操作;若从奇地址开始,进行两次操作。
从奇地址开始存取时,对地址所在的偶地址读两次,分别取高位和低位,舍弃其他位。
所以无论是从奇地址还是从偶地址开始,都是读取偶地址体开始。
每个存储体512K字节,共1MB
最小模式
最小模式包括1片8254、3片8282、2片8286、一个8086cpu
8284
时钟发生器,连接CLK、READY、RESET,产生时钟信号,同步READY和RESET信号
8282
锁存器,实现时分复用,先把地址锁存进8282,此时可以空出总线去存取数据,需要时再将地址输出
~STB:下降沿触发,有ALE给信号,锁存允许
~OE=0, 开启三态门,向外输出,常接地
Q:为什么3片8282
A:因为A19 ~ A16 +~BHE + AD15 ~ AD0共21位,8282是8位,所以需要3片
8286
数据收发器,可以双向传输数据
DIR(T):传输方向,接DT/~R发送/接收,
- T=1:A→B
- T=0:A←B
~OE:接 ~DEN,数据使能端
AD15 ~ AD0
读存储器/写存储器/读IO/写IO时各引脚的值?
读写总线周期
总线周期:CPU访问一次存储器或IO的时间成为总线周期,一个总线周期分为4各时钟周期
T1:8282锁存地址
- A19 ~ A16 +~BHE + AD15 ~ AD0 地址输出
- ALE 下降沿锁存
- M/~IO 选中存储器或IO
- DT/~R 发送/接收数据
T2:8286准备
- AD15 ~ AD0高阻态浮空,准备传输数据
- ~DEN 下降变低电平
- ~RD/ ~WR 下降变低电平
T3:8286传输数据
- 等待READY=1(准备好后开始传输)
- AD15 ~ AD0输出/输入数据
T4:结束
- 维持半个周期,后半个周期,各信号复位,数据从数据总线上撤出
- 结束。
最大模式
最大模式与最小模式的区别是CPU不直接控制8282和8286,因此最大模式下,有8288总线控制器用来向8282和8286发出信号;8289总线裁决器,用来判断哪些信号由CPU发出哪些信号由8288发出