課次02微機(jī)原理課件_第1頁
課次02微機(jī)原理課件_第2頁
課次02微機(jī)原理課件_第3頁
課次02微機(jī)原理課件_第4頁
課次02微機(jī)原理課件_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1.4微型計(jì)算機(jī)硬件系統(tǒng)

1.4.1微型計(jì)算機(jī)系統(tǒng)的組成到目前為止,計(jì)算機(jī)仍沿用1940年由馮.諾依曼首先提出的體系結(jié)構(gòu)。其基本設(shè)計(jì)思想為:①以二進(jìn)制形式表示指令和數(shù)據(jù)。②程序和數(shù)據(jù)事先存放在存儲(chǔ)器中,計(jì)算機(jī)在工作時(shí)能夠高速地從存儲(chǔ)器中取出指令加以執(zhí)行。③由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備等五大部件組成計(jì)算機(jī)系統(tǒng)。1.4微型計(jì)算機(jī)硬件系統(tǒng)1.4.1微型計(jì)算機(jī)系統(tǒng)的1圖1.3微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)地址總線AB定時(shí)電路輸入設(shè)備輸出設(shè)備I/O接口ROMRAM數(shù)據(jù)總線DB控制總線CB微處理器(CPU)圖1.3微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)地址總線AB定時(shí)電路輸入2所謂總線,是計(jì)算機(jī)中各功能部件間傳送信息的公共通道,是微型計(jì)算機(jī)的重要組成部分。它們可以是帶狀的扁平電纜線,也可以是印刷電路板上的一層極薄的金屬連線。所有的信息都通過總線傳送。根據(jù)所傳送信息的內(nèi)容與作用不同,總線可分為三類:

地址總線AB(AddressBus):在對(duì)存儲(chǔ)器或I/O端口進(jìn)行訪問時(shí),傳送

由CPU提供的要訪問存儲(chǔ)單元或I/O端口的地址信息,以便選中要訪問的存儲(chǔ)單元或I/O端口,是單向總線。所謂總線,是計(jì)算機(jī)中各功能部件間傳送信息的公3

數(shù)據(jù)總線DB(DataBus):從存儲(chǔ)器取指令或讀寫操作數(shù),對(duì)I/O端口進(jìn)行讀寫操作時(shí),指令碼或數(shù)據(jù)信息通過數(shù)據(jù)總線送往CPU或由CPU送出,是雙向總線。

控制總線CB(ControlBus):各種控制或狀態(tài)信息通過控制總線由CPU送往有關(guān)部件,或者從有關(guān)部件送往CPU。CB中每根線的傳送方向是一定的,圖1.3中CB作為一個(gè)整體,用雙向表示。數(shù)據(jù)總線DB(DataBus):從存儲(chǔ)器取指令或41.4.2微處理器

外部DB

