寫在前面
期末整理重點,留檔自用復習
第一章 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發出