計(jì)算機(jī)基礎(chǔ)教材_第1頁
計(jì)算機(jī)基礎(chǔ)教材_第2頁
計(jì)算機(jī)基礎(chǔ)教材_第3頁
計(jì)算機(jī)基礎(chǔ)教材_第4頁
計(jì)算機(jī)基礎(chǔ)教材_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第一部分計(jì)算機(jī)簡單知識的介紹 第一章微機(jī)系統(tǒng)導(dǎo)論本章首先從總體上說明微型計(jì)算機(jī)(簡稱微機(jī))系統(tǒng)組成的基本概念,并對硬件系統(tǒng)和軟件系統(tǒng)兩部分的具體組成作一簡要介紹。然后,重點(diǎn)討論典型的單總線微機(jī)硬件系統(tǒng)結(jié)構(gòu),微處理器組織及各部分的作用,存 儲器組織其讀寫操作過程。在此基礎(chǔ)上,將微處理器和存儲器結(jié)合起來組成一個最簡單的微 機(jī)模型,通過具體例子說明微機(jī)的運(yùn)行機(jī)理與工作過程。1.1微機(jī)系統(tǒng)組成一、幾個基本定義微處理器、微型計(jì)算機(jī)和微型計(jì)算機(jī)系統(tǒng),這是三個含義不同但又有著密切依存關(guān)系的基本概念。(一)微處理器微處理器簡稱 卩p或MP( Microprocessor ),是指由一片或幾片大規(guī)模集成電路組成

2、的 具有運(yùn)算器和控制器功能的中央處理器部件,又稱為微處理機(jī)。它本身并不等于微型計(jì)算機(jī),而只是其中央處理器。有時為區(qū)別大、中、小型中央處理器 CPU( Central Processing Unit ) 與微處理器,而稱后者為 MPU( Microproccssing Unit )。通常,在微型計(jì)算機(jī)中直接用CPU表示微處理器。(二)微型計(jì)算機(jī)微型計(jì)算機(jī)簡稱 卩C或MC( Microcomputer ),是指以微處理器為核心,配上存儲器、輸入/輸出接口電路及系統(tǒng)總線所組成的計(jì)算機(jī)(又稱主機(jī)或微電腦)。當(dāng)把微處理器、存儲器和輸入/輸出接口電路統(tǒng)一組裝在一塊或多塊電路板上或集成在單片芯片上,則分別稱

3、之為 單板、多板或單片微型計(jì)算機(jī)。(三)微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)系統(tǒng)簡稱 CS和MCS( Microcomputer system ),是指以微型計(jì)算機(jī)為中心。 配以相應(yīng)的外圍設(shè)備、電源和輔助電路(統(tǒng)稱硬件)以及指揮微型計(jì)算機(jī)工作的系統(tǒng)軟件所 構(gòu)成的系統(tǒng)。以上三者的含義及相互關(guān)系如圖1.1所示。二、微型計(jì)算機(jī)系統(tǒng)的組成微型計(jì)算機(jī)系統(tǒng)與任何其它計(jì)算機(jī)系統(tǒng)一樣,由硬件和軟件兩個主要部分組成。<算術(shù)邏輯單元(AUL微處理器Y控制單元(CU-寄存器陣列(RA)內(nèi)存儲器ROM,RAM硬件微型計(jì)算機(jī)并行I/O接口電路輸入/輸出接口電路Y-串行I/O接口電路地址總線(AB) 數(shù)據(jù)總線(DE) 控制總線

4、(CE)微型計(jì)算機(jī)系統(tǒng)外部設(shè)備鍵盤/顯示器外圍設(shè)備打印機(jī),繪圖儀,CRT終端 外存儲器,磁帶,磁盤,光盤 輸入器,語音識別過程控制I/O通道JA/D , D/A轉(zhuǎn)換器電源-開關(guān)量,信號指示I/O器軟件 系統(tǒng)軟件應(yīng)用軟件圖1.1存儲芯片輸出設(shè)備存儲器輸 岀 設(shè) 備 輸入為出接口芯片微型計(jì)舁機(jī)圖1.2微機(jī)硬件系統(tǒng)組成(一)硬件微機(jī)硬件系統(tǒng)的組成如圖 1.2所示。圖中,微處理器是微機(jī)的運(yùn)算、 控制中心,用來實(shí) 現(xiàn)算術(shù)、邏輯運(yùn)算,并對全機(jī)進(jìn)行控制。存儲器(簡稱主存或內(nèi)存)用來存儲程序或數(shù)據(jù)。輸入/輸出(I/O )芯片是微機(jī)與輸入輸出設(shè)備之間的接口。(二)軟件計(jì)算機(jī)軟件通常分為兩大類: 系統(tǒng)軟件和用戶軟

5、件。 系統(tǒng)軟件是指不需要用戶干預(yù)的能 生成、準(zhǔn)備和執(zhí)行其它程序所需的一組程序。 用戶軟件是使用者為解題或?qū)崿F(xiàn)檢測與實(shí)時控 制等不同任務(wù)所編制的應(yīng)用程序。程序的分級結(jié)構(gòu)如圖 1.3所示。操作系統(tǒng)常駐監(jiān)扌空程序系統(tǒng)爲(wèi)戶程序用戶程序庫用戶 V圖1.3軟件的分級結(jié)構(gòu)操作系統(tǒng)是一套復(fù)雜的系統(tǒng)軟件, 用于提供人機(jī)接口和管理、 調(diào)度計(jì)算機(jī)的所有硬件與 軟件資源。其中,最為重要的核心部分是常駐監(jiān)控程序。計(jì)算機(jī)開機(jī)后,常駐監(jiān)控程序始終存放在內(nèi)存中,它通過接收用戶命令,并啟動操作系統(tǒng)執(zhí)行相應(yīng)的操作。操作系統(tǒng)還包括I/O管理程序和文件管理程序。 前者用于管理I/O操作,后者用于管理 存放在外存(或海量存儲器)中的大

6、量數(shù)據(jù)集合。每當(dāng)用戶程序或其它系統(tǒng)程序需要使用 I/O設(shè)備時,通常并不是由這些程序自己直接執(zhí)行I/O操作,而是通過調(diào)用操作系統(tǒng)I/O管理程序來完成所需的任務(wù)。I/O管理程序是通過相應(yīng)的 I/O設(shè)備的驅(qū)動程序來使用硬件的。 文件管理程序與I/O管理程序配合使用,就可完成文件的存取、復(fù)制等各種文件操作。此外,系統(tǒng)軟件還包括各種高級語言翻譯程序、匯編程序、文本編輯程序以及輔助編寫其它程序的程序。程序設(shè)計(jì)分為三級:1. 機(jī)器語言程序設(shè)計(jì);2. 匯編語言程序設(shè)計(jì);3. 高級語言程序設(shè)計(jì)。機(jī)器語言程序是計(jì)算機(jī)能理解和直接執(zhí)行的程序。匯編語言程序是用助記符語言表示的程序,計(jì)算機(jī)不能直接“識別”,需經(jīng)過稱之為

7、匯編程序的程序?qū)⑵浞g為機(jī)器語言后方能 執(zhí)行。機(jī)器語言指令與匯編語言指令基本上一一一對應(yīng),都面向機(jī)器。而高級語言是不依賴于具體機(jī)器它是一種面向應(yīng)用的程序設(shè)計(jì)語言,由它所編寫的程序,需經(jīng)過編譯程序或解釋程序的翻譯方能執(zhí)行。文本編輯程序是供輸入或修改文本(字母、數(shù)字或標(biāo)點(diǎn)等組成的一組字符或代碼序列) 用的程序,存于海量存儲器中;它有幾種用途,主要可用來生成程序。系統(tǒng)程序庫是操作系統(tǒng)所提供的一系列供用戶使用的子程序庫,而鏈接程序與裝入程序是編譯系統(tǒng)提供的用以將源程序文件轉(zhuǎn)換成可運(yùn)行的程序的工具程序。系統(tǒng)程序庫中的子程 序可以被任何系統(tǒng)程序或用戶程序調(diào)用。 把已編譯的程序與程序庫及其它已翻譯好的程序連