微處理器(CPU)AARPLAPC標(biāo)志寄存器IDIRDRRA至外部CB外部AB4001HE7H4002H34H4003HA5H4004H62H4005H38H存儲(chǔ)器地址單元內(nèi)容ALU內(nèi)部數(shù)據(jù)總線DB1.4.2微處理器外部DB微處理器AARPLAP51.運(yùn)算器運(yùn)算器又稱算術(shù)邏輯單元ALU(ArithmeticLogicUnit),用來進(jìn)行算術(shù)或邏輯運(yùn)算以及移位循環(huán)等操作。參加運(yùn)算的兩個(gè)操作數(shù)一個(gè)來自累加器A(Accumulator),另一個(gè)來自內(nèi)部數(shù)據(jù)總線,可以是數(shù)據(jù)緩沖寄存器DR(DataRegister)中的內(nèi)容,也可以是寄存器陣列RA(RegisterArray)中某個(gè)寄存器的內(nèi)容。計(jì)算結(jié)果送回累加器A暫存。1.運(yùn)算器62.控制器控制器又稱控制單元CU(ControlUnit),是全機(jī)的指揮控制中心。它負(fù)責(zé)把指令逐條從存儲(chǔ)器中取出,經(jīng)譯碼分析后向全機(jī)發(fā)出取數(shù)、執(zhí)行、存數(shù)等控制命令,以保證正確完成程序所要求的功能。(1)指令寄存器IR(InstructionRegister):用來存放從存儲(chǔ)器取出的將要執(zhí)行的指令碼。當(dāng)執(zhí)行一條指令時(shí),先把它從內(nèi)存取到數(shù)據(jù)緩沖寄存器DR中,然后再傳送到指令寄存器IR中。2.控制器7(2)指令譯碼器ID(InstructionDecoder):用來對(duì)指令寄存器IR中的指令操作碼字段(指令中用來說明指令功能的字段)進(jìn)行譯碼,以確定該指令應(yīng)執(zhí)行什么操作。(3)可編程邏輯陣列PLA(ProgrammableLogicArray):用來產(chǎn)生取指令和執(zhí)行指令所需要的各種微操作控制信號(hào),并經(jīng)過控制總線CB送往有關(guān)部件,從而使計(jì)算機(jī)完成相應(yīng)的操作。(2)指令譯碼器ID(Instru83.內(nèi)部寄存器陣列

1)程序計(jì)數(shù)器PC(ProgramCounter)程序計(jì)數(shù)器有時(shí)也被稱為指令指針I(yè)P(InstructionPointer)。它被用來存放下一條要執(zhí)行指令所在存儲(chǔ)單元的地址。在程序開始執(zhí)行前,必須將它的起始地址,即程序的第一條指令所在的存儲(chǔ)單元地址送入PC。當(dāng)執(zhí)行指令時(shí),CPU將自動(dòng)修改PC內(nèi)容,以便使其保持的總是將要執(zhí)行的下一條指令的地址。由于大多數(shù)指令是按順序執(zhí)行的,所以修改的辦法通常只是簡(jiǎn)單地對(duì)PC加1。但遇到跳轉(zhuǎn)等改變程序執(zhí)行順序的指令時(shí),后繼指令的地址(即PC的內(nèi)容)將從指令寄存器IR中的地址字段得到。3.內(nèi)部寄存器陣列1)程序計(jì)數(shù)92)地址寄存器AR(AddressRegister):地址寄存器用來存放正要取出的指令的地址或操作數(shù)的地址。由于在內(nèi)存單元和CPU之間存在著操作速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內(nèi)存的讀/寫操作完成為止。在取指令時(shí),PC中存放的指令地址送到AR,根據(jù)此地址從存儲(chǔ)器中取出指令。在取操作數(shù)時(shí),將操作數(shù)地址通過內(nèi)部數(shù)據(jù)總線送到AR,再根據(jù)此地址從存儲(chǔ)器中取出操作數(shù);在向存儲(chǔ)器存入數(shù)據(jù)時(shí),也要先將待寫入數(shù)據(jù)的地址送到AR,再根據(jù)此地址向存儲(chǔ)器寫入數(shù)據(jù)。2)地址寄存器AR(AddressRegi103)數(shù)據(jù)緩沖寄存器DR(DataRegister)數(shù)據(jù)緩沖寄存器用來暫時(shí)存放指令或數(shù)據(jù)。從存儲(chǔ)器讀出時(shí),若讀出的是指令,經(jīng)DR暫存的指令經(jīng)過內(nèi)部數(shù)據(jù)總線送到指令寄存器IR;若讀出的是數(shù)據(jù),則通過內(nèi)部數(shù)據(jù)總線送到運(yùn)算器或有關(guān)的寄存器。同樣,當(dāng)向存儲(chǔ)器寫入數(shù)據(jù)時(shí),也首先將其存放在數(shù)據(jù)緩沖寄存器DR中,然后再經(jīng)數(shù)據(jù)總線送入存儲(chǔ)器??梢钥闯觯瑪?shù)據(jù)緩沖寄存器 DR是CPU和內(nèi)存、外部設(shè)備之間信息傳送的中轉(zhuǎn)站,用來補(bǔ)償CPU和內(nèi)存、外圍設(shè)備之間在操作速度上存在的差異。3)數(shù)據(jù)緩沖寄存器DR(DataReg114)指令寄存器IR(InstructionRegister)指令寄存器用來保存從存儲(chǔ)器取出的將要執(zhí)行的指令碼,以便指令譯碼器對(duì)其操作碼字段進(jìn)行譯碼,產(chǎn)生執(zhí)行該指令所需的微操作命令。4)指令寄存器IR(Instructio125)累加器A(Accumulator)累加器是使用最頻繁的一個(gè)寄存器。在執(zhí)行算術(shù)邏輯運(yùn)算時(shí),它用來存放一個(gè)操作數(shù),而運(yùn)算結(jié)果通常又放回累加器,其中原有信息隨即被破壞。所以,顧名思義,累加器是用來暫時(shí)存放ALU運(yùn)算結(jié)果的。顯然,CPU中至少應(yīng)有一個(gè)累加器。目前CPU中通常有很多個(gè)累加器。當(dāng)使用多個(gè)累加器時(shí),就變成了通用寄存器堆結(jié)構(gòu),其中任何一個(gè)既可存放目的操作數(shù),也可以放源操作數(shù)。例如本書介紹的80x86系列CPU就采用了這種累加器結(jié)構(gòu)。5)累加器A(Accumulator)136)標(biāo)志寄存器FLAGS(FlagRegister)標(biāo)志寄存器有時(shí)也稱為程序狀態(tài)字PSW(ProgramStatusWord)。它用來存放執(zhí)行算術(shù)運(yùn)算指令、邏輯運(yùn)算指令或測(cè)試指令后建立的各種狀態(tài)碼內(nèi)容以及對(duì)CPU操作進(jìn)行控制的控制信息。標(biāo)志位的具體設(shè)置及功能隨微處理器型號(hào)的不同而不同。編寫程序時(shí),可以通過測(cè)試有關(guān)標(biāo)志位的狀態(tài)(0或1)來決定程序的流向。6)標(biāo)志寄存器FLAGS(FlagReg141.4.3存儲(chǔ)器這里介紹的存儲(chǔ)器是指內(nèi)存儲(chǔ)器(又稱為主存或內(nèi)存)。它是微型計(jì)算機(jī)的存儲(chǔ)和記憶裝置,用來存放指令、原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果。在計(jì)算機(jī)內(nèi)部,程序和數(shù)據(jù)都以二進(jìn)制形式表示,8位二進(jìn)制代碼作為一個(gè)字節(jié)。為了便于對(duì)存儲(chǔ)器進(jìn)行訪問,存儲(chǔ)器通常被劃分為許多單元,每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的二進(jìn)制信息,每個(gè)存儲(chǔ)單元分別賦予一個(gè)編號(hào),稱為地址。如圖1.5所示,地址為4005H的存儲(chǔ)單元中存放了一個(gè)八位二進(jìn)制信息00111000B。1.4.3存儲(chǔ)器15E7H34HA5HF2H38H……4001H4002H4003H4004H4005H……地址指令或數(shù)據(jù)內(nèi)容00111000圖1.5內(nèi)存單元的地址和內(nèi)容E7H4001H地址指令或數(shù)據(jù)內(nèi)容0016有關(guān)存儲(chǔ)器的基本概念1.位(Bit):二進(jìn)制信息的最小單位(0或1)2.字節(jié)(Byte):由8位二進(jìn)制數(shù)組成,可以存放在一個(gè)存儲(chǔ)單元中。是字的基本組成單位。3.字(Word):計(jì)算機(jī)中作為一個(gè)整體來處理和運(yùn)算的一組二進(jìn)制數(shù),是字節(jié)的整數(shù)倍。通常它與計(jì)算機(jī)內(nèi)部的寄存器、算術(shù)邏輯單元、數(shù)據(jù)總線寬度相一致。每個(gè)字包括的位數(shù)稱為計(jì)算機(jī)的字長(zhǎng),是計(jì)算機(jī)的重要性能指標(biāo)。目前為了表示方便,常把一個(gè)字定義為16位,把一個(gè)雙字定義為32位。有關(guān)存儲(chǔ)器的基本概念174.內(nèi)存容量:內(nèi)存中存儲(chǔ)單元的總數(shù)。通常以字節(jié)為單位,1024(210)字節(jié)記作1KB,220字節(jié)記作1MB。

5.內(nèi)存單元地址:為了能識(shí)別不同的單元,每個(gè)單元都賦予一個(gè)編號(hào),這個(gè)編號(hào)稱之為內(nèi)存單元地址。顯然,各內(nèi)存單元的地址與該地址對(duì)應(yīng)的單元中存放的內(nèi)容是兩個(gè)完全不同的概念,不可混淆。4.內(nèi)存容量:內(nèi)存中存儲(chǔ)單元的總數(shù)。通常以字節(jié)182.內(nèi)存的操作CPU對(duì)內(nèi)存的操作有兩種:讀或?qū)憽Wx操作是CPU將內(nèi)存單元的內(nèi)容讀入CPU內(nèi)部,而寫操作是CPU將其內(nèi)部信息送到內(nèi)存單元保存起來。顯然,寫操作的結(jié)果改變了被寫內(nèi)存單元的內(nèi)容,是破壞性的,而讀操作是非破壞性的,即該內(nèi)存單元的內(nèi)容在信息被讀出之后仍保持原信息不變。2.內(nèi)存的操作19從內(nèi)存單元讀出信息的操作過程如圖1.6(a)所示。假設(shè)將地址為90H的單元中的內(nèi)容10111010B(BAH)讀入CPU,其操作過程如下:(1)CPU經(jīng)地址寄存器AR將要讀取單元的地址信息10010000B(90H)送地址總線,經(jīng)地址譯碼器選中90H單元。(2)CPU發(fā)出“讀”控制信號(hào)。(3)在讀控制信號(hào)的作用下,將90H單元中的內(nèi)容10111010B(BAH)放到數(shù)據(jù)總線上,然后經(jīng)數(shù)據(jù)緩沖寄存器DR送入CPU中的有關(guān)部件進(jìn)行處理。從內(nèi)存單元讀出信息的操作過程如圖1.6(a)20地址譯碼器10101101B00011010B10111010B00100010B內(nèi)容地址00H01HFFH90HAB10010000B來自CPU的寫信號(hào)00000000BDB地址譯碼器10101101B00011010B10111010B00100010B內(nèi)容地址00H01HFFH90HAB10010000B10111010BDB來自CPU的讀信號(hào)(a)內(nèi)存讀操作過程示意圖(b)內(nèi)存寫操作過程示意圖圖1.6內(nèi)存讀寫操作過程示意圖10101101B內(nèi)容地址00H01HFFH90HAB10021向內(nèi)存單元寫入信息的操作如圖1.6(b)所示。假定要將數(shù)據(jù)0寫入內(nèi)存中地址為90H的單元,其操作過程如下:(1)寫入單元的地址信息90H經(jīng)地址寄存器AR送到地址總線上。(2)待寫入的數(shù)據(jù)00000000B經(jīng)數(shù)據(jù)緩沖寄存器DR放到數(shù)據(jù)總線上。(3)CPU發(fā)出“寫”控制信號(hào),在該信號(hào)的作用下將數(shù)據(jù)0寫入90H單元。此時(shí),90H單元中原有的內(nèi)容10111010B就會(huì)被00000000B所替代。向內(nèi)存單元寫入信息的操作如圖1.6(b)所示223.內(nèi)存的分類按工作方式,內(nèi)存可分為兩大類:隨機(jī)讀寫存儲(chǔ)器RAM(RandomAccessMemory)和只讀存儲(chǔ)器ROM(ReadOnlyMemory)。隨機(jī)讀寫存儲(chǔ)器可被CPU隨機(jī)地讀寫,它用于存放將要被CPU執(zhí)行的用戶程序、數(shù)據(jù)以及部分系統(tǒng)程序。斷電后,其中存放的所有信息將丟失。只讀存儲(chǔ)器中的信息只能被CPU讀取,而不能由CPU任意地寫入。斷電后,其中的信息不會(huì)丟失。它用于存放永久性的程序和數(shù)據(jù)。如系統(tǒng)引導(dǎo)程序、監(jiān)控程序、操作系統(tǒng)中的基本輸入/輸出管理程序(BIOS)等。3.內(nèi)存的分類231.4.4I/O接口與輸入輸出設(shè)備I/O接口是微型計(jì)算機(jī)與輸入輸出設(shè)備之間信息交換的橋梁。I/O設(shè)備是微型計(jì)算機(jī)系統(tǒng)的重要組成部分。程序、數(shù)據(jù)及現(xiàn)場(chǎng)信息要通過輸入設(shè)備輸入給計(jì)算機(jī)。計(jì)算機(jī)的處理結(jié)果要通過輸出設(shè)備輸出,以便用戶使用。常用的輸入設(shè)備有:鍵盤、鼠標(biāo)、數(shù)字化儀、掃描儀、A/D轉(zhuǎn)換器等。常用的輸出設(shè)備有顯示器、打印機(jī)、繪圖儀、D/A轉(zhuǎn)換器等。1.4.4I/O接口與輸入輸出設(shè)備241.5微型計(jì)算機(jī)的工作過程

