第2章硬件基礎(chǔ)_第1頁
第2章硬件基礎(chǔ)_第2頁
第2章硬件基礎(chǔ)_第3頁
第2章硬件基礎(chǔ)_第4頁
第2章硬件基礎(chǔ)_第5頁
已閱讀5頁,還剩81頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2.1:計算機(jī)系統(tǒng)概述2.2:微機(jī)發(fā)展概況2.3:8086/88CPU的編程結(jié)構(gòu)2.4:內(nèi)存地址組織及存放次序2.5:接口、端口、端口地址第二章微機(jī)硬件基礎(chǔ)計算機(jī)系統(tǒng)由硬件系統(tǒng)和軟件系統(tǒng)構(gòu)成,硬件是我們可以看得見摸得著的物理電子設(shè)備,軟件是運(yùn)行于計算機(jī)硬件基礎(chǔ)上的程序和數(shù)據(jù)的集合。它們之間的關(guān)系是:硬件是基礎(chǔ),軟件是發(fā)展;硬件和軟件相輔相成缺一不可;硬件和軟件互相促進(jìn)發(fā)展。2.1計算機(jī)系統(tǒng)概述

微型計算機(jī)系統(tǒng)的三個層次微處理器(Microprocessor)微型計算機(jī)(Microcomputer)微型計算機(jī)系統(tǒng)(MicrocomputerSystem)微處理器微處理器(μP,MP-microprocessor):由一片或幾片大規(guī)模集成電路組成的,具有運(yùn)算和控制功能的中央處理器,也稱為微處理機(jī)。主要包括:運(yùn)算器ALU(ArithmeticLogicUnit)實現(xiàn)算術(shù)邏輯運(yùn)算,由加法器和一些輔助邏輯電路組成

控制器CU(ControlUnit)指令流控制時序控制,產(chǎn)生節(jié)拍定時信號指令譯碼和操作控制寄存器組Registers存放臨時數(shù)據(jù)、運(yùn)算中間結(jié)果、運(yùn)算特征、操作數(shù)地址大、中、小型中央處理器(CPU-CentralProcessingUnit),微處理器

(MPU-MicroprocessingUnit)微型計算機(jī)以微處理器為核心,配上存儲器、輸入/輸出(I/O)接口電路及系統(tǒng)總線等部件,就構(gòu)成了微型計算機(jī)(microcomputer)

。總線結(jié)構(gòu):系統(tǒng)中各部件均掛在總線上,可使微機(jī)系統(tǒng)的結(jié)構(gòu)比較簡單,易于維護(hù),并有更大的靈活性和更好的可擴(kuò)展性。總線結(jié)構(gòu):數(shù)據(jù)總線、地址總線、控制總線微型計算機(jī)的組成由CPU、存儲器、I/O接口電路、總線組成微型計算機(jī)的概念結(jié)構(gòu)存儲器I/O接口輸入設(shè)備I/O接口地址總線AB輸出設(shè)備CPU數(shù)據(jù)總線DB控制總線CBI/O接口CB:ControlBusAB:AddressBusDB:DataBus各部件通過總線連接總線—連接多個功能部件的一組公共信號線馮﹒諾依曼計算機(jī)的工作原理的核心是:“存儲程序”+“程序控制”要點:1.以二進(jìn)制表示數(shù)據(jù)和指令(程序)2.先將程序存入存儲器中,再由控制器自動讀取并執(zhí)行輸入設(shè)備控制器輸出設(shè)備

CPU

存儲器運(yùn)算器ALU微型機(jī)工作原理9微型計算機(jī)系統(tǒng)(microcomputersystem):簡稱μCS或MCS,指以微型計算機(jī)為中心,配上相應(yīng)的外圍設(shè)備、電源和輔助電路(通稱硬件),以及指揮微型機(jī)算機(jī)工作的系統(tǒng)軟件所構(gòu)成的系統(tǒng)。微型計算機(jī)系統(tǒng)10微型計算機(jī)如果不配有軟件,通常稱為裸機(jī)計算機(jī)軟件通常分為兩大類:系統(tǒng)軟件和用戶軟件。系統(tǒng)軟件是指不需要用戶干預(yù)的能生成、準(zhǔn)備和執(zhí)行其他程序所需的一組程序。用戶軟件是各用戶為解題或?qū)崿F(xiàn)檢測與實時控制等不同任務(wù)所編制的應(yīng)用程序,它也稱為應(yīng)用軟件。軟件的分級結(jié)構(gòu)

微型計算機(jī)系統(tǒng)組成(一)運(yùn)算器

控制器寄存器組