8、 接起來所用的工具稱為連接程序或連接編輯程序; 另一種工具程序是用來把待執(zhí)行的程序送 入內(nèi)存,稱為裝入程序。有時,連接與裝入功能可合成為一個程序。以上分別談了軟件和硬件,其實(shí)一個微型計(jì)算機(jī)系統(tǒng)是一個有機(jī)的整體。即是說,只有軟件和硬件很好地配合在一起工作時,才能最大的發(fā)揮計(jì)算機(jī)的作用。我們可以把硬件看成是微型計(jì)算機(jī)的基礎(chǔ),就像蓋房子的地基一樣,而軟件則是在些基礎(chǔ)上才能正確的運(yùn)行;一個微型計(jì)算機(jī)系統(tǒng)有很多硬件,而助使用者還會在此基礎(chǔ)上再增加自己需要的硬件,為了使這些硬件能夠有序地工作,為使用者服務(wù),就必須有軟件來對硬件進(jìn)行管理。因此,可以說,硬件是基礎(chǔ),軟件是靈魂。微型計(jì)算機(jī)系統(tǒng)中缺了硬件,就會使

9、軟件無所依,而微型計(jì)算機(jī)缺了軟件,只能是廢鐵一堆,毫無用處。隨著計(jì)算機(jī)技術(shù)的發(fā)展, 計(jì)算機(jī)的硬件系統(tǒng)和軟件系統(tǒng)之間的分界線越來越不明顯了,有一些硬件可完成軟件的功能,如嵌入式系統(tǒng),而一些軟件同樣可完成硬件的一些功能,如仿真程序。從這可以看出,兩者的趨勢是要相互融合, 相互促進(jìn)。人是通過軟件系統(tǒng)與硬件系統(tǒng)發(fā)生關(guān)系的,通常,由人使用程序設(shè)計(jì)語言編制應(yīng)用程序,在系統(tǒng)軟件的干預(yù)下使用硬件系統(tǒng)。一個具體的微型計(jì)算機(jī)系統(tǒng),它所包括的硬件和軟件數(shù)量各不相同,究竟應(yīng)包括多少, 要根據(jù)應(yīng)用場合對系統(tǒng)功能方面的要求來確定。1.2微機(jī)硬件系統(tǒng)結(jié)構(gòu)微機(jī)硬件系統(tǒng)結(jié)構(gòu)指的是按照總體布局的設(shè)計(jì)要求,將各部件構(gòu)成一個系統(tǒng)時的