高級(jí)語言是不依賴于具體機(jī)型只面向過程的程序設(shè)計(jì)語言,由它所編寫的高級(jí)語言程序,需經(jīng)過編譯程序或解釋程序的編譯或解釋生成機(jī)器語言程序后才能執(zhí)行?;靖拍顧C(jī)器語言程序是計(jì)算機(jī)能夠理解和直接執(zhí)行的程序,其指令是用二進(jìn)制代碼表示和存儲(chǔ)的。匯編語言程序是用助記符語言表示的程序,計(jì)算機(jī)不能直接“識(shí)別”,需要經(jīng)過“匯編程序”把它轉(zhuǎn)換為對(duì)應(yīng)的機(jī)器語言程序后才能執(zhí)行。1.5微型計(jì)算機(jī)的工作過程高級(jí)語言是不依賴于具體機(jī)型只251.5微型計(jì)算機(jī)的工作過程

不論程序是用什么語言編寫,都必須首先將其轉(zhuǎn)換為計(jì)算機(jī)能直接識(shí)別和執(zhí)行的機(jī)器語言程序,然后才能由CPU逐條讀取并執(zhí)行。表1.1為在某模型機(jī)上完成“6+5”操作所需的機(jī)器語言程序和匯編語言程序,假設(shè)該機(jī)器語言程序從內(nèi)存中地址為0000H單元開始存放。1.5微型計(jì)算機(jī)的工作過程不論程序是用26