內(nèi)存儲器總線輸入輸出接口電路外部設(shè)備軟件微處理器微型計算機(jī)微型計算機(jī)系統(tǒng)12微型計算機(jī)系統(tǒng)(MCS)硬件軟件微型計算機(jī)(MC)外圍設(shè)備電源系統(tǒng)軟件用戶(應(yīng)用)軟件外部設(shè)備過程控制I/O通道A/D,D/A轉(zhuǎn)換器開關(guān)量,信號指示I/O器鍵盤/顯示器,光電圖形輸入器,語音識別與合成器打印機(jī),繪圖儀,CRT終端外存儲器:磁帶,磁盤,光盤微處理器(MP)內(nèi)存儲器輸入輸出(I/O)接口電路系統(tǒng)總線地址總線(AB)數(shù)據(jù)總線(DB)控制總線(CB)并行串行ROM,PROM,EPROM,EEPROMRAM算術(shù)邏輯單元(ALU)控制單元(CU)寄存器陣列(RA)微型計算機(jī)系統(tǒng)組成(二)計算機(jī)發(fā)展史上有四個重要的年份:

1946年,第一臺電子計算機(jī)ENIAC誕生;

1969年,Internet的雛形APARNET誕生;

1971年,第一塊微處理器芯片Intel4004誕生;

1981年,第一臺IBM

PC微機(jī)誕生。以半導(dǎo)體集成電路為核心的微電子技術(shù)的進(jìn)步,使計算機(jī)向著巨型化(性能上)、微型化(體積上)、多媒體化、網(wǎng)絡(luò)化、智能化、低成本化的方向迅猛發(fā)展。自1946年第一臺電子計算機(jī)問世以來,計算機(jī)的發(fā)展經(jīng)歷了電子管、晶體管、集成電路、大規(guī)模集成電路和超大規(guī)模集成電路共五代,通常按其體積、性能和價格可分為巨型機(jī)、大型機(jī)、中型機(jī)、小型機(jī)和微型機(jī)一類。由于微機(jī)具有體積小、重量輕、功耗低、價格便宜、結(jié)構(gòu)靈活、軟件豐富等特點,從而得到了廣泛的普及和應(yīng)用。2.2微機(jī)發(fā)展概況1.位和字節(jié)位(bit)是計算機(jī)所能表示的最小最基本的數(shù)據(jù)單位,它指的是取值只能為0或1的一個二進(jìn)制數(shù)值位。位作為單位時記作b字節(jié)(byte)由8個位二進(jìn)制位組成,通常用作計算存儲容量的單位。字節(jié)作為單位時記作BK是kelo的縮寫,1K=1024=210;M是mega的縮寫,1M=1024K=220;G是Giga的縮寫,1G=1024M=230;T是tera的縮寫,1T=1024G=240。2.2.1微型計算機(jī)的常用術(shù)語與性能指標(biāo)2.字長字長是微處理器一次可以直接處理的二進(jìn)制數(shù)碼的位數(shù),它通常取決于微處理器內(nèi)部通用寄存器的位數(shù)和數(shù)據(jù)總線的寬度。微處理器的字長有4位、8位、16位和32位等等。8088稱為準(zhǔn)16位微處理器,而80386SX稱為準(zhǔn)32位微處理器。3.主頻主頻也叫做時鐘頻率,用來表示微處理器的運(yùn)行速度,主頻越高表明微處理器運(yùn)行越快,主頻的單位是MHz。早期微處理器的主頻與外部總線的頻率相同,從80486DX2開始,主頻=外部總線頻率倍頻系數(shù)外部總線頻率頻率通常簡稱為外頻,它的單位也是MHz,外頻越高說明微處理器與系統(tǒng)內(nèi)存數(shù)據(jù)交換的速度越快,因而微型計算機(jī)的運(yùn)行速度也越快。倍頻系數(shù)是微處理器的主頻與外頻之間的相對比例系數(shù)。通過提高外頻或倍頻系數(shù),可以使微處理器工作在比標(biāo)稱主頻更高的時鐘頻率上,這就是所謂的超頻。4.MIPSMIPS是MillionsofInstructionPerSecond的縮寫,用來表示微處理器的性能,意思是每秒鐘能執(zhí)行多少百萬條指令由于執(zhí)行不同類型的指令所需時間長度不同,所以MIPS通常是根據(jù)不同指令出現(xiàn)的頻度乘上不同的系數(shù)求得的統(tǒng)計平均值。主頻為25MHz的80486其性能大約是20MIPS,主頻為400MHz的PentiumII的性能為832MIPS5.iCOMP指數(shù)iCOMP指數(shù)是Intel公司為評價其32位微處理器的性能而編制的一種指標(biāo),它是根據(jù)微處理器的各種性能指標(biāo)在微型計算機(jī)中的重要性來確定的,iCOMP指數(shù)包含的指標(biāo)有整數(shù)數(shù)學(xué)計算、浮點數(shù)學(xué)計算、圖形處理以及視頻處理等,這些指標(biāo)的重要性與它們在應(yīng)用軟件中出現(xiàn)的頻度有關(guān),所以iCOMP指數(shù)說明了微處理器在微型計算機(jī)中應(yīng)用的綜合性能。6.微處理器的生產(chǎn)工藝指在硅材料上生產(chǎn)微處理器時內(nèi)部各元器件間連接線的寬度,一般以m為單位,數(shù)值越小,生產(chǎn)工藝越先進(jìn),微處理器的功耗和發(fā)熱量越小。目前微處理器的生產(chǎn)工藝已經(jīng)達(dá)到45nm