10、連接方式。一種典型的微機(jī)硬件系統(tǒng)結(jié)構(gòu)如圖1.4所示。圖中,用系統(tǒng)總線將各個部件連接起來??偩€是用來傳送信息的公共導(dǎo)線,它們可以是電纜,也可以是印刷電路板(PCB上的連線。所有的信息都通過總線傳送。通常,根據(jù)所傳送信息的內(nèi)容與作用不同,可將總線分為三類:數(shù)據(jù)總線 DB(Data Bus)、地址總線 AB(Address Bus)、控制總線 CB(Control Bus)。 這是一種單總線系統(tǒng)結(jié)構(gòu),系統(tǒng)中各部件均掛在單總線上,所以又稱為面向系統(tǒng)的單總線結(jié)圖1.4 微機(jī)硬件系統(tǒng)結(jié)構(gòu)在微型計(jì)算機(jī)中有兩股信息流(數(shù)據(jù)信息流和控制信息流)在流動。在單總線系統(tǒng)中,通過單總線實(shí)現(xiàn)微處理器、存儲器和所有I/O設(shè)

11、備之間的信息交換。 由于各部件均以同一形式掛在單總線上, 結(jié)構(gòu)簡單、易于擴(kuò)充,所以目前絕大多數(shù)微機(jī)硬件系統(tǒng)均采用這種結(jié) 構(gòu)。1.3微處理器組成圖1.5給出了一個簡化的微處理器結(jié)構(gòu)。由圖中可知,微處理器由運(yùn)算器、 控制器和內(nèi)部寄存器陣列三部分組成。現(xiàn)將各部件的功能簡述如下。圖1.5微處理器結(jié)構(gòu)一、運(yùn)算器運(yùn)算器又稱為算述邏輯單元ALU (Arithmetic Logic Un it ),用來進(jìn)行算術(shù)或邏輯運(yùn)算以及位移循環(huán)等操作。參加運(yùn)算的兩個操作數(shù),通常,一個來自累加器A (Accumulator),另一個來自內(nèi)部數(shù)據(jù)總線,可以是數(shù)據(jù)寄存器DR( Data Register )中的內(nèi)容,也可以是寄

12、存器陣列RA中某個寄存器的內(nèi)容。運(yùn)算結(jié)果往往也送回累加器A保存。二、控制器(一)指令寄存器 IR (Instruction Register)指令寄存器用來存放從存儲器取出的將要執(zhí)行的指令(實(shí)為其操作碼)。(二)指令譯碼器 ID (Instruction Decoder)指令譯碼器ID用來對指令寄存器IR中的指令進(jìn)行譯碼,以確定該指令應(yīng)執(zhí)行什么操作。(三)可編程邏輯陣列 PLA (Programmable Logic Array )(也稱為定時與控制電路 )可編程邏輯陣列用來產(chǎn)生取指令和執(zhí)行指令所需的各種微操作控制信號。由于每條指令所執(zhí)行的具體操作不同,所以,每條指令將對應(yīng)控制信號的某一種組合

13、,以確定相應(yīng)的操作序列。三、內(nèi)部寄存器陣列通常,內(nèi)部寄存器陣列包括若干組寄存器。(一)累加器A累加器是用的最頻繁的一個寄存器。在進(jìn)行算術(shù)邏輯運(yùn)算時,它具有雙重功能:運(yùn)算前,用來保存一個操作數(shù);運(yùn)算后,用來保存結(jié)果。(二)數(shù)據(jù)寄存器 DR數(shù)據(jù)寄存器DR用來暫存數(shù)據(jù)或指令。從存儲器讀出時,若讀出的是指令,經(jīng)DR暫存的指令通過內(nèi)部數(shù)據(jù)總線送到指令寄存器IR ;若讀出的是數(shù)據(jù),則通過內(nèi)部數(shù)據(jù)總線送到有關(guān)的寄存器或運(yùn)算器。向存儲器寫入數(shù)據(jù)時,數(shù)據(jù)是經(jīng)數(shù)據(jù)寄存器DR再經(jīng)數(shù)據(jù)總線 DB寫入存儲器的。(三)程序計(jì)數(shù)器 PC( Program Counter )程序計(jì)數(shù)器PC中存放著正待執(zhí)行的指令的地址。根據(jù)P

14、C中的地址,準(zhǔn)備從存儲器中取出將要執(zhí)行的指令。通常,程序按順序逐條執(zhí)行其中的指令,因此,在任何時刻,PC總是指向下一條將要執(zhí)行的指令的起始地址。(四)地址寄存器 AR( Address Register )地址寄存器AR用來存放正要取出的指令的地址或操作數(shù)的地址。在取指令時,將 PC中存放的指令地址送到 AR根據(jù)此地址從存儲器中取出指令。在取操作數(shù)時,將操作數(shù)地址通過內(nèi)部數(shù)據(jù)總線送到AR再根據(jù)此地址從存儲器中取出操作數(shù);在向存儲器存入數(shù)據(jù)時,也要先將待寫入數(shù)據(jù)的地址送到AR,再根據(jù)此地址向存儲器寫入數(shù)據(jù)。(五)標(biāo)志寄存器 F ( Flag Register )標(biāo)志寄存器F用來寄存執(zhí)行指令時所產(chǎn)

15、生的結(jié)果或狀態(tài)的標(biāo)志信號。關(guān)于標(biāo)志位的具體設(shè)置與功能將視微處理器的型號而異。根據(jù)檢測有關(guān)的標(biāo)志位是0或1可以按不同條件決定程序的流向。1.4存儲器一、基本概念存儲器用來存放數(shù)據(jù)和程序。在計(jì)算機(jī)內(nèi)部,數(shù)據(jù)和程序都用二進(jìn)制代碼的形式表示。在微機(jī)中,一般用 8位二進(jìn)制代碼作為一個字節(jié)(Byte )。用一個或幾字節(jié)組成一個字 (Word)。一般情況下,一個字的字長是兩個字節(jié),即16位二進(jìn)制數(shù)。如果用字表示一個數(shù),稱為數(shù)據(jù)字;表示一條指令,稱為指令字。數(shù)據(jù)字和指令字的長度可以是字的整數(shù)倍,如雙字長數(shù)據(jù),或多倍字長指令等。微機(jī)的字長多為16位,即一個字,高檔微機(jī)的字長可達(dá)64位,即4字長。一個存儲器可劃分

16、為很多存儲單元。存儲單元中的內(nèi)容為數(shù)據(jù)或指令。為了能識別不同的單元,我們分別賦予每個單元一個編號。這個編號稱之為地址。 顯然,各存儲單元的地址與存儲單元的內(nèi)容是完全不同的概念,不可混淆。二、存儲器組成現(xiàn)假定存儲器由256個單元組成,每個單元存儲 8位二進(jìn)制信息,即字長為 8位,圖 1.6示出一種隨機(jī)存取存儲器的結(jié)構(gòu)簡圖(隨機(jī)存取存儲器RAM( Ran dom Access Memory)。所謂“隨機(jī)存取”即所有存儲單元均可隨時被訪問,既可以讀出也可以寫入信息)。這種規(guī)格的隨機(jī)存取存儲器,通常稱為 2568位的存儲器。00地址幸自CPU的範(fàn)址入r從CPU未的|萄寫 徑返于CPUFEFF穆機(jī)存取棄

17、錯畧|FE單元FF單元00單無 oTSs 雯卑元 W單元圖1.6隨機(jī)存儲器結(jié)構(gòu)簡圖從圖中可見,隨機(jī)存取存儲器由存儲體、地址譯碼器和控制電路組成。存儲體共有256個存儲單元,其編號從 00H (十六進(jìn)制表示)到 FFH,即從00000000到11111111。地址譯 碼器接收從地址總線 AB送來的地址碼,經(jīng)譯碼器譯碼選中相應(yīng)的某個存儲單元,然后要讀 出或?qū)懭氲臄?shù)據(jù)就會出現(xiàn)在數(shù)據(jù)總線上,最后即可被CPU取走(讀出),或保存(寫入)到該存儲單元中??刂齐娐酚脕砜刂拼鎯ζ鞯淖x/寫操作過程。三、讀/寫操作過程從存儲器讀出信息的操作過程如圖1.7a所示。假定CPU要讀出存儲器04H單元的內(nèi)容1001011

18、1即97H,貝( 1)CPU的地址寄存器 AR先給出地址04H并放到地址總線上,經(jīng)地 址譯碼器譯碼選中 04H單元;(2) CPU發(fā)出“讀”控制信號給存儲器,指示它準(zhǔn)備把被尋找 的04H單元中的內(nèi)容97H放到數(shù)據(jù)總線上;(3)在讀控制信號的作用下,存儲器將04H單元中的內(nèi)容97H放到數(shù)據(jù)總線上,經(jīng)它送至數(shù)據(jù)寄存器DR然后由CPU取走該內(nèi)容作為所需要的信息使用。100101111001C01JQ圖 1.7 a圖 1.7 b應(yīng)當(dāng)指出,讀操作完成后,04H單元中的內(nèi)容97H仍保持不變,這種特點(diǎn)稱為非破壞性 讀出(NDR Non Destructive Read Out )。這一特點(diǎn)很重要,因?yàn)樗试S

19、多次讀出同一單 元的內(nèi)容。向存儲器寫入信息的操作過程如圖 1.7b所示。假定CPU要把數(shù)據(jù)寄存器 DR中的內(nèi)容 00100110即26H寫入存儲器08H單元,則:(1)CPU的地址寄存器 AR先把地址08H放到地 址總線上,經(jīng)地址譯碼器選中 08H單元;(2)CPU把數(shù)據(jù)寄存器中的內(nèi)容 26H放到數(shù)據(jù)總線 上;(3)CPU向存儲器發(fā)送“寫”控制信號,在該信號的控制下,將內(nèi)容26H寫入被尋址的08單元。應(yīng)當(dāng)注意:寫入操作將破壞該單元原存的內(nèi)容,即由新內(nèi)容26H代替了原來已有的內(nèi)容。1.5微機(jī)工作過程微機(jī)的工作過程就是執(zhí)行程序的過程,而程序由指令序列組成,因此,執(zhí)行程序的過 程,就是執(zhí)行指令序列的

