日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

第三章-80x86微处理器

發布時間:2023/12/4 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 第三章-80x86微处理器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要內容:
1、80x86微處理器簡介
2、8086/8088微處理器
3、8086/8088存儲器和I/O組織

學習要求:

一,80x86微處理器簡介

80x86微處理器是美國Intel 公司生產的系列微處理器。該公司成立于1968年,1969年就設計了4位的4004 芯片,1973年開發出8位的8080芯片,1978年正式推出16位的8086微處理器芯片,由此開始了Intel公司的80x86系列微處理器的生產歷史。本節簡要介紹Intel公司80x86系列微處理器的發展過程及其特性。
下面通過對表中有關技術數據的分析來說明Intel 80x86系列微處理器的發展情況。

表中關鍵詞:
集成度:指CPU芯片中所包含的晶體管數,單位為萬/片;
主頻:指芯片所使用的主時鐘頻率,它直接影響計算機的運行速度;

數據總線:是計算機中各個部件間進行數據傳送時的公共通道;
內數據總線寬度:指CPU芯片內部數據傳送的寬度(位數);
外數據總線寬度:指CPU與外部交換數據時的數據寬度;
注:數據總線位數越多,數據交換的速度越快。

地址總線:指在對存儲器或I/O端口進行訪問時,傳送由CPU提供的要訪問的存儲單元或I/O端口的地址信息的總線。其寬度決定了處理器能直接訪問的主存容量的大小。如:8086有20根地址線,使用這20根地址線上不同地址信息的組合,可直接對2^20=1M個存儲單元進行訪問;Pentium II 有36根地址線,因此它可以直接尋址的最大地址范圍為2^36=64GB。

為了滿足微型計算機對存儲器系統高速度、大容量、低成本的要求,目前,微型計算機系統采用三級存儲器組織結構,即由高速緩沖存儲器Cache、主存和外存組成。

主存 ——當前正在執行的程序或要使用的數據必須從外存調入主存后才能被CPU讀取并執行,主存容量通常為MB級;

外存——當前沒有使用的程序可存入外存,外存的容量通常很大,可達GB甚至TB級;

Cache(高速緩沖存儲器)——最大特點是存取速度快,但容量較小,通常為KB級,將當前使用頻率較高的程序和數據通過一定的替換機制從主存放入Cache,CPU在取指令或讀取操作數時,同時對Cache和主存進行訪問,如果Cache命中,則終止對主存的訪問,直接從Cache中將指令或數據送CPU處理,由于Cache的速度比主存快得多。

高速緩沖存儲器Cache的使用,大大減少了CPU讀取指令和操作數所需的時間,使CPU的執行速度顯著提高。

80386之前的CPU都沒有Cache。80386 CPU內無Cache,而由與其配套使用的Intel 82385 Cache 控制器實現CPU之外的Cache管理。80486之后的CPU芯片內部都集成了一至多個Cache。

需要說明的是,80x86CPU在發展過程中,存儲器的管理機制發生了較大變化。8086/8088CPU對存儲器的管理采用的是分段的實方式;80286CPU除了可在實方式下工作外,還可以在保護方式下工作;而80386CPU之后的處理器則具有三種工作方式:實方式、保護方式和虛擬8086方式。

保護方式:在保護方式下,機器可提供虛擬存儲管理和多任務管理機制。虛擬存儲的實現,為用戶提供了一個比實際主存空間大得多的程序地址空間,從而可使用戶程序的大小不受主存空間的限制。多任務管理機制的實現,可允許多個用戶或一個用戶的多個任務同時在機器上運行。

虛擬方式:在這種方式下,一臺機器可以同時模擬多個8086處理器的工作。

80x86微處理器詳解

8086是Intel系列的16位微處理器。使用HMOS工藝制造,芯片上集成了2.9萬個晶體管,用單一的+5V電源供電,封裝在標準的40引腳雙列直插式管殼內,時鐘頻率5MHz?10MHz。

8086有16條數據總線,可以處理8位或16位數據。有20條地址總線,可以直接尋址1M(220)字節的存儲單元和64K個I/O端口。在8086推出后不久,為方便原8位機用戶,Intel公司很快推出了8088微處理器,其指令系統與8086完全兼容,CPU內部結構仍為16位,但外部數據總線是8位的,這樣設計的目的主要是為了與原有的8位外圍接口芯片兼容。并以8088為CPU組成了IBM PC、PC/XT等準16位微型計算機,由于其性能價格比高,很快占領了市場。

二,8086/8088內部結構

從功能上講,8086CPU內部結構可分為兩個獨立的部分,并進行重疊操作。

1、總線接口單元BIU(Bus Interface Unit)——負責完成CPU與存儲器或I/O設備之間的數據傳送。

2、執行單元EU(Execution Unit)——不與系統外部直接相連,它的功能只是負責執行指令。

如圖所示:

1,總線接口單元BIU

功能:負責完成CPU與存儲器或I/O設備之間的數據傳送。

任務
① 讀指令——指令隊列出現空字節(8088 1個空字節,8086 2個空字節)時,從內存取出后續指令。BIU取指令時,并不影響EU的執行,兩者并行工作,大大提高了CPU的執行速度。
② 讀操作數——EU需要從內存或外設端口讀取操作數時,根據EU給出的地址從內存或外設端口讀取數據供EU使用。
③ 寫操作數——EU的運算結果、數據或控制命令等由BIU送往指定的內存單元或外設端口。

構成
1)、4個16位段寄存器:代碼段寄存器CS(Code Segment)、數據段寄存器DS(Data Segment)、堆棧段寄存器SS(Stack Segment)和附加數據段寄存器ES(Extra Segment);
2)、一個16位的指令指針寄存器IP(Instruction Pointer);
3)、一個20位地址加法器;
4)、6字節指令隊列緩沖器;
5)、一個與EU通訊的內部寄存器以及總線控制電路等。

各部件功能詳解
1)段寄存器
2)指令指針寄存器
3)20位地址加法器
4)指令隊列緩沖器

2,執行單元EU

功能:不與系統外部直接相連,它的功能只是負責執行指令。

任務:執行的指令從BIU的指令隊列緩沖器中直接得到,執行指令時若需要從存儲器或I/O端口讀寫操作數時,由EU向BIU發出請求,再由BIU對存儲器或I/O端口進行訪問。

構成
1). 16位算術邏輯單元(ALU):進行算術和邏輯運算。
2). 16位標志寄存器FLAGS:存放CPU運算的狀態和控制標志。
3). 數據暫存寄存器:暫存參加運算的數據
4). 通用寄存器:包括4個16位數據寄存器AX、BX、CX、DX和 4個16位指針與變址寄存器SP、BP與SI、DI。
5). EU控制電路:它是控制、定時與狀態邏輯電路,接收從BIU中指令隊列取來的指令,經過指令譯碼形成各種定時控制信號,對EU的各個部件實現特定的定時操作。

3,8086/8088CPU內部結構的差異

二者內部結構基本相似,執行單元EU完全相同,其指令系統、尋址方式及程序設計方法都相同。區別僅在于總線接口單元BIU,歸納起來主要有以下幾個方面的差異:

1).外部數據總線位數不同。8086外部數據總線16位,8088外部數據總線8位。
2).指令隊列緩沖器大小不同。8086指令隊列可容納6個字節;而8088指令隊列只能容納4個字節。
3). 部分引腳的功能定義有所區別。

三,8086/8088寄存器結構

注意
有關寄存器,尤其是在存儲器尋址時用來存放操作數在段內偏移地址的地址寄存器和標志寄存器中各控制標志位的使用方法,將在后續章節中涉及到時還將進一步詳細介紹,請讀者務必熟練掌握。**

1,通用寄存器

通用寄存器(8個):包括四個數據寄存器AX(AH/AL), BX(BH/BL),CX(CH/CL),DX(DH/DL),兩個地址指針寄存器(SP,BP)和兩個變址寄存器(SI,DI)。

1).數據寄存器AX、BX、CX、DX

數據寄存器一般用于存放參與運算的操作數或運算結果。每個數據寄存器都是16位的,但又可將高、低8位分別作為兩個獨立的8位寄存器來用。高8位分別記作AH、BH、CH、DH,低8位分別記作AL,BL,CL,DL。注意,8086/8088 CPU的14個寄存器除了這4個16位寄存器能分別當作兩個8位寄存器來用之外,其它寄存器都不能如此使用。

AX(Accumulator)稱為累加器。用該寄存器存放運算結果可使指令簡化,提高指令的執行速度。此外,所有的I/O指令都使用該寄存器與外設端口交換信息。

BX(Base)稱為基址寄存器。8086/8088CPU中有兩個基址寄存器BX和BP。BX用來存放操作數在內存中數據段內的偏移地址,BP用來存放操作數在堆棧段內的偏移地址。

CX(Counter)稱為計數器。在設計循環程序時使用該寄存器存放循環次數,可使程序指令簡化,有利于提高程序的運行速度

DX(Data)稱為數據寄存器。在寄存器間接尋址的I/O指令中存放I/O端口地址;在做雙字長乘除法運算時,DX與AX一起存放一個雙字長操作數,其中DX存放高16位數。

2)地址指針寄存器SP、BP

SP(Stack Pointer)稱為堆棧指針寄存器。在使用堆棧操作指令(PUSH或POP)對堆棧進行操作時,每執行一次進棧或出棧操作,系統會自動將SP的內容減2或加2,以使其始終指向棧頂。

BP(Base Pointer)稱為基址寄存器。作為通用寄存器,它可以用來存放數據,但更經常更重要的用途是存放操作數在堆棧段內的偏移地址。