。7.微處理器的集成度指微處理器芯片上集成的晶體管的密度。最早Intel4004的集成度為2250個晶體管,PentiumIII的集成度已經(jīng)達(dá)到750萬個晶體管以上,集成度提高了3000多倍。年份字長(bits)型號線寬(m)晶體管數(shù)(萬個)時鐘頻率(MHz)速度(MIPS)197119724840048008500.20.3<10.05197488080200.52-40.519781982168086/8088802862-32.9134.77-108-20<11-2198519893280386804861-227.512012-3325-666-1220-40199332Pentium0.6-0.833060-200100-2001995199619971999200132P/ProP/MMXPIIPIIIP40.60.60.35.25-.13.18-.135504507508503000133-200166-233233-450450-12001300-3000>300200264Itanium0.08-800->3000200664Core0.065Cache:2~4MB--200864Core?i745nmCache:8MB2.93GHz-(以IntelCPU為例)

2.2.2微機(jī)的發(fā)展史1971-1973:代表產(chǎn)品為Intel

4004及4040。字長4位,集成度2300管/片,時鐘頻率1MHZ。1973-1977:代表產(chǎn)品有Intel

8080/8085、ZilogZ80、Motorola6800、Rockwell6502。字長8位,地址線16根,集成度1萬管/片,時鐘頻率2-4MHZ。主要微機(jī)有APPLE

II、TRS-80等。1978-1980:代表產(chǎn)品有Intel

8086/8088、Motorola68000。字長16位,地址線20根,集成度2-6萬管/片,時鐘頻率4-8MHZ。主要微機(jī)有IBM

PC、IBM

PC/XT、我國的0520系列等。1981-1984:代表產(chǎn)品有Intel

80286、Motorola68010。字長16位,地址線24根,集成度約13萬管/片,時鐘頻率6-20MHZ。主要微機(jī)有IBM

PC/AT、我國的0530系列等。1985-1989:代表產(chǎn)品有Intel

80386、Motorola68020。字長32位,地址線32根,集成度15-50萬管/片,時鐘頻率16-40MHZ。主要微機(jī)有AST

386、COMPAQ

386、我國的長城386等,從80386CPU開始集成高速緩存Cache。以字長和微處理器型號為標(biāo)準(zhǔn)1989-1992:代表產(chǎn)品有Intel及AMD、Cyrix的80486、IBMPowerPC601。字長32位,地址線32根,集成度120萬管/片,時鐘頻率33-100MHZ。主要微機(jī)有AST

486、COMPAQ

486、我國的金長城、聯(lián)想486等,從80486CPU開始集成數(shù)學(xué)協(xié)處理器NPU。1993-1994:代表產(chǎn)品有Intel的Pentium(奔騰)及AMD、Cyrix的5x86及K5、M系列、IBMPowerPC604、DECAlpha21064,集成度350萬管/片,時鐘頻率50-166MHZ。主要微機(jī)的廠家有COMPAQ、DELL、聯(lián)想、長城等。1995年之后,Intel公司不斷推出新品PentiumPro(550萬管/片)、Pentium

MMX、Pentium

II(750萬管/片)、Celeron(賽揚(yáng))、Celeron

A、Pentium

III、CeleronII、Pentium

4(0.13、0.18um(微米)的光刻技術(shù),1.3GHZ-2.2GHZ)、P4

Celeron、Xeon(至強(qiáng)、內(nèi)外均為64位,主要用于服務(wù)器),AMD公司也相繼推出了K6、K6-2、K6

III、Duron毒龍、Athlon速龍、AthlonXP等。字長大都還是32位,數(shù)據(jù)通道64位,地址線32根,集成度更高,速度更快。近年來,Intel和AMD的CPU競爭越來越激烈,性能/價格比不斷提高。主要微機(jī)的廠家有DELL、HP、聯(lián)想、北大方正、清華同方等。第1代:4位和低檔8位微機(jī)4004→4040→8008第2代:中高檔8位微機(jī)ZilogZ80、Intel8080/8085、M6800,Apple-II微機(jī)第3代:16位微機(jī)8086→8088→80286,IBMPC系列機(jī)

微型計算機(jī)的發(fā)展Intel8008Motorola6800Intel8086Intel80286

