第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),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

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

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

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

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

CPU

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

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

控制器寄存器組

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

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

1969年,Internet的雛形APARNET誕生;

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

1981年,第一臺(tái)IBM

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

。7.微處理器的集成度指微處理器芯片上集成的晶體管的密度。最早Intel4004的集成度為2250個(gè)晶體管,PentiumIII的集成度已經(jīng)達(dá)到750萬個(gè)晶體管以上,集成度提高了3000多倍。年份字長(zhǎng)(bits)型號(hào)線寬(m)晶體管數(shù)(萬個(gè))時(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。字長(zhǎng)4位,集成度2300管/片,時(shí)鐘頻率1MHZ。1973-1977:代表產(chǎn)品有Intel

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

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

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

PC、IBM

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

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

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

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

386、COMPAQ

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

486、COMPAQ

486、我國(guó)的金長(zhǎng)城、聯(lián)想486等,從80486CPU開始集成數(shù)學(xué)協(xié)處理器NPU。1993-1994:代表產(chǎn)品有Intel的Pentium(奔騰)及AMD、Cyrix的5x86及K5、M系列、IBMPowerPC604、DECAlpha21064,集成度350萬管/片,時(shí)鐘頻率50-166MHZ。主要微機(jī)的廠家有COMPAQ、DELL、聯(lián)想、長(zhǎng)城等。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等。字長(zhǎng)大都還是32位,數(shù)據(jù)通道64位,地址線32根,集成度更高,速度更快。近年來,Intel和AMD的CPU競(jìng)爭(zhēng)越來越激烈,性能/價(jià)格比不斷提高。主要微機(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ì)算機(jī)的發(fā)展Intel8008Motorola6800Intel8086Intel80286

微型計(jì)算機(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ù)測(cè)技術(shù)、數(shù)據(jù)和代碼二級(jí)高速緩存技術(shù)、指令動(dòng)態(tài)執(zhí)行技術(shù)等新技術(shù)。性能越來越高,價(jià)位越來越低。體積越來越小,筆記本電腦、掌上電腦越來越流行。網(wǎng)絡(luò)化、多媒體化及智能化。配置電源管理功能,趨于綠色電腦。2.2.3

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

人們可以從不同的角度對(duì)微機(jī)進(jìn)行分類,典型的主要有以下幾種分類方法。按微處理器的字長(zhǎng)分為4、8、16、32、64位機(jī);按CPU型號(hào)分為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ī);按體積和性能分為臺(tái)式機(jī)、筆記本電腦、掌上電腦;按共享特性分為單用戶單任務(wù)型、單用戶多任務(wù)型、多用戶型。2.2.4微機(jī)的分類1、單片機(jī):又稱單片微控制器,它不是完成某一個(gè)邏輯功能的芯片,而是把一個(gè)計(jì)算機(jī)系統(tǒng)集成到一個(gè)芯片上。概括的講:它主要是將微處理器、部分存儲(chǔ)器、輸入輸出接口都集成在一塊集成電路芯片上,一塊芯片就成了一臺(tái)計(jì)算機(jī)。2、單板機(jī):將計(jì)算機(jī)的各個(gè)部分都組裝在一塊印制電路板上,包括微處理器/存儲(chǔ)器/輸入輸出接口,還有簡(jiǎn)單的七段發(fā)光二極管顯示器、小鍵盤、插座等。功能比單片機(jī)強(qiáng),適于進(jìn)行生產(chǎn)過程的控制??梢灾苯釉趯?shí)驗(yàn)板上操作,適用于教學(xué)。3、PC機(jī)(PersonalComputer):面向個(gè)人單獨(dú)使用的一類微機(jī),實(shí)現(xiàn)各種計(jì)算、數(shù)據(jù)處理及信息管理等。2.2.5微機(jī)的應(yīng)用領(lǐng)域

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

微型計(jì)算機(jī)的應(yīng)用用于數(shù)值計(jì)算、數(shù)據(jù)處理及信息管理方向通用微機(jī),例如:PC微機(jī)功能越強(qiáng)越好、使用越方便越好用于過程控制及嵌入應(yīng)用方向?qū)S梦C(jī),例如:工控機(jī)、單片機(jī)、數(shù)字信號(hào)處理器可靠性高、實(shí)時(shí)性強(qiáng)程序相對(duì)簡(jiǎn)單、處理數(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)“指令流水”是一種實(shí)現(xiàn)多條指令重疊執(zhí)行的重要技術(shù)。1990年以后出現(xiàn)的處理器,無論是RISC(精簡(jiǎn)指令集計(jì)算機(jī))還是CISC(復(fù)雜指令集計(jì)算機(jī)),無一不采用“指令流水”技術(shù)。CPU執(zhí)行指令的過程,可具體分為如下六個(gè)步驟:1.取指(fetch);2.譯碼(decoding);3.計(jì)算有效地址(EA:EffectiveAddress);4.取操作數(shù);5.執(zhí)行6.存儲(chǔ)運(yùn)算結(jié)果概括的說,可分為“取指令”和“執(zhí)行指令”兩個(gè)步驟。早期的計(jì)算機(jī)將這兩步采用先后輪流動(dòng)作(串行),CPU效率較低。在流水線方式下,BIU與EU同時(shí)動(dòng)作(并行)完成指令周期,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通用寄存器地址加法器指令隊(duì)列執(zhí)行單元(EU)總線接口單元(BIU)16位20位8位8位返回8086的內(nèi)部結(jié)構(gòu)圖總線接口單元BIU(BusInterfaceUnit)

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

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

