1、 8086CPU和8088CPU內部結構基本相同,不同之處在於8088有8條外部數據總線,因此爲準16位。8086有16條外部數據總線。兩個CPU的軟件完全兼容,程序的編制也完全相同。
2、 8086CPU從功能上分爲兩大部分:一是執行部件(EU),二是總線接口部件(BIU)。
執行部件是由以下雖部分組成:
(1)四個通用寄存器:AX BX CX DX
(2)四個專用寄存器:基數指針寄存器BP,堆棧指針寄存器SP,源變址寄存器SI,目的變址寄存器DI
(3)標誌寄存器FR
(4)算術邏輯部件ALU
功能是負責執行所有的指令,向總線接口部件提供指令執行的結果數據和地址,並對通用寄存器和標誌寄存器進行管理。
總線接口部件由以下部件組成:
(1)四個段寄存器:代碼段寄存器,數據段寄存器,附加段寄存器,堆棧段寄存器。
(2)指令指針寄存器
(3)地址加法器
(4)指令隊列
功能:執行外部總線週期,負責存儲器與外部端口I|O傳送數據。也就是負責CPU與存儲器和外設之間的信息交換。
3、共有14個寄存器,分成3個部分:
(!)通用寄存器8個 :AX, BX , CX, DX , SP , BP ,SI ,DI.
AX , BX ,CX , DX爲數據寄存器,用來保存運算中的中間結果和有效地址。4個寄存器既可以做16位寄存器,也可以做8位寄存器 AL, AH, BL, BH, CL, CH, DL, DH.。
在程序設計中,一般把AX用作累加器。BX 用作基址寄存器,CX用作計數器,DX用作數據寄存器。
SP:堆棧指針寄存器;裝棧頂指針偏移量。
BP:基址指針寄存器:裝棧段中一個數據區的基址偏移量。
SI:源變址寄存器;裝源操作數地址的偏移量。
DI:目的變址寄存器;裝目的操作數地址偏移量。
(2)段寄存器4個
CS;代碼段寄存器;裝代碼段的起始地址;
DS;數據段寄存器;裝數據段的起始地址;
SS; 堆棧段寄存器;裝堆棧段的起始地址;
ES: 附加段寄存器;裝附加段的起始地址。
(3)控制寄存器兩個:IP,FR。
IP:指令指針寄存器;始終存放當前指令的下一第指令的起始存儲單元的偏移地址。
FR:狀態標誌寄存器;用來存放運算結果和特徵。16位寄存器,用39位。
標誌位分爲兩大類:一類是狀態標誌,用來表示算術、邏輯運算的結果特徵。(CF,PF,AF,ZF,SF,OF)。一類是控制標誌;用來表示控制CPU的操作特徵。(IF、DF、TF)
CF(FR0):CF=1爲加、減運算結果的最高位有進位或有借位,否則CF=0。
PF(FR2):PF=1爲操作結果“1”的個數爲偶數,否則PF=0。
AF(FR4):AF=1爲運算結果的低4位向高4位有進位或有借位,(用於10進制BCD碼運算指令)否則A=0。
ZF(FR6):ZF=1運算結果爲0,否則ZF=0。
SF(FR7):SF=1運算結果最高爲0(E),否則SF=0。
OF(FR11):OF=1在算術運算時,帶符號數的運算結果超出數的表示範圍。否則OF=0。
TF(FR8):TF=1CPU進入單步工作方式。
IF(FR9):IF=1允許CPU響應可屏蔽外部中斷請求。IF=0禁止中斷。
DF(FR10):DF=1在字符串操作時使地址指針自動減量。DF=0自動增量。
4、 8086系統的物理地址是將段地址寄存器的內容左移4位(或乘16)加上偏移地址,即可得到20位的物理地址。
2000H左移4位爲20000H,加上2100H爲22100H,則物理地址爲22100H。
5、8086/8088CPU把BIU完成一次訪問存儲器或外設操作所需的時間稱爲一個總線週期。一個總線週期最少包含4個時鐘週期(T1~T4)。當訪問存儲器(讀、寫)或外設時,存儲器或外設不能及時地配合CPU傳送數據,存儲器或外設通過“READY:信號在T3之前向CPU發一個“數據未準備好”信號,CPU在T3之後插入一個或多個等待時鐘週期TW。當存儲器外設準備好數據,通過“READY”發“準備好”信號,CPU接收到這個信號後,會自動脫離TW狀態進入T4狀態。因此插入多少個TW取決於“READY”信號。
1、 最小模式:就是在系統中只有8086/8088一個微處理器。在該系統中,所有的總線控制信號都直接由8086/8088產生,因此,系統中總線控制電路被減到最少。
最大模式:在系統中包含兩個或多個微處理器,其中一個主處理器就是不是8088/8086,其它處理器爲協處理器,是協助主處理器工作的。它用在中等規模或大型的8088/8086系統中。一般情況下和8088/8086配合的協處理器有兩個,一個是數值運算協處理器8087,一個是輸入/輸出協處理器8089。將8088/8086CPU的第33腳接地時,系統處於最大模式,當第33腳接+5V時,系統爲最小模式。
2、 地址鎖存器就是一個暫存器,它根據控制信號的狀態,將總線上的地址代碼暫存起來。8088/8086的數據和地址總線採用分時複用不着操作方式,即用同一總線既傳送地址又傳送數據。當微處理器與存儲器交換信號時,首先由CPU發送存儲器的地址,同時發允許鎖存信號ALE給鎖存器,當鎖存器接到該信號後將地址/數據總線上的地址鎖存在鎖存器中,隨後才能傳送數據。
3、 8086中的典型時序包括:
(1)存儲器讀與寫週期。
(2)I/O設備的讀與寫週期。
(3)中斷響應週期。
(4)系統復位。
(5)空轉週期。
(6)CPU進入和退出保持狀態的時序。
?? 8086CPU的字節尋址範圍有多大?爲什麼?存儲器爲什麼分段?20位物理地址的形成過程是怎樣的?
答:8086CPU尋址範圍1MB。因爲8086CPU地址線爲20條,2^20=1024KB,即1MB。8086系統中,指令僅給出16位地址,與尋址有關的寄存器也只有16位長,因此尋址範圍只有64KB,爲了尋址1MB,所以分成四個邏輯段。當CPU訪問內存時,段寄存器的內容(段基址)自動左移4位(二進制),與段內16位地址偏移量相加,形成20位的物理地址。