第二章-80X86計(jì)算機(jī)組織-課件_第1頁
第二章-80X86計(jì)算機(jī)組織-課件_第2頁
第二章-80X86計(jì)算機(jī)組織-課件_第3頁
第二章-80X86計(jì)算機(jī)組織-課件_第4頁
第二章-80X86計(jì)算機(jī)組織-課件_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第2章80x86計(jì)算機(jī)組織2.180X86微處理器2.2基于微處理器的計(jì)算機(jī)系統(tǒng)構(gòu)成2.3中央處理機(jī)2.4存儲器2.5外部設(shè)備2.180X86計(jì)算機(jī)的基本結(jié)構(gòu)微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)主要是由三部分組成,它們是:中央處理器CPU、存儲器、輸入/輸出設(shè)備,如圖1所示。圖1計(jì)算機(jī)的基本結(jié)構(gòu)

2.1.1中央處理器

中央處理器又稱為微處理器,內(nèi)部由運(yùn)算器、控制器和寄存器三部分組成。運(yùn)算器也稱為算術(shù)邏輯部件,是用來執(zhí)行指令所要求的算術(shù)運(yùn)算、邏輯運(yùn)算和數(shù)據(jù)傳送等操作??刂破魇强刂茍?zhí)行步驟;從內(nèi)存中取出指令,分析指令的操作碼,完成操作數(shù)的存取,發(fā)出相應(yīng)的控制命令等。

2.1.2總線結(jié)構(gòu)

總線負(fù)責(zé)傳送地址、數(shù)據(jù)和控制信息,因此包括:數(shù)據(jù)總線DB(DataBus)地址總線AB(AddressBus)控制總線CB(ControlBus)三類總線的主要任務(wù)是負(fù)責(zé)CPU與內(nèi)存、外存、外部設(shè)備交換信息。1.

數(shù)據(jù)總線DB

數(shù)據(jù)總線是用來傳送數(shù)據(jù)的。CPU與內(nèi)存、I/O設(shè)備之間通過數(shù)據(jù)總線傳送數(shù)據(jù),80x86系列的數(shù)據(jù)總線有8位、16位、32位和64位。2.地址總線AB

地址總線是用來傳送地址的。內(nèi)存中的每個字節(jié)都對應(yīng)著一個唯一的地址。地址總線的位數(shù)與尋址空間有著直接的關(guān)系。例如:8086/8088地址總線20根,則可訪問的地址為:220=1,048,576=1M

則8086/8088最大可用的存儲空間為1M字節(jié)。3.控制總線CB

控制總線是傳送控制信息的。

存儲器是計(jì)算機(jī)的記憶部件,包括內(nèi)存(主存)和外部存儲器(輔助存儲器),存儲器中存放的是指令和數(shù)據(jù)。存儲器由若干存儲單元構(gòu)成,存儲單元的最小單位是字節(jié)。將所有的存儲單元按順序編號,即每一個字節(jié)有一個唯一的編號,這些編號稱為存儲單元的地址(也稱為物理地址)。IBMPC機(jī)及其兼容機(jī)的存儲器系統(tǒng)結(jié)構(gòu)基本是相同的,存儲器系統(tǒng)主要分為3個主要部分:程序暫駐區(qū)(TPA)、系統(tǒng)內(nèi)存區(qū)、擴(kuò)展存儲區(qū)(XMS)2.1.3

存儲器在微機(jī)系統(tǒng)中最常用的外部設(shè)備有:鍵盤顯示器打印機(jī)外部存儲器等CPU與外部設(shè)備交換信息是通過I/O接口電路來完成的。2.1.4外部設(shè)備外部設(shè)備外部設(shè)備與主機(jī)(CPU和存儲器)的通信是通過外設(shè)接口(Interface)進(jìn)行的,每個接口包括一組寄存器。數(shù)據(jù)寄存器:存放外設(shè)和主機(jī)間傳送的數(shù)據(jù)狀態(tài)寄存器:保存外設(shè)或接口的狀態(tài)信息命令寄存器:保存CPU發(fā)給外設(shè)或接口的控制命令,外設(shè)中每個寄存器有一個端口(Port)地址,構(gòu)成一個獨(dú)立于內(nèi)存的I/O地址空間:0000H~FFFFH寄存器分為3類:通用寄存器、控制寄存器、段寄存器。如圖80X86寄存器組2.280X86CPU的寄存器