微型計算機(jī)的發(fā)展(續(xù))第4代:32位微機(jī)80386→80486→Pentium→PentiumII→PentiumIII→Pentium432位PC機(jī)、Macintosh機(jī)、PS/2機(jī)第5代:64位微機(jī)Itanium、64位RISC微處理器芯片微機(jī)服務(wù)器、工程工作站、圖形工作站Intel80386Intel80486IntelPentiumIVPentium數(shù)據(jù)總線寬度從4位上升到64位。集成度不斷提高,線寬已縮小到45納米。主頻不斷上升,最高已達(dá)3.4GHZ(2005年4月)。高度集成,將CPU、NPU及CACHE等集成在一塊芯片內(nèi)。采用超標(biāo)量結(jié)構(gòu)的多路執(zhí)行流水線技術(shù)、分支預(yù)測技術(shù)、數(shù)據(jù)和代碼二級高速緩存技術(shù)、指令動態(tài)執(zhí)行技術(shù)等新技術(shù)。性能越來越高,價位越來越低。體積越來越小,筆記本電腦、掌上電腦越來越流行。網(wǎng)絡(luò)化、多媒體化及智能化。配置電源管理功能,趨于綠色電腦。2.2.3

微機(jī)的發(fā)展特點

人們可以從不同的角度對微機(jī)進(jìn)行分類,典型的主要有以下幾種分類方法。按微處理器的字長分為4、8、16、32、64位機(jī);按CPU型號分為186、286、386、486、P、PII、PIII、P4、CE、CEA、CEII、P4Ce、MII、MIII、K6、K6-2、K6-23D_Now、Duron、Athlon等;按結(jié)構(gòu)分為單片機(jī)、單板機(jī)、PC機(jī);按體積和性能分為臺式機(jī)、筆記本電腦、掌上電腦;按共享特性分為單用戶單任務(wù)型、單用戶多任務(wù)型、多用戶型。2.2.4微機(jī)的分類1、單片機(jī):又稱單片微控制器,它不是完成某一個邏輯功能的芯片,而是把一個計算機(jī)系統(tǒng)集成到一個芯片上。概括的講:它主要是將微處理器、部分存儲器、輸入輸出接口都集成在一塊集成電路芯片上,一塊芯片就成了一臺計算機(jī)。2、單板機(jī):將計算機(jī)的各個部分都組裝在一塊印制電路板上,包括微處理器/存儲器/輸入輸出接口,還有簡單的七段發(fā)光二極管顯示器、小鍵盤、插座等。功能比單片機(jī)強(qiáng),適于進(jìn)行生產(chǎn)過程的控制??梢灾苯釉趯嶒灠迳喜僮鳎m用于教學(xué)。3、PC機(jī)(PersonalComputer):面向個人單獨使用的一類微機(jī),實現(xiàn)各種計算、數(shù)據(jù)處理及信息管理等。2.2.5微機(jī)的應(yīng)用領(lǐng)域

計算機(jī)應(yīng)用通常分成如下各個領(lǐng)域科學(xué)計算,數(shù)據(jù)處理,實時控制計算機(jī)輔助設(shè)計,人工智能,……由于微型計算機(jī)具有如下特點體積小、價格低工作可靠、使用方便、通用性強(qiáng)……所以,可以分為兩個主要應(yīng)用方向

微型計算機(jī)的應(yīng)用用于數(shù)值計算、數(shù)據(jù)處理及信息管理方向通用微機(jī),例如:PC微機(jī)功能越強(qiáng)越好、使用越方便越好用于過程控制及嵌入應(yīng)用方向?qū)S梦C(jī),例如:工控機(jī)、單片機(jī)、數(shù)字信號處理器可靠性高、實時性強(qiáng)程序相對簡單、處理數(shù)據(jù)量小2.38088/86CPU的編程結(jié)構(gòu)

2.3.18086/88CPU的內(nèi)部結(jié)構(gòu)編程結(jié)構(gòu)從程序員或使用者角度看到的結(jié)構(gòu)與CPU內(nèi)部物理結(jié)構(gòu)不同。8086編程結(jié)構(gòu)從功能上分為兩部分:總線接口單元(BusInterfaceUnit,BIU)執(zhí)行單元(ExecuteUnit,EU)“指令流水”是一種實現(xiàn)多條指令重疊執(zhí)行的重要技術(shù)。1990年以后出現(xiàn)的處理器,無論是RISC(精簡指令集計算機(jī))還是CISC(復(fù)雜指令集計算機(jī)),無一不采用“指令流水”技術(shù)。CPU執(zhí)行指令的過程,可具體分為如下六個步驟:1.取指(fetch);2.譯碼(decoding);3.計算有效地址(EA:EffectiveAddress);4.取操作數(shù);5.執(zhí)行6.存儲運(yùn)算結(jié)果概括的說,可分為“取指令”和“執(zhí)行指令”兩個步驟。早期的計算機(jī)將這兩步采用先后輪流動作(串行),CPU效率較低。在流水線方式下,BIU與EU同時動作(并行)完成指令周期,CPU效率高。

取指1取指2取指3執(zhí)行1執(zhí)行2執(zhí)行3取指1執(zhí)行1取指2取指3執(zhí)行2執(zhí)行3取指4?

?

?

?

?

??

?

?

?

?