20、過程,即逐條地執(zhí)行指令,由于執(zhí)行每一條指令,都包括取指令與執(zhí)行指令兩個基本階段,所以,微機(jī)的工作過程,也就是不斷地取指令和執(zhí)行指令的過程。微機(jī)執(zhí)行程序過程示意圖如圖1.8所示。的垂列措專描等周期.-m_1? 式ispn指令n馳址珂取出拒令執(zhí)1.8程序執(zhí)行過程示意圖假定程序已由輸入設(shè)備存放到內(nèi)存中。當(dāng)計(jì)算機(jī)要從停機(jī)狀態(tài)進(jìn)入運(yùn)行狀態(tài)時,首先應(yīng)把第一條指令所在的地址賦給程序計(jì)數(shù)器PC,然后機(jī)器就進(jìn)入取指階段。在取指階段, CPU從內(nèi)存中讀出的內(nèi)容必為指令,于是,數(shù)據(jù)寄存器DR便把它送至指令寄存器IR ;然后由指令譯碼器譯碼,控制器就發(fā)出相應(yīng)的控制信號,CPU便知道該條指令要執(zhí)行什么操作,在取指階段結(jié)

21、束后,機(jī)器就進(jìn)入執(zhí)行指令的階段,這時,CPU執(zhí)行指令所規(guī)定的具體操作。當(dāng)一條指令執(zhí)行完畢以后,就轉(zhuǎn)入了下一條指令的取指階段。這樣周而復(fù)始地循環(huán)一直進(jìn)行到程 序中遇到暫停指令時方才結(jié)束。取指階段都是由一系列相同的操作組成的, 所以,取指階段的時間總是相同的, 它稱為 公操作。而執(zhí)行指令階段將由不同的事件順序組成,它取決于被執(zhí)行指令的類型,因此,執(zhí)行指令階段的時間從一條指令到下一條指令變化相當(dāng)大。應(yīng)當(dāng)指出的是,指令通常包括操作碼(Operation Code )和操作數(shù)(Opera nd)兩大部分。操作碼表示計(jì)算機(jī)執(zhí)行什么樣的具體操作,而操作數(shù)表示參加操作的數(shù)的本身或操作數(shù)所在的地址,也稱之為地址

22、碼。在8位機(jī)中,由于一個存儲單元只能存放一個字節(jié),而指令根據(jù)其所含內(nèi)容不同而有單字節(jié)、雙字節(jié)、三字節(jié)用至最多四字節(jié)之分,因此,在執(zhí)行一條 指令時,就可能要處理 1 4個不等字節(jié)數(shù)目的代碼信息,包括操作碼、操作數(shù)或操作數(shù)的 地址。為了進(jìn)一步說明微機(jī)的工作過程,我們來具體討論一個模型機(jī)怎樣執(zhí)行一段簡單的程序。例如,計(jì)算機(jī)如何具體計(jì)算3+2=?雖然這是一個相當(dāng)簡單的加法運(yùn)算,但是,計(jì)算機(jī)卻無法理解。人們必須要先編寫一段程序,以計(jì)算機(jī)能夠理解的語言告訴它如何一步一步地 去做,直到每一個細(xì)節(jié)都詳盡無誤,計(jì)算機(jī)才能正確地理解與執(zhí)行。在編寫程序之前,必須首先查閱所使用的微處理器的指令表(或指令系統(tǒng)),它是某

23、種微處理器所能執(zhí)行的全部操作命令匯總。 不同系統(tǒng)的微處理器各自具有不同的指令表。 假定 查到模型機(jī)的指令表中可以用三條指令求解這個問題。表1.1示出了這三條指令及其說明。表中第一列為指令的名稱。編寫程序時,寫指令的全名是不方便的,因此,人們給每條指令規(guī)定了一個縮寫詞,稱之為助記符,第二列即助記符。第三列為機(jī)器碼,機(jī)器碼用二進(jìn)制或十六進(jìn)制兩種形式表示(注:計(jì)算機(jī)只識別二進(jìn)制數(shù),用十六進(jìn)制表示,是為了縮短長 度),計(jì)算機(jī)和程序員用它來表示指令。最后一列,確切地說明了執(zhí)行一條指令時所完成的 具體操作。表1.1模型機(jī)指令表之一名稱助記符操作碼說明立即數(shù)取入累加器LD A,(n)00111110 n3E

24、n這是一條雙字節(jié)指令,把 第二字節(jié)的立即數(shù) n取 入累加器A加立即數(shù)ADD A, n11000110 nC6n這是一條雙字節(jié)指令,把 指令第二字節(jié)的立即數(shù) n 與A中的內(nèi)容相加,結(jié)果 暫存A暫停HALT0111011076停止所有操作現(xiàn)在我們來編寫3+2= ?的程序。根據(jù)指令表提供的指令,用助記符形式和十進(jìn)制數(shù)表示的加法運(yùn)算的程序可表達(dá)為:LD A,3ADD A 2HALT個二進(jìn)制數(shù))代替助記符,但是,模型機(jī)卻并不認(rèn)識助記符和十進(jìn)制數(shù),而只認(rèn)識用二進(jìn)制數(shù)表示的操作碼和操作數(shù)。 因此,必須按二進(jìn)制數(shù)的形式來寫程序,即用對應(yīng)的操作碼(是并把十進(jìn)制數(shù)轉(zhuǎn)換為用相應(yīng)的二進(jìn)制數(shù)。LD A,3 變成 001

25、11110;操作碼(LDA n) 00000011;操作數(shù)(3)ADD A 2 變成 1100 0110 操作碼(ADD A0000 0010;操作數(shù)(2)HALT 變成 0111 0110;操作碼(HALT)注意,整個程序是3個指令5個字節(jié)。因此, 儲單元。假設(shè)我們把它存放在存儲器的最前面 這5個單元,如圖1.9所示。地址十八進(jìn)制二進(jìn)制000000 0000010000 0001020000 0010030000 0011040000 0100FF1111 1111圖1.9n)當(dāng)把這段程序存入存儲器時,共需要占5個存5個單元里,則該程序?qū)⒄加袕?0H至04H助記符內(nèi)容LD A,n03ADD

26、A n02HALT指令內(nèi)容0011 11100000 00111100 01100000 00100111 0110存儲器中的指令還要指出:每個單元具有兩組和它有關(guān)的位二進(jìn)制數(shù),其中無黑方框邊的一組是它的地址,有黑方框的一組是該地址中的內(nèi)容,切不可將兩組數(shù)的含義相混淆。地址是固定的,在臺微機(jī)造好以后,它的地址也就確定了;而表示的內(nèi)容則可以隨所存入的內(nèi)容而改變。當(dāng)程序存入存儲器以后,微機(jī)內(nèi)部執(zhí)行程序的具體操作過程如下:開始執(zhí)行程序時,必須先給程序計(jì)數(shù)器第一條指令的取指階段,其具體操作過程如圖PC賦以第一條指令的首地址00H,然后就進(jìn)入1.10所示。圖1.10取第一條指令的操作示意圖 把PC勺內(nèi)容