3)變址寄存器SI、DI

SI(Source Index)稱為源變址寄存器。DI(Destination Index)稱為目的變址寄存器。這兩個寄存器通常用在字符串操作時存放操作數的偏移地址,其中SI存放源串在數據段內的偏移地址,DI存放目的串在附加數據段內的偏移地址。

2,段寄存器

為了對1M個存儲單元進行管理,8086/8088對存儲器進行分段管理,即將程序代碼或數據分別放在代碼段、數據段、堆棧段或附加數據段中,每個段最多可達64K個存儲單元。段地址分別放在對應的段寄存器中,代碼或數據在段內的偏移地址由有關寄存器或立即數給出。

段寄存器是為實現“段加偏移”尋址基址而設置的。

CS(Code Segment)——代碼段寄存器。用來存儲程序當前使用的代碼段的段地址。CS的內容左移四位再加上指令指針寄存器IP的內容就是下一條要讀取的指令在存儲器中的物理地址。

DS(Data Segment)——數據段寄存器。用來存放程序當前使用的數據段的段地址。DS的內容左移四位再加上按指令中存儲器尋址方式給出的偏移地址即得到對數據段指定單元進行讀寫的物理地址。

SS(Stack Segment)——堆棧段寄存器。用來存放程序當前所使用的堆棧段的段地址。堆棧是存儲器中開辟的按先進后出原則組織的一個特殊存儲區,主要用于調用子程序或執行中斷服務程序時保護斷點和現場。

ES(Extra Segment)——附加數據段寄存器。用來存放程序當前使用的附加數據段的段地址。附加數據段用來存放字符串操作時的目的字符串。

8086CPU有20條地址線,具有尋址1MB存儲空間。

8086/8088指令中給出的地址僅有16位,指針寄存器和變址寄存器也只有16位,不能尋址1MB的內存空間。

用8086/8088CPU內部一組16位段寄存器內容作為段地址,再由段寄存器左移4位形成20位的段起始地址,稱為段基地址或段基址。這樣8086/8088可尋址1MB存儲空間。

將1MB存儲空間分成若干個邏輯段,使每個邏輯段的長度為64KB

8086/8088段寄存器與提供段內移地址的寄存器之間的默認組合

3,控制寄存器

IP(Instruction Pointer)——指令指針寄存器。用來存放下一條要讀取的指令在代碼段內的偏移地址。用戶程序不能直接訪問IP。

FLAGS——標志寄存器。它是一個16位的寄存器,但只用了其中9位,這9位包括6個狀態標志位,3個控制標志位,如圖所示。

1). 狀態標志位(6位)

狀態標志位用來反映算術和邏輯運算結果的一些特征。下面分別介紹這6個狀態標志位的功能。

CF(Carry Flag)——進位標志。當進行加減運算時,若最高位發生進位或借位則CF為1,否則為0。通常用于判斷無符號數運算結果是否超出了計算機所能表示的無符號數的范圍。

PF(Parity Flag)——奇偶標志位。當指令執行結果的低8位中含有偶數個1時,PF為1,否則為0。

AF(Auxiliary Flag)——輔助進位標志位。當執行一條加法或減法運算指令時,若結果的低字節的低4位向高4位有進位或借位,則AF為1,否則為0。

ZF(Zero Flag)——零標志位。若當前的運算結果為0,則ZF為1,否則為0。

SF(Sign Flag)——符號標志位。當運算結果的最高位為1時,SF=1,否則為0。

OF(Overflow Flag)——溢出標志位。當運算結果超出了帶符號數所能表示的數值范圍,即溢出時,OF=1,否則為0。用來判斷帶符號數運算結果是否溢出。

2)控制標志位(3位)

用來控制CPU的操作,由程序設置或清除。它們是:

TF(Trap Flag)——跟蹤(陷阱)標志位。是為測試程序的方便而設置。若將TF置1,CPU處于單步工作方式。

IF(Interrupt Flag)——中斷允許標志位。是用來控制可屏蔽中斷的控制標志位。若將IF置1,表示允許CPU接受外部從INTR引腳上發來的可屏蔽中斷請求;若用CLI指令將IF清0,則禁止CPU接受可屏蔽中斷請求信號。

DF(Direction Flag)——方向標志位。若將DF置1,串操作按減地址方式進行,也就是說,從高地址開始,每操作一次地址自動遞減;否則按增地址方式進行。




四,總線周期

略略略

五,8086/8088引腳及其功能

1,8086CPU引腳
2,8086最小工作方式及引腳24-31
3,8086最大工作方式及引腳24-31

六,8088與8086引腳區別

略略略

七,8086/8088存儲器和I/O組織

詳情參見我的博客:
https://blog.csdn.net/rdgfdd/article/details/79797007

總結

以上是生活随笔為你收集整理的第三章-80x86微处理器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。