8086/8088微處理器8086/8088的主要特性:Intel8086/8088采用高速運(yùn)算性能的HMOS工藝制造,內(nèi)含29000個晶體管,封裝在標(biāo)準(zhǔn)的40引腳雙列直插式塑封管殼內(nèi)。采用兩個+5V電源供電。數(shù)據(jù)總線:8086:16位,8088:8位。地址總線:20位,其中8086的低16位與數(shù)據(jù)總線復(fù)用;8088的低8位與數(shù)據(jù)總線復(fù)用。內(nèi)存空間:20位地址線可直接尋址1MB存儲空間。尋址方式:7種基本的尋址方式,提供了靈活的操作數(shù)存取方法。

指令系統(tǒng):100條基本指令除能完成數(shù)據(jù)傳送、算數(shù)運(yùn)算、邏輯運(yùn)算、控制轉(zhuǎn)移和處理器控制功能外,內(nèi)部還設(shè)有硬件乘除法與串處理指令電路,可以對位、字節(jié)、字節(jié)串、字串、壓縮和非壓縮型BCD碼等多種數(shù)據(jù)類型進(jìn)行處理。

時鐘頻率:8088:4.7MHz;8086:5MHz;8086-2:8MHz。

中斷功能:可處理內(nèi)部軟件和外部硬件中斷,中斷源多達(dá)256個。工作模式:支持單處理器、多處理器兩種模式。8086/8088的編程結(jié)構(gòu)所謂編程結(jié)構(gòu):從程序員和使用者的角度來看的結(jié)構(gòu)。這種結(jié)構(gòu)與CPU內(nèi)部的物理結(jié)構(gòu)和實(shí)際布局有區(qū)別,8088編程結(jié)構(gòu)如下頁圖所示,從編程結(jié)構(gòu)圖中可以看到,8088分為兩個部分:1、總線接口部件BIU(BusInterfaceUnit)2、執(zhí)行部件EU(ExecutionUnit)8086CPU的功能結(jié)構(gòu)——內(nèi)部結(jié)構(gòu)組成(1)執(zhí)行單元(EU)(a)組成16位算術(shù)邏輯單元ALU;16位狀態(tài)標(biāo)志寄存器FLAG;8個16位通用寄存器組(AX,BX,CX,DX,SP,BP,SI,DI)16位數(shù)據(jù)暫存器;EU控制電路;(b)功能從BIU指令隊(duì)列中讀取指令;由EU控制電路對指令進(jìn)行譯碼分析,指出操作性質(zhì)及對象;在EU中計(jì)算出操作數(shù)的16位地址偏移量送給BIU,由BIU的∑形成20位絕對地址;將取來的操作數(shù)經(jīng)系統(tǒng)數(shù)據(jù)總線送ALU進(jìn)行指定操作;運(yùn)算結(jié)果經(jīng)內(nèi)部總線送到指定位置(a)部件4個16位段寄存器CS,DS,SS,ES;16位指令偏移地址寄存器IP;6個字節(jié)指令隊(duì)列ISQ;形成20位物理地址的加法器∑;與EU通訊的內(nèi)部寄存器;總線控制邏輯;(2)總線接口單元(b)功能:實(shí)現(xiàn)CPU與存儲器或I/O口之間的數(shù)據(jù)傳送。根據(jù)CS和IP取指令進(jìn)入指令隊(duì)列。由EU從指令隊(duì)列中取指令,并根據(jù)EU請求BIU將20位操作地址傳送給存儲器;取來操作數(shù)經(jīng)總線控制邏輯傳送到內(nèi)部EU數(shù)據(jù)總線,由EU完成內(nèi)部操作;操作結(jié)果若EU提出請求,則由BIU負(fù)責(zé)產(chǎn)生20位實(shí)際目標(biāo)地址,將結(jié)果寫入存儲器里;(2)總線接口單元寄存器結(jié)構(gòu)及操作在8086/8088CPU中,把寄存器分成四大類:數(shù)據(jù)寄存器;地址指針和變址寄存器;段基址寄存器;控制寄存器;(一)數(shù)據(jù)寄存器用來存放操作數(shù)及中間結(jié)果的通用寄存器稱為數(shù)據(jù)寄存器。16位寄存器:AX,BX,CX,DX(可以分成兩個8位的使用)8位寄存器:AH,AL,BH,BL,CH,CL,DH,DL有些存儲器有特殊功能:如AX和AL為累加器,乘法指令中專用;BX可以作為基址指針,CX為計(jì)數(shù)寄存器。AX----1)作為累加器用,在加法運(yùn)算中參與運(yùn)算,結(jié)果存于累加其中;2)所有的I/O指令都使用這一寄存器與外部設(shè)備傳送信息BX----作為通用寄存器使用,在計(jì)算存儲器地址的時候,它經(jīng)常用作基址寄存器CX----1)作為通用寄存器使用;2)常用來保存計(jì)數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作隱含的計(jì)數(shù)器DX----1)作為通用寄存器使用;2)在一些指令中,通常用它來存放數(shù)據(jù),所以又稱為數(shù)據(jù)寄存器;3)在做雙字長運(yùn)算時,將DX和AX組合在一起存放雙字長數(shù),用DX存放高位字;4)對某些I/O操作時,DX用來存放端口的地址(二)地址指針和變址寄存器指針寄存器包括堆棧指針寄存器SP(stackpointer)和基數(shù)指針寄存器BP(basepointer),變址寄存器包括源變址寄存器SI(sourceindex)和目的變址寄存器DI(destinationindex)。這4個寄存器都是16位寄存器。這些寄存器在運(yùn)算過程中也可用來存放操作數(shù)(只能以字為單位),但經(jīng)常的用途是在段內(nèi)尋址時提供偏移地址。SP和BP一般與段寄存器SS聯(lián)用,以確定堆棧段中某一存儲單元的地址,SP用以指示棧頂?shù)钠频刂?,而BP可作為堆棧區(qū)中的一個基地址,用以確定在堆棧中的操作數(shù)地址。SI和DI一般與段寄存器DS聯(lián)用,以確定數(shù)據(jù)段中某一存儲單元的地址。SI和DI具有自動增量和自動減量的功能,這一點(diǎn)使在串操作指令中用作變址非常方便,SI作為隱含的源變址和DS聯(lián)用,DI作為隱含的目的變址和ES聯(lián)用,從而達(dá)到在數(shù)據(jù)段和附加段中尋址的目的。