27、001送到地址寄存器AR 當(dāng)PC的內(nèi)容可靠地送入 AR后,PC自動加1,即由00H變?yōu)?1H。注意,此時 AR的 內(nèi)容并沒有變化。 把地址寄存器 AR的內(nèi)容00H放在地址總線上,并送至存儲器,經(jīng)地址譯碼器譯嗎, 選中相應(yīng)的00H單元。 CPU發(fā)出讀命令。 在讀命令控制下,把所選中的00H單元中的內(nèi)容即第一條指令的操作碼3EH讀到數(shù)據(jù)總線DB上。 把讀出的內(nèi)容3EH經(jīng)數(shù)據(jù)總線送到數(shù)據(jù)寄存器 DR 在取指階段的最后一步是指令譯碼。因?yàn)槿〕龅氖侵噶畹牟僮鞔a,故數(shù)據(jù)寄存器DR把它送到指令寄存器IR,然后再送到指令譯碼器 ID,經(jīng)過譯碼,CPU“識別”出這個操作碼 就是LD A, n指令,于是,它“通知

28、”控制器發(fā)出執(zhí)行這條指令的各種控制命令。這就完成了第一條指令的取指階段。3EH譯碼后,CPU就 “知道”這是一條然后轉(zhuǎn)入執(zhí)行第一條指令的階段。經(jīng)過對操作碼所以,執(zhí)行第一條指令就必須把指令中把下一單元中的操作數(shù)取入累加器A的雙字節(jié)指令,的操作數(shù)取出來。取指令第二字節(jié)的過程如圖1.11所示。 把PC的內(nèi)容01H送到地址寄存器 AR 當(dāng)PC勺內(nèi)容可靠地送到 AR后, PC自動加1,變?yōu)?2H。但這時 AR 中的內(nèi)容 01H并未變化。 地址寄存器通過地址總線把地址 01H送到存儲器的地址譯碼器,經(jīng)過譯碼選中相應(yīng) 的01H單元。 CP墳出讀命令。 在讀命令控制下,將選中的01H單元的內(nèi)容03H讀到數(shù)據(jù)總

29、線DRho 通過DBS讀出的內(nèi)容送到數(shù)據(jù)寄存器 DR 因CPU艮據(jù)該條指令具有的字節(jié)數(shù)已知這時讀出的是操作數(shù),且指令要求把它送到累加器A,故由數(shù)據(jù)寄存器DF取出的內(nèi)容就通過內(nèi)部數(shù)據(jù)總線送至累加器A于是第一次執(zhí)指完畢,數(shù)03H被取入累加器A中,并進(jìn)入第二條指令的取指階段。取第二條指令的過程過程與取第一條指令的過程相同,只是在取指階段的最后一步, 讀出的指令操作碼 C6H有DR把它送到指令寄存器,經(jīng)過譯碼發(fā)出相應(yīng)的控制信息。當(dāng)指令 操作碼ID對指令譯碼后,CPU就 “知道”操作碼 C6H表示一條加法指令,取第二條指令的過程如下: 把PC勺內(nèi)容03H送到地址寄存器 AR PC勺內(nèi)容可靠地送到 AF后

30、,PC自動加1 AR!過地址總線把地址號 03H送到地址譯碼器,經(jīng)過譯碼,選中相應(yīng)的03H單元。 CPU發(fā)出讀命令。 在讀命令控制下,將選中的 03H單元的內(nèi)容即數(shù)02H讀至數(shù)據(jù)總線DR上 數(shù)據(jù)通過數(shù)據(jù)總線送到數(shù)據(jù)寄存器 DR。 在對指令譯碼時,CU已知讀出的數(shù)據(jù)02H為操作數(shù),且要將他與已暫存于 A中的內(nèi)容 03H相加,數(shù)據(jù)由DR!過內(nèi)部數(shù)據(jù)總線送至 ALU的另一輸入端I 2。 A中的內(nèi)容送ALU俞入端I i,執(zhí)行加法操作。 把相加的結(jié)果05H由ALU勺輸出端又送到累加器 A中。至此,第二條指令的執(zhí)行階段結(jié)束;A中存入和數(shù)05H,而將原有內(nèi)容03H沖掉;于是,就轉(zhuǎn)入第三條指令的取指階段。程序

31、中的最后一條指令是 HALT。可用類似上面的取指過程把它取出。當(dāng)把HALT指令的操作碼76H取入數(shù)據(jù)寄存器 DR因是取指階段,故 CPU將操作碼76H指令寄存器IR,再送 指令譯碼器ID ;經(jīng)譯碼,CPU “已知”是暫停指令,于是,控制器停止產(chǎn)生各種控制命令, 使計(jì)算機(jī)停止全部操作。這時,程序已完成 3+2的運(yùn)算,并且和數(shù) 5已放在累加器中。以上就是計(jì)算機(jī)運(yùn)算的基本過程。 我們看出它使用了兩種不同字節(jié)類型的指令, 一種是 單字節(jié)指令,如 HALT指令,它只有一個字節(jié)的操作碼而不需要操作數(shù);另一種是雙字節(jié)指 令,如 LD A, n 與 ADD A, n 指令,其第一字節(jié)為操作碼,而第二字節(jié)為操作

32、數(shù),并且,操 作數(shù)的地址就緊跟著指令操作碼的地址。 只要在某個地址中取出操作碼, 則在下一個地址中 就立即能取出操作數(shù)。這是一種簡單的情況,我們將這種可以立即確定操作數(shù)地址的方式, 稱作立即尋址。但是, 在一般情況下, 操作數(shù)是存放在存儲的某一單元中, 而這個單元需要根據(jù)不同情況用 一定方式去尋址。 只有找到某操作數(shù)的存放地址, 才能從中取出該操作數(shù)。 這種按不同方式 尋找操作數(shù)地址的方法稱為尋址方式。 各種微處理器的尋址方式不同, 少則幾種, 多同十幾 種;尋址方式越多,功能就越強(qiáng)。第二章 微機(jī)運(yùn)算基礎(chǔ)計(jì)算機(jī)最基本的功能是進(jìn)行大量“數(shù)”的計(jì)算與加工處理,但計(jì)算機(jī)只能“識別”二 進(jìn)制數(shù)。 所以

33、, 二進(jìn)制數(shù)及其編碼是所有計(jì)算機(jī)的基本語言。 在微機(jī)中還采用了八進(jìn)制和十 六進(jìn)制表示法,它們用二進(jìn)制數(shù)表示和處理非常方便。本章將從十進(jìn)制進(jìn)入手, 再將數(shù)的基本概念引伸到二進(jìn)制、 八進(jìn)制、 十六進(jìn)制等進(jìn)位計(jì) 數(shù)制。 充分理解這些數(shù)制及其相互之間的轉(zhuǎn)換方法,有助于掌握許多數(shù)字編碼。同時,在熟悉二進(jìn)制的基礎(chǔ)上,討論二進(jìn)制的各種算術(shù)運(yùn)算原理。第一節(jié) 數(shù)制所謂數(shù)制是指按進(jìn)位的方法來進(jìn)行計(jì)數(shù)的一種規(guī)則, 簡稱進(jìn)位制。 對于任何一個數(shù), 我 們可以用不同的進(jìn)位制來表示。在進(jìn)位制中,常常要用“基數(shù)” (或稱底數(shù))來區(qū)別不同的數(shù)制,而某進(jìn)位制的基數(shù)就 是表示該進(jìn)位制所用字符或數(shù)碼的個數(shù)。如十進(jìn)制數(shù)用“ 0-9”