內(nèi)存單元地址機(jī)器語言程序

匯編語言程序

指令功能說明0000H0001H1011000100000110MOVA,06H雙字節(jié)指令。將數(shù)字6送累加器A0002H0003H0000100000000101ADDA,05H雙字節(jié)指令。將數(shù)字5與累加器A中的內(nèi)容相加,結(jié)果存放在累加器A中。0004H11111110HLT停機(jī)指令表1.1完成“6+5”操作所需的機(jī)器語言程序和匯編語言程序1.5微型計(jì)算機(jī)的工作過程

0000H10110001MOVA,06H雙字節(jié)指27假定完成“6+5”操作所需的機(jī)器語言程序(表1.1所示)已由輸入設(shè)備存放到內(nèi)存中,如圖1.7所示。下面進(jìn)一步說明微機(jī)內(nèi)部執(zhí)行該程序的具體操作過程。開始執(zhí)行程序時(shí),首先將第一條指令的首地址0000H送程序計(jì)數(shù)器PC,然后就進(jìn)入第一條指令的取指階段,其操作過程如圖1.7所示。1.5微型計(jì)算機(jī)的工作過程

假定完成“6+5”操作所需的機(jī)器語言程序(表28圖1.7取第一條指令的操作過程示意圖圖1.7取第一條指令的操作過程示意圖29①把PC內(nèi)容送地址寄存器AR。②PC內(nèi)容送入AR后,PC自動(dòng)加1。③把地址寄存器AR的內(nèi)容0000H放在地址總線上,并送至存儲(chǔ)器系統(tǒng)的地址譯碼電路(圖中未畫出),經(jīng)地址譯碼選中相應(yīng)的0000H單元。④CPU發(fā)出存儲(chǔ)器讀命令。⑤在讀命令的控制下,把選中的0000H單元的內(nèi)容即第一條指令的操作碼B1H讀到數(shù)據(jù)總線DB上。⑥把讀出的內(nèi)容B1H經(jīng)數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器DR⑦指令譯碼。因?yàn)槿〕龅氖侵噶畹牟僮鞔a,故數(shù)據(jù)緩沖寄存器DR中的內(nèi)容被送到指令寄存器IR,然后再送到指令譯碼器ID,經(jīng)過譯碼,CPU“識(shí)別”出這個(gè)操作碼代表的指令,于是經(jīng)控制器發(fā)出執(zhí)行該指令所需要的各種控制命令。取第一條指令的操作過程同學(xué)們可參看本課程輔助教學(xué)網(wǎng)站上的教學(xué)CAI課件,通過其動(dòng)態(tài)演示來進(jìn)一步理解計(jì)算機(jī)讀取和執(zhí)行指令的過程。①把PC內(nèi)容送地址寄存器AR。取第一條指令的操作過程同學(xué)們30接著進(jìn)入第一條指令的執(zhí)行階段。經(jīng)過對(duì)操作碼B1H的譯碼,CPU知道這是一條把下一單元中的操作數(shù)送累加器A的雙字節(jié)指令,所以,執(zhí)行該指令的操作就是從下一個(gè)存儲(chǔ)單元中取出指令第二個(gè)字節(jié)中的操作數(shù)06H,并送入累加器A。該指令的執(zhí)行過程如圖1.8所示。①把PC內(nèi)容01H送地址寄存器AR。②PC內(nèi)容送入AR后,PC自動(dòng)加1,即由0001H變?yōu)?002H。注意,此時(shí)AR的內(nèi)容0001H并沒有變化。第一條指令的執(zhí)行過程接著進(jìn)入第一條指令的執(zhí)行階段。經(jīng)過對(duì)操作碼B1H的譯31③把地址寄存器AR的內(nèi)容0001H放到地址總線上,并送至存儲(chǔ)器系統(tǒng)的地址譯碼電路,經(jīng)地址譯碼選中相應(yīng)的0001H單元。④CPU發(fā)出存儲(chǔ)器讀命令。⑤在讀命令的控制下,把選中的0001H單元的內(nèi)容06H放到數(shù)據(jù)總線DB上。⑥把讀出的內(nèi)容06H經(jīng)數(shù)據(jù)總線送到數(shù)據(jù)緩沖寄存器DR。⑦數(shù)據(jù)緩沖寄存器DR的內(nèi)容經(jīng)內(nèi)部數(shù)據(jù)總線送到累加器A。于是,第一條指令執(zhí)行完畢,操作數(shù)06H被送到累加器A中。③把地址寄存器AR的內(nèi)容0001H放到地址總線上,并送至存321.4微型計(jì)算機(jī)硬件系統(tǒng)