(三)段基址寄存器段基址寄存器用于存放4個當(dāng)前段的起始地址。4個段為:代碼段CS,數(shù)據(jù)段DS,堆棧段SS和附加段ES。1、存儲器的段8086/8088CPU對可尋址的1MB空間劃分為很多個邏輯段,每個邏輯小于64KB,段內(nèi)地址是連續(xù)的。CPU規(guī)定4個段寄存器存放當(dāng)前可尋址的段基址。CS指示當(dāng)前的代碼段;DS指示當(dāng)前的數(shù)據(jù)段;SS指示當(dāng)前的堆棧段;ES指示當(dāng)前的附加段;(三)段基址寄存器為了方便編寫程序,4個段寄存器是隱含使用的,但也允許段超越DEBUG命令的使用(1)1、輸入DEBUG運(yùn)行DEBUG程序,顯示提示符_。2、退出DEBUG命令:Q3、顯示CPU內(nèi)部所有寄存器內(nèi)容和標(biāo)志位狀態(tài):R顯示和修改標(biāo)志位狀態(tài)RF:4、匯編命令:A起始地址,若不輸入指令打回車鍵退出A命令。

5、單步命令:T=起始地址運(yùn)行指令數(shù),進(jìn)入子程序內(nèi)部。6、反匯編命令:U起始地址結(jié)束地址7、修改寄存器命令:R寄存器名8、顯示內(nèi)存命令:D起始地址結(jié)束地址DEBUG命令的使用(2)9、運(yùn)行命令:G=起始地址結(jié)束(斷點(diǎn))地址10、修改內(nèi)存命令:E起始地址,連續(xù)修改打空格鍵。打回車鍵退出E命令。11、文件命名命令:N盤號:文件名12、讀文件命令:L內(nèi)存地址13、寫文件命令:W內(nèi)存地址14、讀扇區(qū)命令:L內(nèi)存地址盤號(0--A:,1--B:)扇區(qū)號扇區(qū)數(shù)15、寫扇區(qū)命令:W內(nèi)存地址盤號扇區(qū)號扇區(qū)數(shù)16、內(nèi)存搬家命令:M起始地址結(jié)束地址目的地址