34、共十個數(shù)碼表示數(shù)的大小, 故其基數(shù)為 10。為區(qū)分不同的數(shù)制,可在數(shù)的下標(biāo)注明基數(shù)。如 6553510表示以 10 為基數(shù) 的數(shù)制,它是每計(jì)滿十便向高位進(jìn)一,即“逢十進(jìn)一”;當(dāng)基數(shù)為M時,便是“逢M進(jìn)一”。一、十進(jìn)制數(shù)一個十進(jìn)制數(shù)中的每一位都具有其特定的權(quán), 稱為位權(quán)或簡稱權(quán)。 就是說, 對于同一個 數(shù)碼在不同的位它所代表的數(shù)值就不同。例如: 999.99 這個數(shù)可以寫為:2 1 0 -1 -2999.99=9 X 10 +9 X 10 +9X 10 +9 X 10 +9 X 10其中,每個位權(quán)由基數(shù)的 n 次冪來確定。在十進(jìn)制中,整數(shù)的位權(quán)是100(個位)、101(十位)、102 (百位)等

35、等;小數(shù)的位權(quán)是10-1(十分位)、10-2(百分位)等等。上式稱為按位權(quán)展開式。由此可見,一個十進(jìn)制數(shù)有以下兩個主要特點(diǎn):1. 十進(jìn)制的基數(shù)為10,數(shù)碼的個數(shù)等于基數(shù),即10,共有十個不同的數(shù)碼(0,1,2, 8, 9)。2. 進(jìn)位時“逢十進(jìn)一” 。即在計(jì)數(shù)時,每一次計(jì)到 10就往左進(jìn)一位,或者說,上一位 (左)的權(quán)是下位(右)的權(quán)的 10倍。二、二進(jìn)制數(shù)進(jìn)位計(jì)數(shù)制中最簡單的是二進(jìn)制, 它只包括 “0”和“1”兩個不同的數(shù)碼, 即基數(shù)為 2, 進(jìn)位原則是“逢二進(jìn)一” 。例如,二進(jìn)制 1101.11 相當(dāng)于十進(jìn)制數(shù)的1 X 23+1 X 22+0 X 21 + 1 X 20+1 X 2-1+1

36、 X 2-2=8+4+1+0.5+0.25=13.75 1。 由上式可知,二進(jìn)制數(shù)各位的權(quán)分別為8、4、2、1、0.5、0.25 。將二進(jìn)制數(shù)化為十進(jìn)制數(shù),是把二進(jìn)制的每一位數(shù)字乘以該位的權(quán)然后相加得到。 實(shí)際上只需要將為 1 的各位的權(quán)相加 即可。二進(jìn)制數(shù)具有如下兩個主要特點(diǎn):1. 它的數(shù)值部分只需用兩個數(shù)碼“ 0”和“ 1”來表示。2. 二進(jìn)制的基數(shù)是 2,當(dāng)計(jì)數(shù)時,它是“逢二進(jìn)一,即上一位(左)的權(quán)是下位(右) 的權(quán)的 2倍。三、八進(jìn)制數(shù)八進(jìn)制數(shù)也是微機(jī)中常用的一種數(shù)制,其主要特點(diǎn)是:1.八進(jìn)制的基數(shù)為8,用0-7八個不同的數(shù)碼來表示數(shù)值。2 當(dāng)計(jì)數(shù)時,它是“逢八進(jìn)一”,即上一位(左)的

37、權(quán)是下位(右)的權(quán)的8倍。四、十六進(jìn)制數(shù)十六進(jìn)制數(shù)是微機(jī)中最常用的一種數(shù)制,它在數(shù)的結(jié)構(gòu)上類似于八進(jìn)制。易于與二進(jìn) 制數(shù)轉(zhuǎn)換,且比八進(jìn)制更能簡化數(shù)據(jù)的輸入和顯示。十六進(jìn)制的基數(shù)是16,即由16個不同的數(shù)碼符號組成。除了0-9十個數(shù)字外,還用字母A B、C D E、F分別表示數(shù)10、11、12、13、14、15。十六進(jìn)制也有兩個特點(diǎn):1.基數(shù)為16,用16個不同的數(shù)碼符號0-9以及A-F來表示數(shù)值。2當(dāng)計(jì)數(shù)時,它是“逢十六進(jìn)一”,即上一位(左)的權(quán)是下一位(右)的權(quán)的 16倍。十六進(jìn)制、十進(jìn)制、八進(jìn)制、二進(jìn)制數(shù)之間的關(guān)系如表2.1所示。上面介紹了在微機(jī)中常用的幾種進(jìn)位計(jì)數(shù)制,對任意其它一種進(jìn)位計(jì)

38、數(shù)制,其基數(shù)可用正整數(shù)b表示。這時,數(shù) N的按位梳展開式的一般通式為:N 二'ki bi(n, m是正整數(shù))i=n-1式中,k表示第i位的數(shù)碼;b表示基數(shù);H表示第i位的權(quán);n表示整數(shù)的總位數(shù); m 表示小數(shù)的總位數(shù)。十六進(jìn)制十進(jìn)制八進(jìn)制二進(jìn)制十六 進(jìn)制十進(jìn)制八進(jìn)制二進(jìn)制00000008°1010001110001991110012220010A101210103330011B111310114440100C121411005550101D131511016660110E141611107770111F15171111為了區(qū)別數(shù)制,通常在書寫時采用三種方法: 一是在數(shù)的右下角

39、注明數(shù)制制, 例如21 431。、658、10102分別表示為十六進(jìn)制的 21,十進(jìn)制的43,八進(jìn)制的65,二進(jìn)制的1010。 二是在數(shù)的后面加上一些字母符號。通常十六進(jìn)制用H表示(如21H),十進(jìn)制用 D表示或不加字母符號(如 43D或43),八進(jìn)制用 Q表示(如65Q),二進(jìn)制用B表示(如1010B)。 三是在數(shù)的前面加上一些符號。如十六進(jìn)制用$表示(如$21),二進(jìn)制用表示(如1010。本文在后面大量采用第二種表示法。第二節(jié)數(shù)制之間的轉(zhuǎn)換上一節(jié)介紹了微機(jī)中的幾種數(shù)制及其特點(diǎn)。在使用微機(jī)時,經(jīng)常需要進(jìn)行各種不同進(jìn)制 數(shù)之間的轉(zhuǎn)換。一、二進(jìn)制轉(zhuǎn)換為十進(jìn)制根據(jù)二進(jìn)制數(shù)的定義,只要將它按權(quán)展開再

40、相加。2 10例如:(111.101) 2=1 X 2 +1 X 2 +1 X 2 +1 X 2-1 + 0 X 2-2 + 1 X 2-3 =(7.625)10、十進(jìn)制轉(zhuǎn)換為二進(jìn)制十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)采用“除以2取余”方法。例如,將十進(jìn)制整數(shù) 215轉(zhuǎn)換成二進(jìn)制整數(shù)。215余數(shù)1072另2 I 262丨1321 6¥1結(jié)果(215)10 = (11010111)2由此可得到將十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制整數(shù)的規(guī)則為:1 將十進(jìn)制數(shù)除2,并記下余數(shù);2 將所得的商再除以2,并記下余數(shù),如此重復(fù),直至商為0;3 收集所得到的余數(shù),以第一位余數(shù)作為整數(shù)的最低有效數(shù),最后得到的余數(shù)為最高