?BIUEU為了使取指和分析執(zhí)行可并行處理、提高CPU的執(zhí)行效率,8088/86CPU由總線接口單元BIU(BusInterfaceUnit)和執(zhí)行單元EU(ExecutionUnit)兩大模塊組成。圖2.38086/88CPU的內(nèi)部結(jié)構(gòu)圖8088的內(nèi)部結(jié)構(gòu)1234內(nèi)部暫存器

IP

ES

SS

DS

CS總線控制電路外部總線EU控制電路∑ALU標(biāo)志寄存器

AHAL

BHBLCHCL

DHDL

SP

BP

SI

DI通用寄存器地址加法器指令隊列執(zhí)行單元(EU)總線接口單元(BIU)16位20位8位8位返回8086的內(nèi)部結(jié)構(gòu)圖總線接口單元BIU(BusInterfaceUnit)

CPU與外部(存儲器、I/O)的接口負(fù)責(zé)完成CPU與存儲器或I/O設(shè)備之間的數(shù)據(jù)傳送功能:地址形成(邏輯地址物理地址)總線控制取指令(CS:IP)、指令排隊讀寫操作數(shù)指令執(zhí)行單元EU(ExecutionUnit)負(fù)責(zé)全部指令的譯碼和執(zhí)行向BIU提供數(shù)據(jù)和地址(EA)管理寄存器及標(biāo)志

4個16位段地址寄存器(SR)16位指令指針寄存器

IP(InstructionPointer)指令隊列緩沖器

20位地址加法器總線控制邏輯總線接口單元組成:執(zhí)行單元組成:EU控制電路(包括ID指令譯碼器)

16位算術(shù)邏輯單元(ALU)16位標(biāo)志寄存器FR(PSW)通用寄存器組(UR)8086內(nèi)部寄存器結(jié)構(gòu)共有13個16位寄存器和1個只用了9位的16位標(biāo)志寄存器。(共14個16位寄存器)2.3.28088/86CPU內(nèi)部的寄存器

其中,四個通用數(shù)據(jù)寄存器AX、BX、CX、DX可分別一分為二,分為4個高8位寄存器AH、BH、CH、DH和4個低8位寄存器AL、BL、CL、DL,這樣也就有8個8位的通用數(shù)據(jù)寄存器。數(shù)據(jù)通用地址寄存器(PSW)專用寄存器數(shù)據(jù)寄存器

4個16位:AX,BX,CX,DX

8個8位:AH,AL;BH,BL;CH,CL;DH,DL

多數(shù)情況下,用于算術(shù)運(yùn)算或邏輯運(yùn)算指令中。

有些指令中,有特定的用途。通用寄存器(一)寄存器操作AX字乘,字除,字I/O,串操作AL字節(jié)乘,字節(jié)除,字節(jié)I/O,查表轉(zhuǎn)換,十進(jìn)制運(yùn)算AH字節(jié)乘,字節(jié)除,中斷調(diào)用BX查表轉(zhuǎn)換CX數(shù)據(jù)串操作,循環(huán)CL移位,循環(huán)移位DX字乘,字除,間接I/O數(shù)據(jù)寄存器的隱含使用指針寄存器(16位,存放偏移地址)