0101010000111001 + 0100010101101010 1001100110100011高位=1,SF=1,NG低8位中偶數(shù)為4個,PF=1,PE運(yùn)算結(jié)果不為0,ZF=0,NZ低4位向前有進(jìn)位,AF=1,AC最高位向前沒有進(jìn)位,CF=0,NC運(yùn)算結(jié)果溢出,OF=1,OV(五)指令指針寄存器IP1、指令指針寄存器IP

指令指針寄存器IP始終指向當(dāng)前代碼段(CS)所要取出的下一條指令的地址。每取出一個字節(jié)指令后,IP自動加1??梢杂棉D(zhuǎn)移指令、調(diào)用指令及中斷和復(fù)位等改變IP值。2.3存儲器一個存儲單元存放的信息為存儲單元的內(nèi)容字節(jié)單元內(nèi)容:地址00004H的內(nèi)容為34H,表示為(0004H)=34H。字單元內(nèi)容:多用偶地址來表示字單元的地址,字的低字節(jié)在偶地址上為偶地址,地址00004H的字單元內(nèi)容為1234H,表示為(00002H)=1234H。如下圖所示。某單元內(nèi)容的內(nèi)容:某單元的內(nèi)容為要尋找的單元地址,該地址所指的內(nèi)容為要尋找的內(nèi)容。某單元內(nèi)容的內(nèi)容

(0004H)=1234H(1234H)=FFEEH則記((0004H))=FFEEH;兩個括號表示內(nèi)容的內(nèi)容,即地址0004H單元的內(nèi)容的內(nèi)容為FFEEH。存儲單元的的內(nèi)容:一個存儲單元里面存放的有效信息。由于機(jī)器字長是16位,而字?jǐn)?shù)據(jù)必須轉(zhuǎn)換為字節(jié)數(shù)據(jù)才能存放到存儲器中。所以一個字?jǐn)?shù)據(jù)存入存儲器中占用連續(xù)的二個存儲單元:低位字節(jié)存入低地址,高位字節(jié)存入高地址。字單元的地址采用它的低地址來表示。存儲器的分段8086/8088系統(tǒng)中1MB的存儲單元按照00000H至FFFFFH來編址。但CPU的內(nèi)部寄存器都是16位的,顯然用寄存器不能直接對1M字節(jié)的內(nèi)存空間進(jìn)行尋址,為此引入了分段、物理地址和邏輯地址的概念。1)分段的實(shí)現(xiàn):