41、有效數(shù),中間的余數(shù)順次收集。十進(jìn)制小數(shù)轉(zhuǎn)換成二進(jìn)制小數(shù)采用“乘2取整”方法。例如,將十進(jìn)制小數(shù)0.6875轉(zhuǎn)換為二進(jìn)制小數(shù)形式的過程如下:収整數(shù)部分1375010.37500.750001.500010.50001.0000 10 0000所以轉(zhuǎn)換結(jié)果為 0.6875D=0.1011B。由此可得到將十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)的方法是不斷用2去乘該十進(jìn)制小數(shù),每次所得的溢出數(shù)(即整數(shù) 1或0)依次記為 匕1、©、。若乘積的小數(shù)部分最后一次乘積能 夠?yàn)?,最后一次乘積的整數(shù)部分記為Km,則有0 . K-1 > K:2、K-m但有時結(jié)果永遠(yuǎn)不為 0,即該十進(jìn)制小數(shù)不能用有限位的二進(jìn)制

42、小數(shù)精確表示,這時, 可根據(jù)精度要求取 m位,得到十進(jìn)制小數(shù)的二進(jìn)制的近似表達(dá)式。對于既有整數(shù)又有小數(shù)的十進(jìn)制數(shù),可用“除以 2取余”和“乘2取整”法則分別對其 整數(shù)與小數(shù)部分進(jìn)行轉(zhuǎn)換,然后合并。、八進(jìn)制與十進(jìn)制之間的轉(zhuǎn)換八進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)時,只要將它按位權(quán)展開,然后相加即可。例如,八進(jìn)制數(shù)372.01轉(zhuǎn)換為十進(jìn)制數(shù)的過程如下:210 1 -23X 8 +7X 8 +2X 8 +0X 8- +1X 8=192+56+2+0.15625=250.015625即 372.01Q=250.015625D十進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)的原理與十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)的原理相似,只是它使用的基數(shù)為&十

43、進(jìn)制整數(shù)轉(zhuǎn)換為八進(jìn)制整數(shù)時采用“除以8取余”,即將十進(jìn)制數(shù)反復(fù)除以 8,每次所得的余數(shù)即為八進(jìn)制的系數(shù),以第一位余數(shù)作為整數(shù)的最低有效位,最后得到的余數(shù)作為最高有效位。十進(jìn)制的小數(shù)部分在轉(zhuǎn)換為八進(jìn)帛小數(shù)時采用“乘8取整”,即將十進(jìn)制數(shù)反復(fù)乘以8,每次所得到的溢出數(shù)學(xué)依次排列即為八進(jìn)制小數(shù)的系數(shù),最先得到的為八進(jìn)制小數(shù)的最高有效位,最后得到的為其最低有效位。三、十六進(jìn)制數(shù)與十進(jìn)制數(shù)之間的轉(zhuǎn)換十進(jìn)制數(shù)與十六進(jìn)制數(shù)之間的轉(zhuǎn)換,和十進(jìn)制數(shù)與二進(jìn)制數(shù)或八進(jìn)制數(shù)之間的轉(zhuǎn)換方 法相似。其差別只是前者的基數(shù)為16。十六進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),只要將它按權(quán)展開,然后相加即可。例如,十六進(jìn)制數(shù) FFFE.A3 轉(zhuǎn)換

44、為十進(jìn)制數(shù)的過程如下 :3 2 1 0 1 2FX 16 +FX 16 +FX 16 +EX 16 +AX 16- +3X 16-=65534.63671875D十進(jìn)制轉(zhuǎn)換為十六進(jìn)制時,其方法與十進(jìn)制轉(zhuǎn)換為八進(jìn)制和二進(jìn)制的方法相同,其整 數(shù)部分采用“除以 1 6取余”法,其小數(shù)部分采用“乘 1 6取整”法,然后以小數(shù)點(diǎn)為分界合 并即可。四、八進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換一位八進(jìn)制數(shù)相當(dāng)于 3 位二進(jìn)制數(shù), 所以八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù), 或二進(jìn)制數(shù) 轉(zhuǎn)換成八進(jìn)制數(shù)很方便。例如: (563)8 = (101110011)2(0.764)8= (0.111110100)2五、十六進(jìn)制數(shù)與二進(jìn)制數(shù)之間的

45、轉(zhuǎn)換一位十六進(jìn)制數(shù)相當(dāng)于 4 位二進(jìn)制數(shù),所以十六進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換也 是很方便的。例如: (3AB) 16 = (001110101011)2(0.CD3)16 = (0.110011010011)2第三節(jié)二進(jìn)制編碼(代碼)由于計(jì)算機(jī)只能識別二進(jìn)制數(shù),因此,輸入的信息,如數(shù)字、字母、符號等都要化成 特定的二進(jìn)制碼來表示。這就是二進(jìn)制編碼。前面討論的二進(jìn)制數(shù)稱為純二進(jìn)制代碼,它與其它類型的二進(jìn)制代碼是有區(qū)別的。一、二進(jìn)制編碼的十進(jìn)制(二十進(jìn)制或BC碼)由于二進(jìn)制數(shù)容易用硬件設(shè)備實(shí)現(xiàn),運(yùn)算規(guī)律也十分簡單,所以,在計(jì)算機(jī)中采用二 進(jìn)制。由于人們并不熟悉二進(jìn)制,因此在計(jì)算機(jī)輸入和輸出時,通常

46、還是用十進(jìn)制數(shù)表示。 不過,這樣的十進(jìn)制數(shù)是用二進(jìn)制編碼表示的。一位十進(jìn)制數(shù)用 4位二進(jìn)制編碼來表示的方法很多,較常用的是 8421 BCD編碼。表22 BCD 編碼表十進(jìn)制數(shù)8241 BCD 編碼00000100012001030011401005010160110701118100091001100001 0000110001 0001120001 0010130001 00111400001 0100150001 01018421 BCD碼有十個不同的數(shù)字符號,由于它是逢“十”進(jìn)位的,所以它是十進(jìn)制;同 時,它的每一位是用 4位二進(jìn)制編碼來表示的,因此稱之為二進(jìn)制編碼的十進(jìn)制即二一十進(jìn)制

