80x86 微处理器
目錄
一、8086 CPU的內(nèi)部結構
(一)、指令執(zhí)行單元(EU)
1、算術邏輯運算單元ALU
2、標志寄存器Flags
3.寄存器組
(二)總線接口單元BIU
1.4個16位的段地址寄存器組
2、16位的指令指針寄存器IP
3、20位的物理地址加法器
4、指令緩沖隊列
二、8086存儲器組織
(一)存儲器地址的分段
(二)存儲器物理地址的形成
(三)8086存儲器的分奇偶體結構
(四)8086存儲器的堆棧
?
一、8086 CPU的內(nèi)部結構
8086微處理器片內(nèi)和片外都是16為的數(shù)據(jù)總線、20位的地址總線,直接尋址空間可達2^20即1 MB。其采用了取指令和執(zhí)行指令并行工作的結構設計。
由圖可知:8086CPU內(nèi)部結構由指令的執(zhí)行單元(EU)和總線接口單元(BIU)這兩部分組成。
(一)、指令執(zhí)行單元(EU)
指令執(zhí)行單元EU主要完成指令的譯碼和指令的執(zhí)行兩部分工作。其中有三部分組成
算術邏輯運算單元ALU;
標志寄存器PSW;
寄存器組。
1、算術邏輯運算單元ALU
主要完成8位或16位二進制數(shù)據(jù)的算術邏輯運算功能,運算的數(shù)據(jù)可來自內(nèi)部的寄存器,也可來自存儲單元或指令代碼中包含的數(shù)據(jù)。
2、標志寄存器Flags
16位的標志寄存器是用來存儲數(shù)據(jù)運算處理后的結果特征標志信息和CPU運行的狀態(tài)控制信息。
| OF | DF | IF | TF | SF | ZF | AF | PF | CF | |||||||
| 溢出標志位 | 發(fā)現(xiàn)標志位 | 中斷允許標志位 | 單步標志位 | 符號標志位 | 零標志位 | 半進位標志位 | 奇偶標志位 | 進位標志位 |
表1 Flags各位標志含義
3.寄存器組
寄存器組包含4個16位的通用寄存器和4個16位的專用寄存器。
(1) 4個通用寄存器
| 四個通用寄存器 | 高八位 | 低八位 | |
| AX | 累加器 | AH | AL |
| BX | 基址寄存器 | BH | BL |
| CX | 計數(shù)器 | CH | CL |
| DX | 數(shù)據(jù)寄存器 | DH | DL |
一般用作數(shù)據(jù)暫存
(2)4個專用寄存器
| 4個專用寄存器 | |
| SP | 堆棧指針寄存器 |
| BP | 基址指針寄存器 |
| SI | 源變址寄存器 |
| DI | 目的變址寄存器 |
SP和SP可以與堆棧段寄存器SS聯(lián)合使用,用于設置或訪問堆棧段。
在字符串運算中SI與數(shù)據(jù)寄存器DS配合,指向源串的首地址,DI與附加段寄存器ES配合,指向目的串的首地址。
(二)總線接口單元BIU
總線接口單元BIU是8086CPU與外部(存儲器和I/O端口)數(shù)據(jù)傳輸?shù)慕涌?#xff0c;它提供了16位的雙向數(shù)據(jù)總線和20位的地址總線以及所有的控制信號線。
主要功能有:地址的形成、外部取指令、指令排隊、數(shù)據(jù)的讀/寫操作控制和其他功能的總線控制。
總線接口單元BIU有5部分組成:
a:4個16位的段地址寄存器組
b:16位的指令指針寄存器IP
c:20位的物理地址加法器
d:6字節(jié)的指令緩沖隊列
e:總線輸入/輸出控制電路
1.4個16位的段地址寄存器組
用來提供訪問外部存儲器時的16位段基址。
| 4個16位的段地址寄存器 | |
| CS | 代碼段寄存器 |
| DS | 數(shù)據(jù)段寄存器 |
| SS | 堆棧段寄存器 |
| ES | 輔助數(shù)據(jù)段寄存器 |
CS——在取指令階段提供16位的段地址。
DS——在執(zhí)行指令時,如果有訪問片外存儲器是數(shù)據(jù)時提供16的段地址。
SS——在方位堆棧時,提供16位的段地址
ES——在CPU做片外存儲器的數(shù)據(jù)訪問時,提供16位的段地址,只在串操作或特別指定的數(shù)據(jù)訪問指令中使用。
2、16位的指令指針寄存器IP
用作存放下一條待執(zhí)行的指令代碼所在存儲單元的16偏移地址,和CS一起構成程序指針。
3、20位的物理地址加法器
將16位的段地址和16位偏移地址轉(zhuǎn)換成20位的存儲器單元物理地址。
4、指令緩沖隊列
用以存放BIU已經(jīng)讀進CPU但是還未來得及執(zhí)行的指令代碼。
5、總線輸入/輸出控制電路
實現(xiàn)CPU和片外存儲器或I/O端口數(shù)據(jù)傳輸?shù)臅r序邏輯控制。
二、8086存儲器組織
物理存儲器:處理器在它的總線上尋址的存儲器稱為物理存儲器。
物理地址:物理存儲器按字節(jié)序列排列,每個字節(jié)賦予一個唯一的地址,稱為物理地址。
(一)存儲器地址的分段
8086微處理器有20位的地址總線,內(nèi)部有16位的寄存器,不能直接給出20位的存儲單位地址,必須有2個16位的寄存器組合才能給出20位存儲器單位地址。故將1MB的存儲空間分成若干個邏輯段,每個邏輯段容量小于等于64KB,1MB的存儲空間可分成16個邏輯段,允許在整個存儲空間浮動。如圖所示:
圖2 8086存儲器連續(xù)分段圖下圖3 為8086存儲器重疊分段圖,只要有段地址和段內(nèi)偏移地址就可以問問這個物理地址所對應的存儲空間。
圖3 8086存儲器重疊分段圖(二)存儲器物理地址的形成
物理地址:8086 CPU訪問存儲單元時,有20位的地址加法器給出的實際地址,而且這個地址是唯一的,將此地址稱為物理地址。
邏輯地址:將段起始地址(段基址)和段內(nèi)偏移合起來稱為邏輯地址,也稱為編程地址。
偏移地址:邏輯地址在程序中使用,即段基址:偏移地址。
物理地址的計算:
物理地址是有邏輯地址在地址加法器中變換運算得到,故其計算方法為:
物理地址=16位的段基址*16+16位的偏移地址
(三)8086存儲器的分奇偶體結構
8086 CPU將存儲器分成奇地址和偶地址管理,稱為奇偶分體結構。
8086 CPU 將1MB的存儲空間分成兩個存儲體:奇地址存儲體和偶地址存儲體,各為512KB。
其中奇地址單元對應高8位數(shù)據(jù)線和偶地址單元對應低8位數(shù)據(jù)線。
| 512K*8位奇地址存儲 | 512K*8位偶地址存儲 |
注:為了提高程序的運行速度,在編程時,注意存放字數(shù)據(jù)最好從偶地址開始存放,這種存放方式也稱為“字對準”存放。
(四)8086存儲器的堆棧
堆棧是指在存儲器中開辟的一片數(shù)據(jù)存儲區(qū),用于暫存數(shù)據(jù)和在過程調(diào)用或處理中斷是暫存斷點信息。
堆棧的特點:先進后出
圖4?堆棧示意圖?
8086 CPU通過對SS和SP的設置來開辟堆棧段。SS提供段基址,SP提供棧底偏移地址。
總結
以上是生活随笔為你收集整理的80x86 微处理器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转载】又1个教程--简明批处理教程
- 下一篇: Hadoop —— 漫画图解hdfs读、