8086/8088中將1MB內(nèi)存分為若干個段(稱為邏輯段),每個段最多包含64KB。段與段之間是相互獨(dú)立的,可以分別尋址。規(guī)定每個段的首地址是一個可以被16整除的數(shù)(即段起始地址的低4位為0)。因此,可以取20位地址碼中的高16位來表示段地址。前已指出,8086/8088CPU設(shè)置了4個段寄存器(CS、DS、SS、ES)。段的位置不受任何限制,段與段之間可以是連續(xù)的,可以是間斷的,也可以是部分重疊的,甚至可以是完全重疊的。

(1)小段的概念

從0地址開始每16字節(jié)為一小段,每個小段的第一個字節(jié)的地址為小段的起始地址

對于16位地址總線,段內(nèi)存儲器小段地址如下:如:0000H,0001H,0002H,……,000EH,000FH一個小段

0010H,0011H,0012H,……,001EH,001FH

0020H,0021H,0022H,……,002EH,002FH ……

FFF0H,FFF1H,FFF2H,……,FFFEH,FFFFH其中:第一列就是每個小段的首地址。(2)每個小段首地址特征:

在二進(jìn)制表示的地址中,它的低4位二進(jìn)制一定為零!即在16進(jìn)制表示的地址中,最低位為0H在1M字節(jié)的地址空間,共有64K個小段其首地址為:二進(jìn)制數(shù)小段地址16進(jìn)制數(shù)小段地址00000000000000000000B00000H00000000000000010000B00010H……11111111111111100000BFFFE0H11111111111111110000BFFFF0H(4)邏輯地址:由段基址和段內(nèi)偏移地址組成的地址,段基址和段內(nèi)偏移地址都是16位的無符號二進(jìn)制數(shù),在程序設(shè)計(jì)時使用。存儲器管理:將程序中邏輯地址轉(zhuǎn)移為物理地址的機(jī)構(gòu)。(5)邏輯地址和物理地址的關(guān)系方法:即把段地址左移4個二進(jìn)制位再加上偏移地址值形成物理地址,寫成:物理地址=16d段地址+偏移地址每個存儲單元只有唯一的物理地址。但可由不同的段地址和不同的偏移地址組成。邏輯地址與物理地址概念如下頁圖所示。注意:1、在8088CPU的IBMPC系統(tǒng)中,存儲器首尾地址的用途固定。00000H~003FFH共1K內(nèi)存單元用于存放中斷向量。

FFFF0H~FFFFFH是存儲器底部的16個單元。系統(tǒng)加電復(fù)位時,會自動轉(zhuǎn)到FFFF0H單元執(zhí)行,而在FFFF0H處存放一條無條件轉(zhuǎn)移指令,轉(zhuǎn)向系統(tǒng)初始化程序。2、IBMPC機(jī)對段的起始地址有限制,段的起始地址一定能被16整除,即段不能從任意地址開始:必須從任一小段(paragraph)的首地址開始。8086/8088的I/O組織I/O接口電路:它就是指CPU與外部設(shè)備之間是通信的橋梁,有時簡稱為接口,接口是用于實(shí)現(xiàn)主機(jī)與外設(shè)傳輸信息的通道。端口:每個接口芯片上都有一個或幾個用于寄存信息的寄存器,為了與CPU的寄存器區(qū)別,我們稱之為端口。端口地址:和存儲單元一樣,每一個端口都有唯一確定的地址,稱為端口地址。

從編程角度看,接口內(nèi)部主要包括一個或多個CPU可以進(jìn)行讀/寫操作的寄存器,又稱為I/O端口。各I/O端口由端口地址區(qū)分。按存放信息的不同,I/O端口可分為三種類型數(shù)據(jù)端口:用于存放CPU與外設(shè)間傳送的數(shù)據(jù)信息狀態(tài)端口:用于暫存外設(shè)的狀態(tài)信息控制端口:用于存放CPU對外設(shè)或接口的控制信息,控制外設(shè)或接口的工作方式。CPU對外設(shè)輸入/輸出的控制,是通過對接口電路中各I/O端口的讀/寫操作完成。