1.4.1微型計(jì)算機(jī)系統(tǒng)的組成到目前為止,計(jì)算機(jī)仍沿用1940年由馮.諾依曼首先提出的體系結(jié)構(gòu)。其基本設(shè)計(jì)思想為:①以二進(jìn)制形式表示指令和數(shù)據(jù)。②程序和數(shù)據(jù)事先存放在存儲(chǔ)器中,計(jì)算機(jī)在工作時(shí)能夠高速地從存儲(chǔ)器中取出指令加以執(zhí)行。③由運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備和輸出設(shè)備等五大部件組成計(jì)算機(jī)系統(tǒng)。1.4微型計(jì)算機(jī)硬件系統(tǒng)1.4.1微型計(jì)算機(jī)系統(tǒng)的33圖1.3微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)地址總線AB定時(shí)電路輸入設(shè)備輸出設(shè)備I/O接口ROMRAM數(shù)據(jù)總線DB控制總線CB微處理器(CPU)圖1.3微型計(jì)算機(jī)硬件系統(tǒng)結(jié)構(gòu)地址總線AB定時(shí)電路輸入34所謂總線,是計(jì)算機(jī)中各功能部件間傳送信息的公共通道,是微型計(jì)算機(jī)的重要組成部分。它們可以是帶狀的扁平電纜線,也可以是印刷電路板上的一層極薄的金屬連線。所有的信息都通過總線傳送。根據(jù)所傳送信息的內(nèi)容與作用不同,總線可分為三類:

地址總線AB(AddressBus):在對(duì)存儲(chǔ)器或I/O端口進(jìn)行訪問時(shí),傳送

由CPU提供的要訪問存儲(chǔ)單元或I/O端口的地址信息,以便選中要訪問的存儲(chǔ)單元或I/O端口,是單向總線。所謂總線,是計(jì)算機(jī)中各功能部件間傳送信息的公35

數(shù)據(jù)總線DB(DataBus):從存儲(chǔ)器取指令或讀寫操作數(shù),對(duì)I/O端口進(jìn)行讀寫操作時(shí),指令碼或數(shù)據(jù)信息通過數(shù)據(jù)總線送往CPU或由CPU送出,是雙向總線。

控制總線CB(ControlBus):各種控制或狀態(tài)信息通過控制總線由CPU送往有關(guān)部件,或者從有關(guān)部件送往CPU。CB中每根線的傳送方向是一定的,圖1.3中CB作為一個(gè)整體,用雙向表示。數(shù)據(jù)總線DB(DataBus):從存儲(chǔ)器取指令或361.4.2微處理器

外部DB