堆棧指針寄存器SP和基址指針寄存器BP。當(dāng)前堆棧段中數(shù)據(jù)所在的地址。SP(StackPointer):給出棧頂?shù)钠频刂罚ㄈ霔:统鰲V噶顣r)。BP(BasePointer):存放位于堆棧段中的數(shù)據(jù)區(qū)基地址的偏移地址。通用寄存器(二)源變址寄存器SI和目的變址寄存器DI。存放當(dāng)前數(shù)據(jù)段的偏移地址。SI(SourceIndex):源操作數(shù)的偏移地址。DI(DestinationIndex):目的操作數(shù)的偏移地址。變址寄存器(16位,存放偏移地址)通用寄存器(三)常用于串操作指令中,比如:串拷貝、串比較等4個16位段寄存器,8086指令可直接訪問。CS(CodeSegment):代碼段寄存器(代碼段),用于存放正在或正待執(zhí)行的程序段的起始地址的高16位二進(jìn)制數(shù)據(jù),即程序段的段地址。SS(StackSegment):堆棧數(shù)據(jù)段寄存器(堆棧段),用于存放正在或正待處理的堆棧數(shù)據(jù)段的起始地址的高16位二進(jìn)制數(shù)據(jù),即堆棧數(shù)據(jù)段的段地址。DS(DataSegment):數(shù)據(jù)段寄存器(數(shù)據(jù)段),用于存放正在或正待處理的一般數(shù)據(jù)段的起始地址的高16位二進(jìn)制數(shù)據(jù),即一般數(shù)據(jù)段的段地址。ES(ExtraSegment):附加數(shù)據(jù)段寄存器(附加段),用于存放正在或正待處理的附加數(shù)據(jù)段的起始地址的高16位二進(jìn)制數(shù)據(jù),即附加數(shù)據(jù)段的段地址。段寄存器是為實現(xiàn)“段加偏移”分段尋址而設(shè)置的。段寄存器指令指針寄存器IP和標(biāo)志寄存器FRIP(Instructionpointer)指令指針,也就是程序計數(shù)器(PC)。它的內(nèi)容始終是下一條待執(zhí)行指令的起始偏移地址,與CS一起形成下一條待執(zhí)行指令的起始物理地址。CS:IP的作用是控制程序的執(zhí)行流程。IP一般會自動加1(邏輯加1、實際隨指令長度變化)移向下一條指令實現(xiàn)順序執(zhí)行;若通過指令修改CS或IP的值,則可實現(xiàn)程序的轉(zhuǎn)移執(zhí)行。專用寄存器8086標(biāo)志寄存器FR為16位(PSW),用了其中9位。6個狀態(tài)標(biāo)志位:CF,PF,AF,ZF,SF,OF3個控制標(biāo)志位:DF,IF,TFOFDFIFTFSFZFAFPFCF07815FLFH24691011溢出標(biāo)志方向標(biāo)志中斷允許標(biāo)志跟蹤標(biāo)志進(jìn)位標(biāo)志奇偶標(biāo)志輔助進(jìn)位標(biāo)志零標(biāo)志符號標(biāo)志標(biāo)志寄存器(一)狀態(tài)標(biāo)志位:反映算術(shù)或邏輯運(yùn)算后結(jié)果狀態(tài)。CF(CarryFlag):進(jìn)位/借位標(biāo)志(無符號數(shù)的溢出標(biāo)志),D0位。執(zhí)行結(jié)果的最高位向更高位產(chǎn)生了一個進(jìn)位或借位,CF=1(同時也代表無符號數(shù)溢出);無進(jìn)位或借位,CF=0(也代表無符號數(shù)未溢出)。PF(ParityFlag):奇偶校驗標(biāo)志,D2位。執(zhí)行結(jié)果的低8位中有偶數(shù)個“1”時,PF=1;否則PF=0。機(jī)器中傳遞信息時,對產(chǎn)生的代碼出錯情況提供檢測條件。標(biāo)志寄存器(二)AF(AuxiliaryFlag):輔助進(jìn)位標(biāo)志,D4位。執(zhí)行結(jié)果的低4位向高4位有進(jìn)位或借位時,AF=1;否則AF=0。一般用在BCD碼運(yùn)算中。ZF(ZeroFlag):零標(biāo)志,D6位。如運(yùn)算結(jié)果為零,ZF=1;如運(yùn)算結(jié)果不為零,ZF=0。標(biāo)志寄存器(三)SF(SignFlag):符號標(biāo)志,D7位。如運(yùn)算結(jié)果為負(fù)數(shù),SF=1;如運(yùn)算結(jié)果為正數(shù),SF=0。OF(OverflowFlag):有符號數(shù)的溢出標(biāo)志,D11位。如帶符號數(shù)在進(jìn)行算術(shù)運(yùn)算時產(chǎn)生了溢出,OF=1;如無溢出,OF=0。溢出表示運(yùn)算結(jié)果已經(jīng)超出有符號能夠表示的數(shù)值范圍。溢出時,將造成運(yùn)算錯誤。

標(biāo)志寄存器(四)例如:3AH+7CH=B6H就是58+124=182(已經(jīng)超出-128~+127范圍),產(chǎn)生溢出。而補(bǔ)碼B6H的真值是-74,顯然運(yùn)算結(jié)果不正確。判斷溢出的方法V=D7CD6CV=1,表示有溢出;V=0,表示無溢出根據(jù)參加運(yùn)算的兩個數(shù)符號及運(yùn)算結(jié)果符號判斷;利用雙進(jìn)位狀態(tài)來判斷,即符號位相加的進(jìn)位狀態(tài)數(shù)值部分的最高位相加的進(jìn)位狀態(tài)。出現(xiàn)以下四種情況之一:正加正得負(fù),正減負(fù)得負(fù),負(fù)加負(fù)得正,負(fù)減正得正。例2.1:58H+3CH=94H

SF=1,PF=0,ZF=0,OF=1,CF=0,AF=1例2.2:0039H-FCE8H=0351H

SF=0,PF=0,ZF=0,OF=0,CF=1,AF=0例2.3:35H+CBH=00H

SF=0,PF=1,ZF=1,OF=0,CF=1,AF=1標(biāo)志位填充舉例例2.4:若CPU執(zhí)行5439H+476AH加法運(yùn)算指令:那么,指令執(zhí)行后有:SF=1,ZF=0,PF=1,AF=1,CF=0,OF=10101010000111001B0100011101101010B1001101110100011B+例2.5:若CPU執(zhí)行543AH-FE00H減法運(yùn)算指令;那么,指令執(zhí)行后有:SF=0,ZF=0,PF=1,AF=0,CF=1,OF=00101010000111010B1111111000000000B0101011000111010B-控制標(biāo)志位:控制CPU的操作,由程序設(shè)置或清除。DF(DirectionFlag):方向標(biāo)志,D10位??刂茢?shù)據(jù)串操作指令的步進(jìn)方向。若用指令STD將DF=1,數(shù)據(jù)串操作過程中地址自動遞減;若用指令CLD將DF=0,則地址自動遞增。標(biāo)志寄存器(五)IF(InterruptFlag):中斷允許標(biāo)志,D9位。控制可屏蔽中斷。若用指令STI將IF=1,允許接受外部從INTR引腳發(fā)來的可屏蔽中斷請求;若用指令CLI將IF=0,禁止接受外部發(fā)來的可屏蔽中斷請求。