2.480X86CPU的工作模式2.4.1實(shí)模式2.4.2保護(hù)模式

2.4.1實(shí)模式1.內(nèi)存地址的分段8086/8088地址總線20根可訪問的地址為:220=1,048,576=1M2.分段方法用16位段地址與16位段內(nèi)地址的迭加形成20位物理地址,放在16位段寄存器內(nèi)的段地址定義在任意64K字節(jié)存儲段的起始地址上,段內(nèi)地址(偏移地址)定義在64K字節(jié)存儲段內(nèi)的任意單元。地址的組合:物理地址=段地址*16D(或10H)+偏移地址,即物理地址等于2進(jìn)制的16位段地址乘以16(左移4位)加2進(jìn)制16位偏移地址。為了書寫方便一般采用16進(jìn)制表示地址和數(shù)據(jù),則物理地址等于16進(jìn)制的4位段地址乘以10H(左移1位)加16進(jìn)制4位偏移地址。

如圖2-9所示。3.物理地址、段地址、段內(nèi)地址和邏輯地址(1)物理地址:與內(nèi)存單元一一對應(yīng)的20位2進(jìn)制(或5位16進(jìn)制)表示的地址為物理地址。1MB=00000H~FFFFFH每個物理地址代表一個唯一的內(nèi)存單元。(2)段地址:將1MB的內(nèi)存空間分成長為64K字節(jié)的程序區(qū)和數(shù)據(jù)區(qū)為段,每個段用1個16位2進(jìn)制地址表示。(3)段內(nèi)地址:(偏移地址或偏移值):16位2進(jìn)制段內(nèi)地址為偏移地址。不同段內(nèi)的偏移地址是存放在不同的寄存器中.(4)邏輯地址:用段地址和偏移地址來表示內(nèi)存單元的地址為邏輯地址,兩地址之間用“:”隔開。常寫成:段地址:偏移地址。例如:物理地址為00001H邏輯地址為0000H:0001H當(dāng)物理地址為00001H時,其邏輯地址為0000H:0001H,段地址為0000H段內(nèi)地址為0001H。4.邏輯地址與物理地址的換算關(guān)系邏輯地址是段地址和偏移地址的組合表示,物理地址是段地址和偏移地址的迭加表示。物理地址=段地址*16D(或10H)+偏移地址邏輯地址=段地址:偏移地址【例2-7】設(shè)邏輯地址為1111H:2222H則物理地址為:1111H×10H+2222H=13332H表示:當(dāng)邏輯地址為1111H:2222H時物理地址為13332H假設(shè)段地址1111H為代碼段地址,則1111H存放在代碼段寄存器CS中,偏移地址2222H就放在指針寄存器IP中。保護(hù)模式下的80x8680286以上的計(jì)算機(jī)增加了物理地址空間,如80286提供了16M,80386提供了4GB的地址空間或更多的地址空間,前面介紹的在實(shí)模式下的尋址方式是由邏輯地址得到物理地址的,實(shí)模式下最大尋址空間只為1MB。在增加了地址空間的情況下,系統(tǒng)首先要解決的問題是如何尋址,因此引出了保護(hù)模式的存儲器尋址方法。同時在WINDOWS系統(tǒng)下可以提供多任務(wù)處理功能,即多個應(yīng)用程序能同時運(yùn)行,同時還要對存放在存儲器中的代碼及數(shù)據(jù)的共享和保護(hù)提供支持。1保護(hù)模式存儲器尋址機(jī)制在80286CPU以上的微處理器,既可以工作在實(shí)模式下也可以工作在保護(hù)模式下,如果要工作在保護(hù)模式下,要求程序員在程序中指定邏輯地址,機(jī)器則采用另外一種間接的方法得到相應(yīng)的物理地址。因此,對程序員編程來說,并未增加復(fù)雜性。在

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論