IP(InstructionPointer)指令隊(duì)列緩沖器

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

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

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

4個(gè)16位:AX,BX,CX,DX

8個(gè)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(shí))。BP(BasePointer):存放位于堆棧段中的數(shù)據(jù)區(qū)基地址的偏移地址。通用寄存器(二)源變址寄存器SI和目的變址寄存器DI。存放當(dāng)前數(shù)據(jù)段的偏移地址。SI(SourceIndex):源操作數(shù)的偏移地址。DI(DestinationIndex):目的操作數(shù)的偏移地址。變址寄存器(16位,存放偏移地址)通用寄存器(三)常用于串操作指令中,比如:串拷貝、串比較等4個(gè)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ù)段的段地址。段寄存器是為實(shí)現(xiàn)“段加偏移”分段尋址而設(shè)置的。段寄存器指令指針寄存器IP和標(biāo)志寄存器FRIP(Instructionpointer)指令指針,也就是程序計(jì)數(shù)器(PC)。它的內(nèi)容始終是下一條待執(zhí)行指令的起始偏移地址,與CS一起形成下一條待執(zhí)行指令的起始物理地址。CS:IP的作用是控制程序的執(zhí)行流程。IP一般會(huì)自動(dòng)加1(邏輯加1、實(shí)際隨指令長(zhǎng)度變化)移向下一條指令實(shí)現(xiàn)順序執(zhí)行;若通過指令修改CS或IP的值,則可實(shí)現(xiàn)程序的轉(zhuǎn)移執(zhí)行。專用寄存器8086標(biāo)志寄存器FR為16位(PSW),用了其中9位。6個(gè)狀態(tài)標(biāo)志位:CF,PF,AF,ZF,SF,OF3個(gè)控制標(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)志符號(hào)標(biāo)志標(biāo)志寄存器(一)狀態(tài)標(biāo)志位:反映算術(shù)或邏輯運(yùn)算后結(jié)果狀態(tài)。CF(CarryFlag):進(jìn)位/借位標(biāo)志(無符號(hào)數(shù)的溢出標(biāo)志),D0位。執(zhí)行結(jié)果的最高位向更高位產(chǎn)生了一個(gè)進(jìn)位或借位,CF=1(同時(shí)也代表無符號(hào)數(shù)溢出);無進(jìn)位或借位,CF=0(也代表無符號(hào)數(shù)未溢出)。PF(ParityFlag):奇偶校驗(yàn)標(biāo)志,D2位。執(zhí)行結(jié)果的低8位中有偶數(shù)個(gè)“1”時(shí),PF=1;否則PF=0。機(jī)器中傳遞信息時(shí),對(duì)產(chǎn)生的代碼出錯(cuò)情況提供檢測(cè)條件。標(biāo)志寄存器(二)AF(AuxiliaryFlag):輔助進(jìn)位標(biāo)志,D4位。執(zhí)行結(jié)果的低4位向高4位有進(jìn)位或借位時(shí),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):符號(hào)標(biāo)志,D7位。如運(yùn)算結(jié)果為負(fù)數(shù),SF=1;如運(yùn)算結(jié)果為正數(shù),SF=0。OF(OverflowFlag):有符號(hào)數(shù)的溢出標(biāo)志,D11位。如帶符號(hào)數(shù)在進(jìn)行算術(shù)運(yùn)算時(shí)產(chǎn)生了溢出,OF=1;如無溢出,OF=0。溢出表示運(yùn)算結(jié)果已經(jīng)超出有符號(hào)能夠表示的數(shù)值范圍。溢出時(shí),將造成運(yùn)算錯(cuò)誤。

標(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)算的兩個(gè)數(shù)符號(hào)及運(yùn)算結(jié)果符號(hào)判斷;利用雙進(jìn)位狀態(tài)來判斷,即符號(hào)位相加的進(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ù)串操作過程中地址自動(dòng)遞減;若用指令CLD將DF=0,則地址自動(dòng)遞增。標(biāo)志寄存器(五)IF(InterruptFlag):中斷允許標(biāo)志,D9位??刂瓶善帘沃袛唷H粲弥噶頢TI將IF=1,允許接受外部從INTR引腳發(fā)來的可屏蔽中斷請(qǐng)求;若用指令CLI將IF=0,禁止接受外部發(fā)來的可屏蔽中斷請(qǐng)求。

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

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

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

內(nèi)存地址組織及存放次序存儲(chǔ)器二進(jìn)制地址十六進(jìn)制地址0000000000000000000000000000010000200003000000000000000000010000000000000000001100000000000000000010FFFFEFFFFF1111111111111111111111111111111111111110≈≈……存儲(chǔ)器內(nèi)兩個(gè)連續(xù)的字節(jié),定義為一個(gè)字,一個(gè)字中的每個(gè)字節(jié),都有一個(gè)字節(jié)地址。字的地址指低字節(jié)的地址。每個(gè)字的低字節(jié)(低8位)存放在低地址中,高字節(jié)(高8位)存放在高地址中。各位的編號(hào)方法是最低位(LSB)為位0,一個(gè)字節(jié)中,最高位(MAS)編號(hào)為位7;一個(gè)字中最高位的編號(hào)為位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ù)在存儲(chǔ)器中存放的格式如圖所示:字單元的地址一個(gè)字單元一個(gè)字節(jié)單元

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

IP

SP

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

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

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

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論