IF的狀態(tài)不影響非屏蔽中斷(NMI)請求,也不影響CPU響應(yīng)內(nèi)部的中斷請求。標(biāo)志寄存器(六)

TF(TrapFlag):跟蹤(陷阱)標(biāo)志,D8位。為方便調(diào)試程序而設(shè)置的。若TF=1,CPU處于單步工作方式;若TF=0,正常執(zhí)行程序。標(biāo)志寄存器(七)一.存儲器地址空間和數(shù)據(jù)存儲格式

8086/8088的存儲器都是以字節(jié)(8位)為單位組織的。它們具有20條地址總線,所以可尋址的存儲器地址空間容量為(約1M)字節(jié)。每個字節(jié)對應(yīng)一個唯一的地址,地址范圍為0~-1(用16進(jìn)制表示為00000~FFFFFH),如下圖所示。2.4

內(nèi)存地址組織及存放次序存儲器二進(jìn)制地址十六進(jìn)制地址0000000000000000000000000000010000200003000000000000000000010000000000000000001100000000000000000010FFFFEFFFFF1111111111111111111111111111111111111110≈≈……存儲器內(nèi)兩個連續(xù)的字節(jié),定義為一個字,一個字中的每個字節(jié),都有一個字節(jié)地址。字的地址指低字節(jié)的地址。每個字的低字節(jié)(低8位)存放在低地址中,高字節(jié)(高8位)存放在高地址中。各位的編號方法是最低位(LSB)為位0,一個字節(jié)中,最高位(MAS)編號為位7;一個字中最高位的編號為位15。這些約定如下圖所示:15

14

13

12

11

10

9

8

7

6

5

4

3

2

10

7

6

5

4

3

2

10

7

6

54

3

2

10(高字節(jié))(低字節(jié))地址=N+1字地址地址=N字?jǐn)?shù)據(jù)在存儲器中存放的格式如圖所示:字單元的地址一個字單元一個字節(jié)單元

高字節(jié)低字節(jié)D15~D8D7~D0字?jǐn)?shù)據(jù)在存儲器中存放格式示意圖例如:(10000H)=12H,(10001H)=34H,(10002H)=56H,(10003H)=78H,按字讀則(10000H)=3412H,按雙字讀則(10000H)=78563412H。

8086/8088允許字從任何地址開始。字的地址是偶地址時,稱字的存儲是對準(zhǔn)的,若字的地址是奇地址時,則稱字的存儲是未對準(zhǔn)的。

8086CPU數(shù)據(jù)總線16位,對于訪問(讀或?qū)懀┳止?jié)的指令,需要一個總線周期。對于訪問一個偶地址的字的指令,也是需要一個總線周期。而對于訪問一個奇地址的字的指令,則需要兩個總線周期(CPU自動完成)。

8088CPU數(shù)據(jù)總線8位,無論是字,還是字節(jié)數(shù)據(jù)存取操作,也無論是偶地址的字,還是奇地址的字,每一個總線周期只能完成一個字節(jié)的數(shù)據(jù)存取操作。對字?jǐn)?shù)據(jù)所組成的連續(xù)兩個總線周期是由CPU自動完成的。二.存儲器的分段和物理地址的形成1.為什么要分段?

8086/8088CPU有20條地址線(A19∽A0),能尋址存貯空間為=1MB,而在8088/8086CPU內(nèi)部能向存貯器提供地址碼的地址寄存器,均為16位,用16位地址寄存器給外部存貯器提供地址,只能提供=64K個地址,顯然,對1MB地址尋址不完。

為了使8088/8086CPU能尋址到存貯器1MB空間中任何一個單元,8088/8086巧妙地采用了地址分段方法(將1MB空間分成若干個邏輯段),從而將尋址范圍擴(kuò)大到了1MB。存儲器分段高地址低地址段基址段基址段基址段基址最大64KB段i-1段i段i+11MB的存貯空間中,每個存貯單元的實際地址編碼稱為該單元的物理地址(用PA表示)。2.分段各邏輯段的起始地址必須能被16整除,即一個段的起始地址(20位物理地址)的低4位二進(jìn)制碼必須是0。把1MB的存貯空間劃分成若干個邏輯段,每段最多64KB。系統(tǒng)內(nèi)用于存放段地址的寄存器只有16位,無法存放20位的段起始地址信息,既然段的起始地址低4位一定為0,所以干脆就不予保存,也就是說段寄存器中保存的段地址為該段的段的起始地址的高16位(也稱為段基址),段的起始地址則為段地址×16(×10H)段內(nèi)的每個存貯單元,可以用相對于本段的起始地址的偏移量來表示,這個偏移量稱為段內(nèi)偏移地址,也稱為有效地址(EA)。段內(nèi)偏移地址也用16位二進(jìn)制編碼表示.所以,在一個段內(nèi)有=64K個偏移地址(即一個段最大為64KB)。?問題1、8086最少可以分為多少個段?2、8086最多可以分為多少個段?3、下列地址哪些可能是一個段的開始地址:134546H,23440H,67828H,1FF30H注意:段和段之間可以連續(xù),可以不連續(xù),也可以重疊!