微處理器(CPU)AARPLAPC標(biāo)志寄存器IDIRDRRA至外部CB外部AB4001HE7H4002H34H4003HA5H4004H62H4005H38H存儲(chǔ)器地址單元內(nèi)容ALU內(nèi)部數(shù)據(jù)總線DB1.4.2微處理器外部DB微處理器AARPLAP371.運(yùn)算器運(yùn)算器又稱算術(shù)邏輯單元ALU(ArithmeticLogicUnit),用來進(jìn)行算術(shù)或邏輯運(yùn)算以及移位循環(huán)等操作。參加運(yùn)算的兩個(gè)操作數(shù)一個(gè)來自累加器A(Accumulator),另一個(gè)來自內(nèi)部數(shù)據(jù)總線,可以是數(shù)據(jù)緩沖寄存器DR(DataRegister)中的內(nèi)容,也可以是寄存器陣列RA(RegisterArray)中某個(gè)寄存器的內(nèi)容。計(jì)算結(jié)果送回累加器A暫存。1.運(yùn)算器382.控制器控制器又稱控制單元CU(ControlUnit),是全機(jī)的指揮控制中心。它負(fù)責(zé)把指令逐條從存儲(chǔ)器中取出,經(jīng)譯碼分析后向全機(jī)發(fā)出取數(shù)、執(zhí)行、存數(shù)等控制命令,以保證正確完成程序所要求的功能。(1)指令寄存器IR(InstructionRegister):用來存放從存儲(chǔ)器取出的將要執(zhí)行的指令碼。當(dāng)執(zhí)行一條指令時(shí),先把它從內(nèi)存取到數(shù)據(jù)緩沖寄存器DR中,然后再傳送到指令寄存器IR中。2.控制器39(2)指令譯碼器ID(InstructionDecoder):用來對(duì)指令寄存器IR中的指令操作碼字段(指令中用來說明指令功能的字段)進(jìn)行譯碼,以確定該指令應(yīng)執(zhí)行什么操作。(3)可編程邏輯陣列PLA(ProgrammableLogicArray):用來產(chǎn)生取指令和執(zhí)行指令所需要的各種微操作控制信號(hào),并經(jīng)過控制總線CB送往有關(guān)部件,從而使計(jì)算機(jī)完成相應(yīng)的操作。(2)指令譯碼器ID(Instru403.內(nèi)部寄存器陣列

1)程序計(jì)數(shù)器PC(ProgramCounter)程序計(jì)數(shù)器有時(shí)也被稱為指令指針I(yè)P(InstructionPointer)。它被用來存放下一條要執(zhí)行指令所在存儲(chǔ)單元的地址。在程序開始執(zhí)行前,必須將它的起始地址,即程序的第一條指令所在的存儲(chǔ)單元地址送入PC。當(dāng)執(zhí)行指令時(shí),CPU將自動(dòng)修改PC內(nèi)容,以便使其保持的總是將要執(zhí)行的下一條指令的地址。由于大多數(shù)指令是按順序執(zhí)行的,所以修改的辦法通常只是簡(jiǎn)單地對(duì)PC加1。但遇到跳轉(zhuǎn)等改變程序執(zhí)行順序的指令時(shí),后繼指令的地址(即PC的內(nèi)容)將從指令寄存器IR中的地址字段得到。3.內(nèi)部寄存器陣列1)程序計(jì)數(shù)412)地址寄存器AR(AddressRegister):地址寄存器用來存放正要取出的指令的地址或操作數(shù)的地址。由于在內(nèi)存單元和CPU之間存在著操作速度上的差異,所以必須使用地址寄存器來保持地址信息,直到內(nèi)存的讀/寫操作完成為止。在取指令時(shí),PC中存放的指令地址送到AR,根據(jù)此地址從存儲(chǔ)器中取出指令。在取操作數(shù)時(shí),將操作數(shù)地址通過內(nèi)部數(shù)據(jù)總線送到AR,再根據(jù)此地址從存儲(chǔ)器中取出操作數(shù);在向存儲(chǔ)器存入數(shù)據(jù)時(shí),也要先將待寫入數(shù)據(jù)的地址送到AR,再根據(jù)此地址向存儲(chǔ)器寫入數(shù)據(jù)。2)地址寄存器AR(AddressRegi423)數(shù)據(jù)緩沖寄存器DR(DataRegister)數(shù)據(jù)緩沖寄存器用來暫時(shí)存放指令或數(shù)據(jù)。從存儲(chǔ)器讀出時(shí),若讀出的是指令,經(jīng)DR暫存的指令經(jīng)過內(nèi)部數(shù)據(jù)總線送到指令寄存器IR;若讀出的是數(shù)據(jù),則通過內(nèi)部數(shù)據(jù)總線送到運(yùn)算器或有關(guān)的寄存器。同樣,當(dāng)向存儲(chǔ)器寫入數(shù)據(jù)時(shí),也首先將其存放在數(shù)據(jù)緩沖寄存器DR中,然后再經(jīng)數(shù)據(jù)總線送入存儲(chǔ)器。可以看出,數(shù)據(jù)緩沖寄存器 DR是CPU和內(nèi)存、外部設(shè)備之間信息傳送的中轉(zhuǎn)站,用來補(bǔ)償CPU和內(nèi)存、外圍設(shè)備之間在操作速度上存在的差異。3)數(shù)據(jù)緩沖寄存器DR(DataReg434)指令寄存器IR(InstructionRegister)指令寄存器用來保存從存儲(chǔ)器取出的將要執(zhí)行的指令碼,以便指令譯碼器對(duì)其操作碼字段進(jìn)行譯碼,產(chǎn)生執(zhí)行該指令所需的微操作命令。4)指令寄存器IR(Instructio445)累加器A(Accumulator)累加器是使用最頻繁的一個(gè)寄存器。在執(zhí)行算術(shù)邏輯運(yùn)算時(shí),它用來存放一個(gè)操作數(shù),而運(yùn)算結(jié)果通常又放回累加器,其中原有信息隨即被破壞。所以,顧名思義,累加器是用來暫時(shí)存放ALU運(yùn)算結(jié)果的。顯然,CPU中至少應(yīng)有一個(gè)累加器。目前CPU中通常有很多個(gè)累加器。當(dāng)使用多個(gè)累加器時(shí),就變成了通用寄存器堆結(jié)構(gòu),其中任何一個(gè)既可存放目的操作數(shù),也可以放源操作數(shù)。例如本書介紹的80x86系列CPU就采用了這種累加器結(jié)構(gòu)。5)累加器A(Accumulator)456)標(biāo)志寄存器FLAGS(FlagRegister)標(biāo)志寄存器有時(shí)也稱為程序狀態(tài)字PSW(ProgramStatusWord)。它用來存放執(zhí)行算術(shù)運(yùn)算指令、邏輯運(yùn)算指令或測(cè)試指令后建立的各種狀態(tài)碼內(nèi)容以及對(duì)CPU操作進(jìn)行控制的控制信息。標(biāo)志位的具體設(shè)置及功能隨微處理器型號(hào)的不同而不同。編寫程序時(shí),可以通過測(cè)試有關(guān)標(biāo)志位的狀態(tài)(0或1)來決定程序的流向。6)標(biāo)志寄存器FLAGS(FlagReg461.4.3存儲(chǔ)器這里介紹的存儲(chǔ)器是指內(nèi)存儲(chǔ)器(又稱為主存或內(nèi)存)。它是微型計(jì)算機(jī)的存儲(chǔ)和記憶裝置,用來存放指令、原始數(shù)據(jù)、中間結(jié)果和最終結(jié)果。在計(jì)算機(jī)內(nèi)部,程序和數(shù)據(jù)都以二進(jìn)制形式表示,8位二進(jìn)制代碼作為一個(gè)字節(jié)。為了便于對(duì)存儲(chǔ)器進(jìn)行訪問,存儲(chǔ)器通常被劃分為許多單元,每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的二進(jìn)制信息,每個(gè)存儲(chǔ)單元分別賦予一個(gè)編號(hào),稱為地址。如圖1.5所示,地址為4005H的存儲(chǔ)單元中存放了一個(gè)八位二進(jìn)制信息00111000B。1.4.3存儲(chǔ)器47E7H34HA5HF2H38H……4001H4002H4003H4004H4005H……地址指令或數(shù)據(jù)內(nèi)容00111000圖1.5內(nèi)存單元的地址和內(nèi)容E7H4001H地址指令或數(shù)據(jù)內(nèi)容0048有關(guān)存儲(chǔ)器的基本概念1.位(Bit):二進(jìn)制信息的最小單位(0或1)2.字節(jié)(Byte):由8位二進(jìn)制數(shù)組成,可以存放在一個(gè)存儲(chǔ)單元中。是字的基本組成單位。3.字(Word):計(jì)算機(jī)中作為一個(gè)整體來處理和運(yùn)算的一組二進(jìn)制數(shù),是字節(jié)的整數(shù)倍。通常它與計(jì)算機(jī)內(nèi)部的寄存器、算術(shù)邏輯單元、數(shù)據(jù)總線寬度相一致。每個(gè)字包括的位數(shù)稱為計(jì)算機(jī)的字長(zhǎng),是計(jì)算機(jī)的重要性能指標(biāo)。目前為了表示方便,常把一個(gè)字定義為16位,把一個(gè)雙字定義為32位。有關(guān)存儲(chǔ)器的基本概念494.內(nèi)存容量:內(nèi)存中存儲(chǔ)單元的總數(shù)。通常以字節(jié)為單位,1024(210)字節(jié)記作1KB,220字節(jié)記作1MB。

5.內(nèi)存單元地址:為了能識(shí)別不同的單元,每個(gè)單元都賦予一個(gè)編號(hào),這個(gè)編號(hào)稱之為內(nèi)存單元地址。顯然,各內(nèi)存單元的地址與該地址對(duì)應(yīng)的單元中存放的內(nèi)容是兩個(gè)完全不同的概念,不可混淆。4.內(nèi)存容量:內(nèi)存中存儲(chǔ)單元的總數(shù)。通常以字節(jié)502.內(nèi)存的操作CPU對(duì)內(nèi)存的操作有兩種:讀或?qū)?。讀操作是CPU將內(nèi)存單元的內(nèi)容讀入CPU內(nèi)部,而寫操作是CPU將其內(nèi)部信息送到內(nèi)存單元保存起來。顯然,寫操作的結(jié)果改變了被寫內(nèi)存單元的內(nèi)容,是破壞性的,而讀操作是非破壞性的,即該內(nèi)存單元的內(nèi)容在信息被讀出之后仍保持原信息不變。2.內(nèi)存的操作51從內(nèi)存單元讀出信息的操作過程如圖1.6(a)所示。假設(shè)將地址為90H的單元中的內(nèi)容10111010B(BAH)讀入CPU,其操作過程如下:(1)CPU經(jīng)地址寄存器AR將要讀取單元的地址信息10010000B(90H)送地址總線,經(jīng)地址譯碼器選中90H單元。(2)CPU發(fā)出“讀”控制信號(hào)。(3)在讀控制信號(hào)的作用下,將90H單元中的內(nèi)容10111010B(BAH)放到數(shù)據(jù)總線上,然后經(jīng)數(shù)據(jù)緩沖寄存器DR送入CPU中的有關(guān)部件進(jìn)行處理。從內(nèi)存單元讀出信息的操作過程如圖1.6(a)52地址譯碼器10101101B00011010B10111010B00100010B內(nèi)容地址00H01HFFH90HAB10010000B來自CPU的寫信號(hào)00000000BDB地址譯碼器10101101B00011010B10111010B00100010B內(nèi)容地址00H01HFFH90HAB10010000B10111010BDB來自CPU的讀信號(hào)(a)內(nèi)存讀操作過程示意圖(b)內(nèi)存寫操作過程示意圖圖1.6內(nèi)存讀寫操作過程示意圖10101101B內(nèi)容地址00H01HFFH90HAB10053向內(nèi)存單元寫入信息的操作如圖1.6(b)所示。假定要將數(shù)據(jù)0寫入內(nèi)存中地址為90H的單元,其操作過程如下:(1)寫入單元的地址信息90H經(jīng)地址寄存器AR送到地址總線上。(2)待寫入的數(shù)據(jù)00000000B經(jīng)數(shù)據(jù)緩沖寄存器DR放到數(shù)據(jù)總線上。(3)CPU發(fā)出“寫”控制信號(hào),在該信號(hào)的作用下將數(shù)據(jù)0寫入90H單元。此時(shí),90H單元中原有的內(nèi)容10111010B就會(huì)被00000000B所替代。向內(nèi)存單元寫入信息的操作如圖1.6(b)所示543.內(nèi)存的分類按工作方式,內(nèi)存可分為兩大類:隨機(jī)讀寫存儲(chǔ)器RAM(RandomAccessMemory)和只讀存儲(chǔ)器ROM(ReadOnlyMemory)。隨機(jī)讀寫存儲(chǔ)器可被CPU隨機(jī)地讀寫,它用于存放將要被CPU執(zhí)行的用戶程序、數(shù)據(jù)以及部分系統(tǒng)程序。斷電后,其中存放的所有信息將丟失。只讀存儲(chǔ)器中的信息只能被CPU讀取,而不能由CPU任意地寫入。斷電后,其中的信息不會(huì)丟失。它用于存放永久性的程序和數(shù)據(jù)。如系統(tǒng)引導(dǎo)程序、監(jiān)控程序、操作系統(tǒng)中的基本輸入/輸出管理程序(BIOS)等。3.內(nèi)存的分類551.4.4I/O接口與輸入輸出設(shè)備I/O接口是微型計(jì)算機(jī)與輸入輸出設(shè)備之間信息交換的橋梁。I/O設(shè)備是微型計(jì)算機(jī)系統(tǒng)的重要組成部分。程序、數(shù)據(jù)及現(xiàn)場(chǎng)信息要通過輸入設(shè)備輸入給計(jì)算機(jī)。計(jì)算機(jī)的處理結(jié)果要通過輸出設(shè)備輸出,以便用戶使用。常用的輸入設(shè)備有:鍵盤、鼠標(biāo)、數(shù)字化儀、掃描儀、A/D轉(zhuǎn)換器等。常用的輸出設(shè)備有顯示器、打印機(jī)、繪圖儀、D/A轉(zhuǎn)換器等。1.4.4I/O接口與輸入輸出設(shè)備561.5微型計(jì)算機(jī)的工作過程

高級(jí)語言是不依賴于具體機(jī)型只面向過程的程序設(shè)計(jì)語言,由它所編寫的高級(jí)語言程序,需經(jīng)過編譯程序或解釋程序的編譯或解釋生成機(jī)器語言程序后才能執(zhí)行?;靖拍顧C(jī)器語言程序是計(jì)算機(jī)能夠理解和直接執(zhí)行的程序,其指令是用二進(jìn)制代碼表示和存儲(chǔ)的。匯編語言程序是用助記符語言表示的程序,計(jì)算機(jī)不能直接“識(shí)別”,需要經(jīng)過“匯編程序”把它轉(zhuǎn)換為對(duì)應(yīng)的機(jī)器語言程序后才能執(zhí)行。1.5微型計(jì)算機(jī)的工作過程高級(jí)語言是不依賴于具體機(jī)型只571.5微型計(jì)算機(jī)的工作過程

不論程序是用什么語言編寫,都必須首先將其轉(zhuǎn)換為計(jì)算機(jī)能直接識(shí)別和執(zhí)行的機(jī)器語言程序,然后才能由CPU逐條讀取并執(zhí)行。表1.1為在

溫馨提示

  • 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)論