47、碼或BCD(B in ary Coded Decimal) 碼。BCD碼具有二進(jìn)制和十進(jìn)制兩種數(shù)制的某些特征。 表2.2列出了標(biāo)準(zhǔn)的8421 BCD編碼和對應(yīng)的十進(jìn)制數(shù)。正象純二進(jìn)制編碼一樣,要將BCD數(shù)轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù),只要把二進(jìn)制數(shù)出現(xiàn)1的位權(quán)相加即可。注意:4位碼僅有十個數(shù)有效,表示十進(jìn)制數(shù) 1015的4位二進(jìn)制數(shù)在BCD數(shù)制中是無效的。要用BCD碼表示十進(jìn)制數(shù),只要把每個十進(jìn)制數(shù)用適當(dāng)?shù)亩M(jìn)制4位碼代替即可。例如,十進(jìn)制整數(shù) 256用BCD碼表示,則為(00100101 0110)BCD。每位十進(jìn)制數(shù)用4位8421碼表示時,為了避免BCD格式與純二進(jìn)制碼混淆,必須在每4位之間留一空

48、格。這種表示法也適用于十進(jìn)制小數(shù)。例如,十進(jìn)制小數(shù)0.764可用BCD碼表示為:(0.0111 0110 0100)BCDBCD碼的一個優(yōu)點(diǎn)就是十個BCD碼組合格式,容易記憶一旦熟悉了 4位二進(jìn)制數(shù)的表示,對BCD碼就可以象十進(jìn)制數(shù)一樣迅速自如地讀出.同樣,也可以很快地得出以BCD碼表示的十進(jìn)制數(shù)。例如,將一個BCD數(shù)轉(zhuǎn)換成相應(yīng)的十進(jìn)制數(shù)。(011000101000.100101010100) BCD-628.954DBCD編碼可以簡化人機(jī)聯(lián)系,但它比純二進(jìn)制編碼效率低對同一個給定的十進(jìn)制數(shù)。用BCD編碼表示的位數(shù)比純二進(jìn)制碼表示的位數(shù)要多。而每位數(shù)都需要某些數(shù)字電路與之對應(yīng),這就使得與BCD

49、碼連接的附加電路成本提高,設(shè)備的復(fù)雜性增加,功耗較大。用BCD碼進(jìn)行運(yùn)算所花的時間比純二進(jìn)制碼要多,而且復(fù)雜。用二時制4位可以表示2 4=16種不同狀態(tài)的數(shù),即:015個十進(jìn)制數(shù):而 BCD數(shù)制,10 15這六個狀態(tài)被浪費(fèi)掉.另外, 十進(jìn)制與BCD碼之間的轉(zhuǎn)換是直接的。而二時制與BCD碼之間的轉(zhuǎn)換卻不能直接實(shí)現(xiàn)。而必 須先轉(zhuǎn)換為十進(jìn)制。例如,將二進(jìn)制數(shù)1011.01轉(zhuǎn)換成相應(yīng)的BCD碼。首先,將二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù):3210121011.01B=(1 X 2 )+(0 X 2 )+(1 X 2 )+(1 X 2 )+( 0 X 2- )+(1 X 2-)=8+0+2+1+0+0.25=11.

50、25 D然后,將十進(jìn)制結(jié)果轉(zhuǎn)換成BCD碼11.25 D=(00010001.00100101) BCD要將BCD碼轉(zhuǎn)換成二進(jìn)制數(shù),則完成上述運(yùn)算的逆運(yùn)算即可。二、字母與字符的編碼如上所述,字母和各種字符在計(jì)算機(jī)內(nèi)是按特定的規(guī)則用二進(jìn)制編碼表示的。這些編碼有各種不同的方。目前在微機(jī)、通讀設(shè)備和儀器儀表中廣泛使用的是ASCII(America nStan dard Code for In formation In tercha nge)碼 美國標(biāo)準(zhǔn)信息交換碼。7 位 ASCII代碼能表示27=128種不同的字符,其中包括數(shù)碼(0 9),英文大小、小寫字母,標(biāo)點(diǎn)和控制的附加字符。表 2.4表示7位A

51、SCII代碼,又稱全 ASCII碼。7位ASCII碼是由左3位一組和右4位一組組成的。表2.3表示這兩組的安排和號碼的 順序,位6是最高位,而位 0是最低位.要注意這些組在表 2.4的行、列中的排列情況。 4 位一組表示行,3位一組表示列。表2.3 ASCII 代碼格式6543210要確定某數(shù)字、字母或控制操作的ASCII碼,在表中可查到對應(yīng)的那一項(xiàng).然后根據(jù)該項(xiàng)的位置從相應(yīng)的行和列中找出3位和4位的碼,這就是所需的 ASCII代碼。例如,字母 A的ASCII代碼是1000001(即41H),它在表的第4列、第1行。其高3位組是100,低4位 組是0001。此外,還有一種六位的ASCII碼,它

52、去掉了 26個英文小寫字母。表2.4美國信息交換標(biāo)準(zhǔn)代碼ASCII(7位代碼)000000010010001101000101011001110000NULDLESP0p£P0001SOHDC11AQaq0010STXDC22BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfV0111BELETB7Gw£u1000BSCAN)8HXhX1001HTEM(9IY1y1010LFSUB*JZjz1011VTESC+Kk1100FFFS-L11101CRGS=MJin1110SORS>

53、;NAnz1111SIUS/9OoDEL第四節(jié)二進(jìn)制數(shù)的運(yùn)算一、二進(jìn)制數(shù)的算術(shù)運(yùn)算加法和減法。利用加法和減法就可以進(jìn)行乘法、除法一種數(shù)制可進(jìn)行兩種基本的算術(shù)運(yùn)算: 以及其它數(shù)值運(yùn)算。、二進(jìn)制加減法二進(jìn)制加法的運(yùn)算規(guī)則是:1+0=1,1 + 仁0 (進(jìn)位 1)1-仁0,0-1=1 (有借位)110001000+0=0 ,0+1=1 ,0-0=0 ,1-0=1 ,例11000100+0010010111101001-0010010110011111兩個二進(jìn)制數(shù)相加時, 每一列有三個數(shù),即相加的兩個數(shù)以及低位的進(jìn)位, 用二進(jìn)制的加法 規(guī)則相加后得到本位的和以及向高位的進(jìn)位。兩個8位二進(jìn)制數(shù)相加后,第 9位出現(xiàn)的一個1代表“進(jìn)位”位。這點(diǎn)將在后面加以說明。關(guān)于一個小數(shù)減一個大數(shù)的減法,將在本 章后面加以敘述。、二進(jìn)制乘法乘法是將被乘數(shù)本身多次相加而相加的次數(shù)為乘數(shù)所規(guī)定的次數(shù)的一種簡便方法。二進(jìn)制乘法所遵循的一般原則與十進(jìn)制乘法相同,但由于只有1或0兩種可能的乘數(shù)位。 故二進(jìn)制乘法更簡單二進(jìn)制乘法的運(yùn)算規(guī)則是:(1) 0X 0=0(2) 0X 仁0 1 x

溫馨提示

  • 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

提交評論