把1MB的存貯空間分成若干個邏輯段以后,對一個段內(nèi)的任意存貯單元,都可以用兩部分地址來描述,一部分地址為段地址(段基址),另一部分為段內(nèi)偏移地址(有效地址EA),段地址和段內(nèi)偏移地址都是無符號的16位二進(jìn)制數(shù),常用4位十六進(jìn)制數(shù)表示。這種方法表示的存貯器單元的地址稱為邏輯地址。3.物理地址(PA)的形成邏輯地址的表示格式為:段地址:偏移地址已知某存儲單元的邏輯地址,怎樣求該單元的物理地址PA:

物理地址=段地址10H+段內(nèi)偏移地址

8086/8088CPU中的BIU單元的地址加法器∑用來完成物理地址的計算,其計算方法如圖所示。∑物理地址的形成19016位段基址16位段內(nèi)偏移地址16位段基址000020位物理地址19015段寄存器

015EA0例1:某單元的邏輯地址為4B09H:5678H,則該存儲單元的物理地址為:物理地址(PA)=段地址10H+EA

=4B09H10H+5678H=4B090H+5678H=50708H物理地址計算舉例段地址:段內(nèi)偏移地址…………XXXXXHXXXXH:XXXXH邏輯地址20位物理地址注意:存儲單元的物理地址唯一,但邏輯地址可以有多個!74//////////////0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000FH0010H0011H0012H0013H0014H0015HFFFEHFFFFHM偏移量實際地址11230H11231H11232H1123EH1123FH11240H11241H11242H11243H11244H11245H2122EH2122FH段地址段地址15H1123H1124H05H例如:如右圖,物理地址為11245H的單元,可從兩個部分重疊的段中得到:段地址:1123H偏移地址:15H實際地址:11230H+15H=11245H段地址:1124H偏移地址:05H實際地址:11240H+05H=11245H

物理地址和邏輯地址例2:物理地址為00020H單元,其邏輯地址可以有:

[0000H:0020H]+00000H0020H00020H(PA)(EA)(段地址16)[0001H:0010H]+00010H0010H00020H(PA)(EA)(段地址16)[0002H:0000H]+00020H0000H00020H(PA)(EA)(段地址16)一個存儲單元,其PA是唯一的,但可用不同的邏輯地址表示。①段地址有段寄存器提供:

一個存儲單元用邏輯地址表示后,CPU對該單元的尋址就應(yīng)提供兩部分地址段地址段內(nèi)有效地址CS——

提供當(dāng)前代碼(程序)段的段地址DS——

提供當(dāng)前數(shù)據(jù)(程序)段的段地址ES——

提供當(dāng)前附加數(shù)據(jù)段的段地址SS——

提供當(dāng)前堆棧段的段地址②段內(nèi)偏移地址由下列地址寄存器提供:BXBPSIDICPU對存儲器進(jìn)行數(shù)據(jù)讀/寫操作時,由這些寄存器以某種尋址方式向存儲器提供段內(nèi)偏移地址。CPU取指令時,由IP提供所取指令代碼所在單元的偏移地址。

IP

SP

堆棧操作時,提供堆棧段的段內(nèi)偏移地址三.信息的分段存儲與段寄存器的關(guān)系特別要指出的是,用戶用8086/8088匯編語言編寫程序時,要把程序中的不同信息安排在不同的段,也就是說,用戶源程序匯編后在存儲器中存放是按照不同的信息放在不同的邏輯段。而程序中的信息包括:數(shù)據(jù)信息程序(代碼)信息堆棧信息其中,代碼信息存放在代碼段,其地址由CS:IP提供。

堆棧信息存放在堆棧段,其地址由SS:SP提供。

數(shù)據(jù)信息通常情況下,存放在數(shù)據(jù)段(段地址由DS提供),當(dāng)然也可以存放在附加數(shù)據(jù)段(段地址由ES提供),其段內(nèi)偏移地址由某些寄存器按照不同的尋址方式求得。BXBPSIDI

8086/8088CPU各種類型訪問存儲器時,其地址成分的來源見下表所示。例3:已知DS=2000H,相對于DS偏移EA1

溫馨提示

  • 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

提交評論