C++程序設(shè)計:第一章 計算機(jī)基礎(chǔ)知識1_第1頁
C++程序設(shè)計:第一章 計算機(jī)基礎(chǔ)知識1_第2頁
C++程序設(shè)計:第一章 計算機(jī)基礎(chǔ)知識1_第3頁
C++程序設(shè)計:第一章 計算機(jī)基礎(chǔ)知識1_第4頁
C++程序設(shè)計:第一章 計算機(jī)基礎(chǔ)知識1_第5頁
已閱讀5頁,還剩262頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

程序設(shè)計與算法語言(上)東南大學(xué)(課時:40學(xué)時課內(nèi)試驗機(jī)時32學(xué)時)在本課程開始之前,有些不太輕松的話題要作如下說明:

當(dāng)然,程序設(shè)計是一門實踐性非常強(qiáng)的課程,為此,我們?yōu)槊總€同學(xué)安排了32個課時的上機(jī)實踐,每次上機(jī)都是針對所學(xué)內(nèi)容,以幫助理解、鞏固和提高為目的。因此,上機(jī)也是上課,上機(jī)時與上課的要求一樣,請同學(xué)們務(wù)必遵守上機(jī)的規(guī)則和要求。

此外,學(xué)習(xí)程序設(shè)計,要涉及很多術(shù)語、名詞、規(guī)則等等,課堂上教師不可能逐一描述,只能講授和解釋其中的重點(diǎn)和難點(diǎn)。其余部分也必須通過反復(fù)閱讀和作業(yè)練習(xí)才能逐步熟悉和理解。為此,我們規(guī)定:

在計算機(jī)比較普及的今天,有條件的同學(xué)對計算機(jī)的一些基本操作,甚至一些硬件以及軟件外圍的術(shù)語可能比較熟練、熟悉,應(yīng)該說,這對學(xué)好這門課程有一定的幫助。但是,這些所謂高科技的市井知識與程序設(shè)計的能力完全是兩回事。要學(xué)好這門課程,必須在課堂學(xué)習(xí)的基礎(chǔ)上,通過反復(fù)閱讀和練習(xí)才能逐步理解和掌握。累計4次未交按時交作業(yè)與累計3次缺課一樣將被視為放棄考試資格第一章計算機(jī)基礎(chǔ)知識1.1本章主要知識點(diǎn)計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)計算機(jī)的基本工作原理計算機(jī)中數(shù)據(jù)的存儲和表示算法設(shè)計數(shù)據(jù)結(jié)構(gòu)基本概念1.2計算機(jī)系統(tǒng)結(jié)構(gòu)及工作原理我們現(xiàn)在普遍使用的通用電子數(shù)字計算機(jī)(GenericElectronicNumericalComputer,簡稱計算機(jī))是一種現(xiàn)代計算工具。電子計算機(jī)最基本的工作特點(diǎn)是人將其啟動后能自動進(jìn)行計算直至得出最終答案。為了具有自動計算能力,需要為計算機(jī)設(shè)計一套完整的部件,使之除了具有存儲數(shù)據(jù)的功能外,還應(yīng)能夠允許人向機(jī)器輸入預(yù)先編寫的指令,然后使機(jī)器自動執(zhí)行這套指令對數(shù)據(jù)進(jìn)行計算,最后將計算結(jié)果以人能夠看到的形式輸出。這是對計算機(jī)組成結(jié)構(gòu)的基本要求。一、什么是電子計算機(jī)電子計算機(jī)之父-馮諾依曼馮?諾依曼思想:

1、二進(jìn)制;

2、程序存儲、程序控制;

3、五大模塊(輸入、存儲、運(yùn)算、控制、輸出);

美籍匈牙利科學(xué)家馮·諾依曼歷來被譽(yù)為“電子計算機(jī)之父”。也是本世紀(jì)最偉大的數(shù)學(xué)家、物理學(xué)家、經(jīng)濟(jì)學(xué)家之一。世界上第一臺電子計算機(jī)1946年,世界上第一臺電子計算機(jī)ENIAC在美國賓夕法尼亞大學(xué)莫爾學(xué)院誕生了!重達(dá)30噸啟動電力150000瓦17000個電子管保存80個字節(jié)事實上,從上世紀(jì)40年代的第一臺真正意義上的電子計算機(jī)ENIAC到現(xiàn)在21世紀(jì)最先進(jìn)計算機(jī)的結(jié)構(gòu)設(shè)計,都采用同一種計算機(jī)體系結(jié)構(gòu),這就是馮?諾依曼體系結(jié)構(gòu)。馮·諾依曼計算機(jī)的特點(diǎn)能夠把解題所需要的程序和數(shù)據(jù)輸入計算機(jī)中。必須具有長時間記憶程序、數(shù)據(jù)、中間結(jié)果及最終運(yùn)算結(jié)果的能力。能夠完成各種算術(shù)、邏輯運(yùn)算和數(shù)據(jù)傳送等數(shù)據(jù)加工處理的能力。能夠根據(jù)需要控制程序走向,并能根據(jù)指令控制機(jī)器的各部件協(xié)調(diào)操作。能夠按照要求將計算結(jié)果輸出給用戶。

硬件系統(tǒng)的工作原理--馮·諾依曼機(jī)輸入設(shè)備內(nèi)存儲器輸出設(shè)備外存儲器運(yùn)算器控制器表示數(shù)據(jù)流表示控制流

計算機(jī)系統(tǒng)的基本邏輯結(jié)構(gòu)包括硬件和軟件兩個子系統(tǒng)。計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)

如果沒有外圍設(shè)備,CPU和內(nèi)存就像一個沒有軀體的大腦。計算機(jī)內(nèi)的插槽和端口可以使系統(tǒng)增加外部設(shè)備變得十分簡單,用戶可以在計算機(jī)里的擴(kuò)展槽里插入專用電路板(叫做卡或擴(kuò)展卡),來個性化他們的計算機(jī)。微型計算機(jī)的基本結(jié)構(gòu)微機(jī)結(jié)構(gòu)特點(diǎn)開放式、模塊化體系結(jié)構(gòu)主板(母板)+擴(kuò)展卡+設(shè)備計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)

當(dāng)前微機(jī)主要有Intelx86系列和APPLE的Power系列,無論哪個系列,從基本配置的角度,微機(jī)由主板和各類擴(kuò)展卡組成。主板上主要有CPU、存儲器、系統(tǒng)芯片和I/O接口插槽,這些部件均采用總線相連接。計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)主板:I/O接口內(nèi)存條擴(kuò)展槽CPU插座芯片組

計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)控制器隨機(jī)存儲器(RAM)只讀存儲器(ROM)串行輸入/輸出接口USB接口顯示器接口微型計算機(jī)硬件系統(tǒng)主機(jī)主板中央處理器運(yùn)算器寄存器內(nèi)部存儲器外圍接口電路總線擴(kuò)展板卡機(jī)箱、電源外圍設(shè)備地址總線控制總線數(shù)據(jù)總線顯卡網(wǎng)卡聲卡多功能卡輸入設(shè)備存儲設(shè)備(外部存儲器)輸出設(shè)備微型計算機(jī)的基本結(jié)構(gòu)并行輸入/輸出接口計算機(jī)硬件系統(tǒng)的基本組成

邏輯結(jié)構(gòu)——馮·諾依曼機(jī)

一個計算機(jī)硬件系統(tǒng),從功能的角度而言,

一般包含五大功能部件:運(yùn)算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備。計算機(jī)的基本組成與內(nèi)部結(jié)構(gòu)1、中央處理器CPU

(CentreProccessingUnit)是計算機(jī)的核心部件,它完成計算機(jī)的運(yùn)算和控制功能,一般由運(yùn)算器、控制器和寄存器組成。

運(yùn)算器又稱算術(shù)邏輯部件(ALU——ArithmeticalLogicUnit),主要功能是完成對數(shù)據(jù)的算術(shù)運(yùn)算和邏輯運(yùn)算操作。

控制器(Controller)是計算機(jī)的控制指揮中心,計算機(jī)的神經(jīng)中樞。它的基本功能是從內(nèi)存儲器中取出指令并對指令進(jìn)行分析、判斷,并根據(jù)指令發(fā)出相應(yīng)的各種控制信號,使計算機(jī)的有關(guān)設(shè)備或電子器件有條不紊地協(xié)調(diào)工作,保證計算機(jī)能自動、連續(xù)地工作。1、CPUCPU中還包括若干寄存器,用來存放運(yùn)算過程中的各種數(shù)據(jù)、地址或其他信息。寄存器的種類很多,主要的有:(1)通用寄存器:向ALU提供運(yùn)算數(shù)據(jù),或保留運(yùn)算結(jié)果。一般CPU有多個通用寄存器。(2)累加器A:這是一個使用相對頻繁的特殊的通用寄存器,有重復(fù)累加數(shù)據(jù)的功能。(3)程序計數(shù)器PC:存放將要執(zhí)行的指令的地址。(4)指令寄存器IR:用于存放正在執(zhí)行的指令,或存放根據(jù)PC的內(nèi)容從內(nèi)存儲器中取出的指令。1、CPU1、CPU1971年11月,美國Intel公司制成了世界上第一片微處理器Intel

4004。隨后,許多公司競相研制微處理器,相繼推出了8位、16位、32位和64位微處理器,芯片的主頻和集成度不斷提高,微型計算機(jī)發(fā)展非常迅速,以2~3年的速率更新?lián)Q代。衡量CPU性能的主要技術(shù)

(1)CPU字長

CPU字長指CPU內(nèi)部各寄存器之間一次能夠傳送的數(shù)據(jù)位?,F(xiàn)在主要是32位,但是64位已經(jīng)逐步普及;(2)運(yùn)算速度運(yùn)算速度一般用每秒鐘能夠執(zhí)行多少條指令來表示。(3)工作頻率

CPU的工作頻率也稱為CPU的主頻,它指CPU內(nèi)核電路的實際運(yùn)行頻率。(4)CPU的生產(chǎn)工藝技術(shù)

CPU的生產(chǎn)工藝技術(shù)通常用μm來描述。CPU的工藝和集成度所熟知的制造技術(shù)應(yīng)該是從0.25微米開始,到1999年的0.18微米、2001年的0.13微米、2003年的90納米(0.09微米),2005年65納米(0.065微米)以及2008年45納米(0.045微米)制造工藝。

第一代的Pentium4只有4200萬個晶體管,轉(zhuǎn)變到Northwood核心之后提高到5500萬個,而Prescott核心,晶體管總數(shù)達(dá)到1億2500萬個。雙核心處理器,晶體管規(guī)模已經(jīng)突破3億個?,F(xiàn)在的65納米的4核處理器在將近700平方毫米的面積上集成了20.5億個晶體管,據(jù)稱45納米的4核處理器的晶體管數(shù)是65納米處理器的2倍!

2、存儲器

存儲器是有記憶能力的部件,用來保存程序和數(shù)據(jù)。在計算機(jī)運(yùn)算過程中,由存儲器把預(yù)先編制和存儲的程序快速提交給計算機(jī)的CPU進(jìn)行處理。存儲器分為內(nèi)存儲器和外存儲器兩類。程序和數(shù)據(jù)內(nèi)存控制器執(zhí)行指令運(yùn)算器處理數(shù)據(jù)輸出輸入設(shè)備調(diào)入反饋結(jié)果終端輸出設(shè)備內(nèi)存儲器執(zhí)行過程:

內(nèi)存儲器(也稱主存儲器,簡稱內(nèi)存或主存)可以和CPU直接相連,用來存放當(dāng)前要執(zhí)行的程序和數(shù)據(jù),以便快速向CPU提供信息。內(nèi)存儲器一般采用半導(dǎo)體材料和集成電路制造。內(nèi)存按其工作方式不同,可分為隨機(jī)存取存儲器(RAM——RandomAccessMemory)和只讀存儲器(ROM——ReadOnlyMemory)兩種。ROM:在正常工作的時候只能讀出其中存放的數(shù)據(jù),而不能改變其內(nèi)容。因此ROM經(jīng)常被用來存放那些固定不變,無需修改的數(shù)據(jù)與程序。ROM的最大特點(diǎn)是掉電以后,數(shù)據(jù)不會丟失,通電后可以繼續(xù)使用。舉例:BIOS即基本輸入/輸出系統(tǒng)。

RAM:內(nèi)存的存儲單元可以順序使用,也可以隨機(jī)一個單元來使用,這些能被用戶程序或指令訪問的內(nèi)存被稱為隨機(jī)存取存儲器。DRAM、SRAMRAM在掉電的時候會將其存儲的數(shù)據(jù)丟失。舉例:互補(bǔ)金屬氧化物半導(dǎo)體CMOS

內(nèi)存儲器BIOS(BasicInput/OutputSystem)即基本輸入/輸出系統(tǒng)。全稱是ROM-BOIS,是只讀存儲器基本輸入/輸出系統(tǒng)的簡寫,它實際是一組被固化到電腦中,為電腦提供最低級最直接的硬件控制的程序,它是連通軟件程序和硬件設(shè)備之間的樞紐,通俗地說,BOIS是硬件與軟件程序之間的一個“轉(zhuǎn)換器”或者說是接口(雖然它本身也只是一個程序),負(fù)責(zé)解決硬件的即時要求,并按軟件對硬件的操作要求具體執(zhí)行。當(dāng)開機(jī)時,BOIS中的程序開始啟動。內(nèi)存儲器互補(bǔ)金屬氧化物半導(dǎo)體CMOS(complementarymetaloxidesemiconductor):

是主板上的一塊可讀寫的RAM芯片,一種能量消耗低的RAM,可以在電池電量的支持下長期存儲少量的數(shù)據(jù),CMOSRAM用來存儲系統(tǒng)的日期和時間,系統(tǒng)的口令,系統(tǒng)中安裝的軟盤、硬盤驅(qū)動器的個數(shù)、類型及參數(shù),顯卡的類型,系統(tǒng)啟動時訪問外存儲器的順序。CMOS芯片是易失性存儲器,所以需要專門的電池供電,以支持?jǐn)嚯娭蟮墓ぷ?。?nèi)存儲器外存儲器(也稱輔助存儲器,簡稱外存),一般需要通過特殊接口與CPU連接。外存儲器用來存放當(dāng)前暫不參加運(yùn)行而又需要長期保留的程序和數(shù)據(jù)。存放在外存的程序必須調(diào)入內(nèi)存才能運(yùn)行。軟盤、硬盤和光盤驅(qū)動器都屬于外存儲器。外存儲器硬盤屬于外部存儲器的一種。說起硬盤,你一定不會陌生,包括Windows系統(tǒng)在內(nèi)的所有的軟件都是安裝在硬盤里的,平時所用的資料也都是存儲在硬盤中的。硬盤的大小是衡量一臺電腦性能的重要指標(biāo)。1、硬盤2、軟盤

3、光盤和光驅(qū)

(4)、移動存儲器

閃存盤以閃速存儲器為介質(zhì),采用USB接口(因此也稱其為U盤),體積只有拇指般大小,重量僅15克左右,容量目前一般為2GB—4GB,最高可達(dá)32GB。閃存盤不需要驅(qū)動器,無外接電源,使用方便,即插即用,可帶電插拔。它的存儲單元可反復(fù)檫寫100萬次,數(shù)據(jù)可以保持10年以上。存儲器的層次結(jié)構(gòu)——塔式結(jié)構(gòu)內(nèi)存的存取速度直接影響計算機(jī)的運(yùn)算速度。內(nèi)存一般使用半導(dǎo)體材料制造,存取速度較快,容量較小,成本較高;而外存通常以磁性材料和其他材料制造,容量較大,速度較慢,成本較低。第一層,CPU內(nèi)部的通用寄存器,用來暫存中間結(jié)果,第四和第五層都是輔助存儲器,它們與CPU的通信需要經(jīng)過專門的接口現(xiàn)代的CPU的速度越來越快,它訪問數(shù)據(jù)的周期只需幾個納秒(ns),而主存儲器訪問數(shù)據(jù)的周期需要幾十個納秒。計算機(jī)工作時CPU需頻繁地與內(nèi)存交換信息,這就會使CPU不得不進(jìn)入等待狀態(tài),放慢運(yùn)行速度,極大地影響計算機(jī)的整體性能。

為了有效解決CPU和內(nèi)存之間的速度匹配問題,目前在微機(jī)上采用了高速緩沖存儲器(Cache)的方案。Cache是高速緩沖存儲器,其速度幾乎與CPU一樣快。它是CPU和內(nèi)存之間的橋梁。

高速緩沖存儲器cache(3)、高速緩沖存儲器cacheCache按其功能可分為CPU內(nèi)部的Cache和CPU外部的Cache兩類。CPU內(nèi)部的Cache稱為一級Cache,簡稱L1(Level1)。它是CPU內(nèi)核的一部分,與CPU制作在同一個芯片上,速度和CPU一致,容量較小,負(fù)責(zé)CPU內(nèi)部的寄存器與外部Cache之間的緩沖。CPU外部的Cache稱為二級Cache(L2,Level2)是相對獨(dú)立的部件,是L1的補(bǔ)充,負(fù)責(zé)整個CPU與內(nèi)存之間的緩沖。存儲器的層次結(jié)構(gòu)主要體現(xiàn)在兩個層次上:(1)高速緩沖存儲器和主存:解決存儲器系統(tǒng)的速度問題。(2)主存和輔存:主要解決存儲器的容量問題。(4)存儲容量的度量在計算機(jī)中,信息的存儲單位常采用位、字節(jié)、字等幾種量綱。1、位(bit):一位二進(jìn)制數(shù)(0或1)

2、字節(jié)(Byte):1Byte=8bit位(Bit):度量數(shù)據(jù)的最小單位字節(jié)(Byte):最常用的基本單位b7b6b5b4b3b2b1b0圖1.4字節(jié)型存儲單元的結(jié)構(gòu)每個存儲單元都有一個編號,此編號稱為存儲單元的地址(Address)。

CPU對存儲器的讀寫操作都是通過地址來進(jìn)行的。8個二進(jìn)制位為一個單元?????????????????????????????????????????????????????????????????????????????????????????????????????????????????為了便于對存儲器內(nèi)存放的信息進(jìn)行管理,整個內(nèi)存被劃分成多存儲單元。一個單元(3)字(Word):又稱計算機(jī)字,是可作為獨(dú)立的信息單位進(jìn)行運(yùn)算或處理的若干位的組合,其中所含的二進(jìn)制數(shù)位的個數(shù)稱為字長。字長一般是字節(jié)的整數(shù)倍,微型計算機(jī)的CPU芯片有16位、32位和64位等規(guī)格。

3、總線和接口總線的一般概念總線是計算機(jī)系統(tǒng)各部件之間傳輸?shù)刂贰?shù)據(jù)和控制信息的通道。由一組導(dǎo)線和相關(guān)的控制、驅(qū)動電路組成。任一時刻,只能有一個部件/設(shè)備通過總線發(fā)送數(shù)據(jù),其他部件只能處于接收狀態(tài)。

總線的分類及特點(diǎn)按總線的層次結(jié)構(gòu)內(nèi)部總線:在CPU內(nèi)部,寄存器之間和算術(shù)邏輯部件ALU與控制部件之間傳輸數(shù)據(jù)所用的總線稱為片內(nèi)總線(即芯片內(nèi)部的總線)。系統(tǒng)總線:微機(jī)中各插件板與系統(tǒng)板之間的總線,用于插件板一級的互連;外部總線:微機(jī)和外部設(shè)備之間的總線,微機(jī)作為一種設(shè)備,通過該總線和其他設(shè)備進(jìn)行信息與數(shù)據(jù)交換,它用于設(shè)備一級的互連。按傳送信息的類型劃分?jǐn)?shù)據(jù)總線(DataBus,DB)傳輸數(shù)據(jù)信息,雙向其寬度決定了其數(shù)據(jù)傳輸能力數(shù)據(jù)總線的位數(shù)是微型計算機(jī)的一個重要指標(biāo),通常與微處理的字長相一致。例如Intel8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。地址總線(AddressBus,AB)傳輸?shù)刂沸畔?,單向其寬度決定了微機(jī)系統(tǒng)的尋址能力比如8位微機(jī)的地址總線為16位,則其最大可尋址空間為216=64KB,16位微型機(jī)的地址總線為20位,其可尋址空間為220=1MB。一般來說,若地址總線為n位,則可尋址空間為2n字節(jié)??刂瓶偩€(ControlBus,CB)傳輸控制信號、時序信號和狀態(tài)信號特點(diǎn)各異:入/出/雙向等特性均不相同CPU地址總線(AB)內(nèi)存、插槽I/O接口I/O設(shè)備外存接口硬盤等數(shù)據(jù)總線(DB)控制總線(CB)地址總線只能把地址信息從CPU單向地傳送到存儲器或I/O設(shè)備。?????????????????????????????????????????????????????????????????????????????????????????????????????????????????0x00000x00010xffff地址總線為16位,則其最大可尋址空間為216=64KB,地址范圍從0~216-1,十六進(jìn)制數(shù)為0x0000~0xffff0x00040x0003I/O接口:計算機(jī)和I/O設(shè)備的信息類型和格式可能不一樣。通過I/O接口實現(xiàn)計算機(jī)與外部設(shè)備的隔離和信號轉(zhuǎn)換。計算機(jī)和I/O設(shè)備信號傳輸處理的速度可能不匹配,信號時序有很大差別,通過I/O接口來進(jìn)行緩沖和協(xié)調(diào)。計算機(jī)系統(tǒng)中輸入/輸出設(shè)備是必不可少的一部分,但是I/O設(shè)備一般不與CPU或內(nèi)存儲器直接相連,而是通過I/O接口與CPU或內(nèi)存儲器進(jìn)行信息交換。

串行與并行接口——不可缺少的輸入輸出接口

1、一次只能發(fā)送和接受一個比特信息的設(shè)備的串行端口,常用于連接到調(diào)制解調(diào)器。

2、能夠成組發(fā)送或者接受比特流的設(shè)備的并行端口,常用于連接打印機(jī)。硬盤接口在微型計算機(jī)中使用最廣泛的硬盤接口標(biāo)準(zhǔn)是IDE和SCSI。

SCSI接口可以連接外部設(shè)備,如光盤、掃描儀、打印機(jī)。

USB接口

USB接口是一種新型的輸入輸出總線接口,可以連接多個外部設(shè)備。已普遍所用USB接口。計算機(jī)系統(tǒng)的主板上面常見的接口有:其他端口在擴(kuò)展板上可以看到,而不是系統(tǒng)板上:1、將彩色顯示器連接到顯卡的視頻端口。2、將聲音設(shè)備連接到聲卡的麥克風(fēng)端口、揚(yáng)聲器端口、耳機(jī)端口和MIDI(音樂工具的數(shù)字界面)端口。這些端口都遵循經(jīng)過行業(yè)協(xié)會認(rèn)證的接口標(biāo)準(zhǔn),這樣一個廠商生產(chǎn)的設(shè)備可以連接到另一個廠商生產(chǎn)的計算機(jī)上。常見接口插槽PS2鼠標(biāo)PS2鍵盤千兆網(wǎng)10/100M網(wǎng)卡USB并行口MIDI/游戲接口顯示器接口13941394a音箱/線入接口/麥克風(fēng)串行口

輸入設(shè)備是向計算機(jī)輸入信息的裝置,輸入到計算機(jī)中的信息都使用二進(jìn)制中的“0”和“1”兩個符號來表示。按照輸入信息的類型,設(shè)備可以劃分如下類型:數(shù)字和文字輸入設(shè)備(鍵盤、寫字板等)位置和命令輸入設(shè)備(鼠標(biāo)器、觸摸屏等)圖形輸入設(shè)備(掃描儀,數(shù)碼相機(jī)等)聲音輸入設(shè)備(話筒,MIDI演奏器等)視頻輸入設(shè)備(攝像機(jī))溫度、壓力輸入設(shè)備(溫度、壓力傳感器)4、外設(shè)輸入設(shè)備輸出設(shè)備主要用于將計算機(jī)處理過的信息保存起來(用“0”和“1”的組合表示),或以人們能接受的數(shù)字、文字、符號、圖形、語音、動畫和圖像等形式顯示或打印出來。常用的輸出設(shè)備有顯示器、打印機(jī)、繪圖儀、磁盤驅(qū)動器、數(shù)模轉(zhuǎn)換器(D/A)等。

輸出設(shè)備從外部看到的微機(jī)系統(tǒng):主機(jī)內(nèi)部的結(jié)構(gòu):

主板也稱為主機(jī)板、系統(tǒng)板(SystemBoard)、母板(motherboard)。它固定在主機(jī)機(jī)箱箱體上的一塊電路板,主板上裝有大量的有源電子元件。其中主要組件有:CMOS、基本輸入輸出系統(tǒng)(Basicinputandoutputsystem,BIOS)、高速緩沖存儲器(cache)、內(nèi)存插槽、CPU插槽、鍵盤接口、軟盤驅(qū)動器接口、硬盤驅(qū)動器接口、總線擴(kuò)展插槽(提供ISA、PCI等擴(kuò)展槽)、串行接口(COM1、COM2)、并行接口(打印機(jī)接口LPT1)等。因此,主板是計算機(jī)各種部件相互連接的紐帶和橋梁。主板的實物圖1、程序、指令和指令系統(tǒng)

一條計算機(jī)指令由若干二進(jìn)制位來表示,指令中一般包含操作碼和操作數(shù)兩部分,其基本格式如圖1.7所示。

其中操作碼指明該指令要完成的操作,例如,加法、減法、乘法、除法、取數(shù)、存數(shù)等。操作數(shù)表示操作對象的內(nèi)容或所在的存儲單元地址。

圖1.7指令的格式圖1.8一條加法指令的位模式1.2.3計算機(jī)的工作原理5726用虛構(gòu)的助記符可表示為ADDGX,BX,FX。圖1.8是一個簡單指令集中的一條16位指令的位模式示意圖。如果將圖中每個4位分別轉(zhuǎn)換成十進(jìn)制,即為5726,其中操作碼5的含義是做加法,該指令表示將2號寄存器與6號寄存器中的數(shù)值相加,和放入7號寄存器中。由于二進(jìn)制數(shù)碼序列不易看清,一般用助記符描述指令,如圖1.8中的指令,用虛構(gòu)的助記符可表示為ADDGX,BX,FX。按功能分類,可將計算機(jī)的指令分為以下幾種類型:數(shù)據(jù)傳送指令:實現(xiàn)數(shù)據(jù)在不同地點(diǎn)之間的傳送,這些不同的地點(diǎn)包括CPU、內(nèi)存和寄存器。在存儲器中,數(shù)據(jù)被傳送至另一地點(diǎn)后,原處的數(shù)據(jù)仍未消失。數(shù)據(jù)處理指令:實現(xiàn)對數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。程序控制指令:實現(xiàn)改變程序執(zhí)行順序的功能,如跳轉(zhuǎn)指令、循環(huán)控制指令、子程序調(diào)用及返回指令。輸入輸出指令:實現(xiàn)CPU與外部設(shè)備之間的數(shù)據(jù)交換。其他指令:實現(xiàn)對計算機(jī)硬件的管理,如中斷指令和標(biāo)志位操作指令。

一臺計算機(jī)所能執(zhí)行的全部指令的集合稱為該計算機(jī)的指令系統(tǒng),或稱該計算機(jī)的機(jī)器語言指令系統(tǒng)。 不同種類的計算機(jī),其指令系統(tǒng)的指令數(shù)目與格式也不同,如80x86類型的CPU有64條運(yùn)算指令。但無論哪種類型的計算機(jī),其指令系統(tǒng)都包含有上述5種類型的指令。

微機(jī)的工作過程就是逐條執(zhí)行進(jìn)入到內(nèi)存中的二進(jìn)制機(jī)器指令流的過程。而一條指令的執(zhí)行過程可以簡單地分為五個操作階段:取指令,根據(jù)程序計數(shù)器PC中的地址,從內(nèi)存儲器中取出指令,并送到指令寄存器中(IR)。2、一條指令執(zhí)行完成后,將下一條要執(zhí)行的指令地址送入程序計數(shù)器PC。

2、指令的執(zhí)行過程3、分析指令。對指令寄存器中的指令進(jìn)行分析,由譯碼器對指令中的操作碼部分進(jìn)行譯碼,得知該條指令要完成什么樣的操作,并轉(zhuǎn)換成相應(yīng)的控制信號;由操作地址碼部分得到操作數(shù)。4、執(zhí)行指令。由操作控制電路發(fā)出完成該操作所需的一系列控制信號,完成該指令所要求的操作。5、檢查有無中斷請求。程序的執(zhí)行過程就是周期性和重復(fù)性地進(jìn)行這五個操作。計算機(jī)的基本工作過程,就是取指令、分析指令、執(zhí)行指令,再取下一條指令,依次周而復(fù)始地執(zhí)行指令序列的過程。該過程也就是某個程序的執(zhí)行過程。微機(jī)的工作過程

下面以Intel8086CPU中的一條加法指令A(yù)DDAX,NUM為例來分析其執(zhí)行過程,假設(shè)該指令存放在地址為0200H的存儲單元中。指令中各部分的含義如下:

ADD加法的操作碼。

AX一個通用寄存器。AX既提供操作對象,也用來存放運(yùn)算結(jié)果。

NUM一個變量或變量的地址,該變量的值是加法運(yùn)算的另一個操作對象。該指令執(zhí)行的操作可以表示成:

AX←(AX)+(NUM)執(zhí)行這條指令前,指令指針寄存器IP中存放的是該指令的地址,程序計數(shù)器PC0200H內(nèi)存0200HADDAX,NUM指令寄存器ADDAX,NUMNUM23

AXALU3512譯碼ADDAX,NUMADDPC時序發(fā)生器解碼器IRAAR總線接口ALUUSB控制器圖形適配器磁盤控制器網(wǎng)絡(luò)適配器I/O橋DR+1ADDRi,RjCPU內(nèi)存I/O設(shè)備接口ARPC,PC

PC+1讀主存,IR讀出內(nèi)容(指令)Ri

Ri+Rj,保存狀態(tài)檢測有無中斷請求流水線把一條指令的操作分成多個更小的步驟,每個步驟的操作由專門的電路完成。利用各電路間可并行執(zhí)行的特點(diǎn),讓各個步驟的執(zhí)行在時間上重疊起來。譯碼2取指1譯碼1執(zhí)行1取指2執(zhí)行2取指3譯碼3執(zhí)行3取指1取指1譯碼1執(zhí)行1取指2執(zhí)行2取指3譯碼3執(zhí)行3譯碼2流水線執(zhí)行方式

現(xiàn)代計算機(jī)是數(shù)字計算機(jī),在計算機(jī)中的一切信息都是以數(shù)字的形式存放和處理的。數(shù)值數(shù)據(jù):有確定的值并在坐標(biāo)軸上有對應(yīng)的點(diǎn)。非數(shù)值數(shù)據(jù):如文字、字符、圖形、聲音、邏輯數(shù)據(jù)信息1.3數(shù)制轉(zhuǎn)換、字符編碼

信息必須數(shù)字化編碼,才能傳送、存儲和處理。一、基本概念1.3數(shù)制轉(zhuǎn)換、字符編碼

二進(jìn)制的優(yōu)點(diǎn):物理上容易實現(xiàn),可靠性強(qiáng)運(yùn)算簡單,通用性強(qiáng)。1.3.1進(jìn)位計數(shù)制什么是計數(shù)?如何計數(shù)?進(jìn)位計數(shù)制(進(jìn)位計數(shù)方法)

進(jìn)位計數(shù)制的基本思想是,首先定義一個有限的計數(shù)方法,然后在此基礎(chǔ)上再定義一個擴(kuò)展該有限計數(shù)方法的方法,從而完成無限的計數(shù)。擴(kuò)展有限計數(shù)方法的方法一般都是通過并列多個有限計數(shù)方法實現(xiàn)。進(jìn)位方式十進(jìn)制是人類最熟悉的計數(shù)方法。它的基數(shù)是10,表示每一位可能出現(xiàn)用于計數(shù)的符號個數(shù),有0、1、2、3、4、5、6、7、8、9。最多計數(shù)十個量,它的位權(quán)是一個可能的計數(shù)符號在不同位置時所具有的基本值,如:……、10-2、10-1、100、101、102、……。如果需要計算的量超過十個,則需要擴(kuò)展,即并列兩個基本的有限計數(shù)(兩位)。十進(jìn)制BA基本的有限計數(shù)(0~9)擴(kuò)展方向由于B是對A的擴(kuò)展,因此,B的1相當(dāng)于A的10高位低位擴(kuò)展的另一個基本的有限計數(shù)(0~9)

十進(jìn)制的基本計數(shù)規(guī)則是,逢十進(jìn)一,借一當(dāng)十。十進(jìn)制的所有運(yùn)算都是建立在此基礎(chǔ)上。十進(jìn)制數(shù)666.66表示為6102+6101+6100+610-1+610-2

。在與計算機(jī)相關(guān)的資料中,十進(jìn)制數(shù)表示可以是101、101D、(101)10

十進(jìn)制十進(jìn)制表示形式

假設(shè)基數(shù)用b表示,各位分別用ai表示(0ai

b-1),則一個進(jìn)位計數(shù)制數(shù)N可以表示為:

N=anbn+an-1bn-1+…+a1b1+a0b0+

a-1b-1+a-2b-2+…+a-mb-m

=

其中,m、n是正整數(shù)。第i位相應(yīng)的權(quán)第i位數(shù)字666.66=6102+6101+6100+610-1+610-2二進(jìn)制的基本計數(shù)規(guī)則是,逢二進(jìn)一,借一當(dāng)二。二進(jìn)制的所有運(yùn)算都是建立在此基礎(chǔ)上。(11001010)2-(00010101)2=(10110101)2

(01001010)2+(00010101)2=(01011111)2

在與計算機(jī)相關(guān)的資料中,二進(jìn)制數(shù)表示可以是101B、(101)2。

二進(jìn)制二進(jìn)制表示形式進(jìn)位制二進(jìn)制八進(jìn)制十進(jìn)制十六進(jìn)制規(guī)則逢二進(jìn)一,借一當(dāng)二逢八進(jìn)一,借一當(dāng)八逢十進(jìn)一,借一當(dāng)十逢十六進(jìn)一,借一當(dāng)十六基數(shù)R=2R=8R=10R=16數(shù)符0,10,…70,…90,…9,A,…,E權(quán)2i8i10i16i形式表示BODH計算機(jī)中常用的四種進(jìn)位計數(shù)制1.3.2不同進(jìn)位計數(shù)制之間的轉(zhuǎn)換

不同進(jìn)位計數(shù)制之間的等值轉(zhuǎn)換實質(zhì)上是進(jìn)行基數(shù)的轉(zhuǎn)換。轉(zhuǎn)換所依據(jù)的原則是:如果兩個數(shù)的值相等,則兩數(shù)的整數(shù)部分和小數(shù)部分的值一定分別相等。因此在轉(zhuǎn)換時應(yīng)對該數(shù)的整數(shù)部分和小數(shù)部分分別進(jìn)行轉(zhuǎn)換。E不同進(jìn)位計數(shù)制之間的轉(zhuǎn)換

盡管得到的表示結(jié)果是不同的,但該數(shù)本身并沒有發(fā)生改變。等值轉(zhuǎn)換實質(zhì)上是進(jìn)行基數(shù)的轉(zhuǎn)換:各種進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)

任何進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)都比較簡單,只需按該進(jìn)制的位權(quán)按位展開、然后相加即可,其和便是相應(yīng)的十進(jìn)制數(shù)。這種方法稱為按權(quán)相加法。比如:

(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2=16+8+0+2+1+0+0.25=(27.25)10(1316.04)8=1×83+3×82+1×81+6×80+0×8-1+4×8-2=512+192+48+6+0+0.0625=(758.0625)10(1FC.88)16=1×162+F×161+C×160+8×16-1+8×16-2=256+240+12+0.5+0.03125=(508.53125)10

如果A=(12367)8,則A除以(8)10的整數(shù)部分是(?)8,余數(shù)部分是7;

A中有(?)8個(64)10;A除以4的余數(shù)是(?)10。請思考

一個二進(jìn)制數(shù)乘以4的運(yùn)算能否通過改變小數(shù)點(diǎn)位置的方法實現(xiàn)?請思考(3456)10=(11011000000)2=(6600)8=(D80)16

16)3456

……016)216……816)13……13(D80)160

十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制數(shù),需要對整數(shù)部分和小數(shù)部分采用不同的方法進(jìn)行。(1)對于整數(shù)部分,將十進(jìn)制數(shù)不斷地除以要轉(zhuǎn)換的進(jìn)制的基數(shù),并取得其余數(shù)。整數(shù)部分繼續(xù)上述方法,直到商為0時停止。所有余數(shù)的反向排列即為所需要的某進(jìn)制數(shù)。這種方法稱為除基數(shù)取余法。例如:十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制數(shù)轉(zhuǎn)換原理?2)3456……02)1728……02)864……02)432……02)216……02)108……02)54

……0(110110000000)22)27……12)13……12)6……02)3……12)1……108)3456……08)432……08)54……6(6600)88)6

……60十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制數(shù)設(shè)一個十進(jìn)制整數(shù)X已被表示成一個二進(jìn)制數(shù)(knkn-1…

k1k0),那么X按二進(jìn)制的權(quán)展開如下:X=kn2n+kn-12n-1+…+k121+k020由于展開的前幾項均為2的整數(shù)倍,因此k0即為X除以2的余數(shù)。也即,X/2的商為:kn2n-1+kn-12n-2+…+k120余數(shù)為k0轉(zhuǎn)換原理:(2)對于小數(shù)部分,將十進(jìn)制小數(shù)不斷地乘以要轉(zhuǎn)換的進(jìn)制的基數(shù),并取得其整數(shù)部分。余小數(shù)部分繼續(xù)上述方法,直到滿足精度(因為有可能出現(xiàn)循環(huán)現(xiàn)象,因此一般要給出小數(shù)位數(shù))停止。所有整數(shù)的正向排列即為所需要的某進(jìn)制小數(shù)。這種方法稱為乘基數(shù)取整法。例如:(0.346)10=(0.0101100)2=(0.260)8=(0.58)16

(有一定精度)

0.346×2=0.69200.692×2=1.38410.384×2=0.76800.768×2=1.5361(0.0101100)20.536×2=1.07210.072×2=0.14400.144×2=0.2880

0.346×8=2.76820.768×8=6.1446(0.261)8

0.144×8=1.1521

0.346×16=5.8245(0.5D)160.824×16=13.18413十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制數(shù)轉(zhuǎn)換原理?設(shè)一個十進(jìn)制純小數(shù)X已被表示成一個二進(jìn)制數(shù)k-1k-2…

k-(m-1)k-m,那么X按二進(jìn)制的權(quán)展開如下:X=k-12-1+k-22-2+…+k-m2-m將其乘以2,即為:k-1+k-22-1+…+k-m2-m+1轉(zhuǎn)換原理:整數(shù)部分為k-1

對于既有整數(shù)又有小數(shù)部分的十進(jìn)制數(shù),則可對其整數(shù)與小數(shù)部分分別轉(zhuǎn)換成二進(jìn)制數(shù),再把兩部分結(jié)果合并起來。比如,(18)10=(10010)2;(0.8125)10=(0.1101)2

因此,(18.8125)10=(10010.1101)2

對于十進(jìn)制轉(zhuǎn)換成其它進(jìn)制數(shù)時,要充分理解位權(quán)和基數(shù)的概念。通過位權(quán)和基數(shù)的概念,可以采用簡便的轉(zhuǎn)換方法。

十進(jìn)制數(shù)轉(zhuǎn)換成其他進(jìn)制數(shù)=

(-11×128-1)10=(-11×2-7)10=(-1011×2-7)2=(-0.0001011)2=

(7+1×2-1)10=(111+1×2-1)2=(111+0.1)2=(111.1)2=

A×(8+2)=A×8+A×2=A×23+A×2A×10比如:(47/128)10把以下幾個十進(jìn)制數(shù)轉(zhuǎn)化成二進(jìn)制數(shù):=(47/27)10=(101111/27)2=(0.0101111)2

因二進(jìn)制數(shù)的基數(shù)是2,八進(jìn)制數(shù)的基數(shù)是8,由于23=8,所以八進(jìn)制的一位可以表達(dá)的計數(shù)范圍對應(yīng)于二進(jìn)制的三位聯(lián)合可以表達(dá)的計數(shù)范圍。二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)的基本方法是,以小數(shù)點(diǎn)為基準(zhǔn),整數(shù)部分從右至左,每三位一組,最高位不足三位時補(bǔ)0;小數(shù)部分從左至右,每三位一組,最低有效位不足三位時補(bǔ)0。然后,每組改成等值的一位八進(jìn)制數(shù)即可。這種方法稱為“三歸一法”。二進(jìn)制數(shù)與八進(jìn)制數(shù)、十六進(jìn)制數(shù)之間的轉(zhuǎn)換

同理,十六進(jìn)制的一位可以表達(dá)的計數(shù)范圍對應(yīng)于二進(jìn)制的四位聯(lián)合可以表達(dá)的計數(shù)范圍。二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)采用“四歸一法”:比如:(11101.10101)2

(00011101.10101000)2=(1D.A8)16

反之,八進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)可采用“一拆三法”,即把一位八進(jìn)制數(shù)寫成等值的三位二進(jìn)制數(shù)然后按權(quán)連接即可。十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)可采用“一拆四法”。二進(jìn)制數(shù)與八進(jìn)制數(shù)、十六進(jìn)制數(shù)之間的轉(zhuǎn)換·1.3.3計算機(jī)中的數(shù)據(jù)表示及其存儲

在計算機(jī)中,所有的數(shù)據(jù)、指令和符號都是用特定的二進(jìn)制代碼來表示的。一個數(shù)在計算機(jī)內(nèi)部表示成的二進(jìn)制形式稱為機(jī)器數(shù),原來的數(shù)稱為這個機(jī)器數(shù)的真值。機(jī)器數(shù)具有下列特點(diǎn):(1)由于計算機(jī)設(shè)備的限制,機(jī)器數(shù)有固定的位數(shù),它所表示的數(shù)受到計算機(jī)固有位數(shù)的限制,所以機(jī)器數(shù)具有一定的范圍,超過這個范圍便無法正確表示,我們稱這種情況為“溢出”。機(jī)器數(shù)及其表示

(2)機(jī)器數(shù)把其真值的符號數(shù)字化。計算機(jī)中使用具有兩個不同狀態(tài)的電子器件,它們只能分別代表數(shù)字符號“0”或“1”。那末,數(shù)的正負(fù)號也只能通過0和1來加以區(qū)分。通常,我們用機(jī)器數(shù)中規(guī)定的符號位(一般是一個數(shù)的最高位)取0或1,來分別表示其真值的正或負(fù)。(3)機(jī)器數(shù)中依靠格式上的約定表示小數(shù)點(diǎn)的位置。根據(jù)約定的小數(shù)點(diǎn)位置是否固定,分為定點(diǎn)表示法和浮點(diǎn)表示法兩種。

關(guān)于正負(fù)號的處理,機(jī)器數(shù)也有不同的表示方法,常用的有四種:原碼、補(bǔ)碼、反碼和移碼。(1)原碼:最高位(最左邊一位)表示數(shù)的符號:“0”表示正號,“1”表示負(fù)號;其余各位表示數(shù)的大小,即這個數(shù)的絕對值。通常用[X]原表示X的原碼。[+57]原=00111001[-57]原=10111001[-1]原=10000001[-127]原=11111111[+127]原=01111111[+0]原=00000000,[-0]原=10000000不唯一,有“正零”和“負(fù)零”之分一、機(jī)器數(shù)對于正負(fù)號的處理補(bǔ)碼的理解——模(表示范圍)舉例:設(shè)a=4,b=6,用原碼計算(a-b)。(2)補(bǔ)碼表示法在討論補(bǔ)碼之前,先介紹模的概念。

“?!笔侵敢粋€計量系統(tǒng)的計數(shù)范圍。模實質(zhì)上是計量器產(chǎn)生“溢出”的量,它的值在計量器上表示不出來,計量器上只能表示出模的余數(shù)。

以眾所周知的時鐘為例,設(shè)當(dāng)前時鐘指向1點(diǎn),而準(zhǔn)確時間應(yīng)為5點(diǎn),調(diào)整時間的方法有兩種。一種方法是將時針倒撥8小時,即13-5=8;另一種方法是將時針順撥4小時,即。由此可見,在以12為模的系統(tǒng)中加4和減8的效果是一樣的,即(-8)=(+4)(Mod12)。 這里稱-8和+4互補(bǔ),它們的絕對值相加恰好等于時鐘的模12。下面引入補(bǔ)碼表示法。對于整數(shù)而言,若計算機(jī)字長為n位,則

x0≤x<2n-1 2n+x–2n-1≤x<0例如,n=8時

[+73]補(bǔ)=01001001[–73]補(bǔ)=100000000-01001001=10110111[–1]補(bǔ)=100000000-00000001=11111111[–127]

補(bǔ)=100000000-01111111=10000001[–128]

補(bǔ)=100000000-10000000=10000000從上述例中可知,補(bǔ)碼的最高位不僅代表符號,而且還代表這一位對應(yīng)一個負(fù)的值。[x]補(bǔ)=–128643216842110000101-128+4+1=-123

(a)將補(bǔ)碼10000101轉(zhuǎn)換成十進(jìn)制數(shù)–128643216842110000110–122=–128++4+2(b)將十進(jìn)制數(shù)–122轉(zhuǎn)換成補(bǔ)碼圖1.108位補(bǔ)碼對應(yīng)的取值示例圖1.10(a)是將一個補(bǔ)碼10000101轉(zhuǎn)換成十進(jìn)制表示的數(shù)。圖1.10(b)是將一個十進(jìn)制數(shù)–122轉(zhuǎn)換成補(bǔ)碼表示的數(shù)。圖1.10(a)所示是將一個補(bǔ)碼10000101轉(zhuǎn)換成十進(jìn)制表示的數(shù)。10000101中最高位的1代表–27,另兩位的1分別代表22、20,于是,它代表的十進(jìn)制真值為:

–27+22+20=–123圖1.10(b)所示是將一個十進(jìn)制數(shù)–122轉(zhuǎn)換成補(bǔ)碼表示的數(shù)。因為

–122=–27+22+21,所以用補(bǔ)碼表示就是10000110。圖1.10說明一個8位補(bǔ)碼對應(yīng)的取值。可以發(fā)現(xiàn),各位的權(quán)值與二進(jìn)制轉(zhuǎn)換是一致的,只是最高位取負(fù)。用補(bǔ)碼表示整數(shù)時可表示的數(shù)值范圍

仍以n=8為例,當(dāng)X>0時,最大值為[X]補(bǔ)=01111111=+127;而當(dāng)X<0時,絕對值最大為[X]補(bǔ)=10000000對應(yīng)的真值為-128。所以8位整數(shù)的表示范圍是-128~+127。數(shù)0的補(bǔ)碼表示是唯一的,即

[0]

補(bǔ)=[+0]補(bǔ)=[-0]

補(bǔ)=00000000

對負(fù)數(shù)而言求其補(bǔ)碼有一個簡便的方法是:符號位取1,其余各位按其真值取反,然后在它的末位加1。簡稱“求反加1法”?!纠?-8】

求-36的補(bǔ)碼。解:第1步:將-36表示成二進(jìn)制數(shù):

-0100100

第2步:11011011

第3步:反之,從補(bǔ)碼求真值的方法是:1、若符號位為0,則符號位后的二進(jìn)制數(shù)就是真值,且為正;2、若符號位為1,則將符號位后的二進(jìn)制代碼逐位取反,再在末位加1,所得結(jié)果為真值,且為負(fù)。+111011100【例1-9】

求[11110110]補(bǔ)的真值。解:第1步:除符號位外,各位取反:

1111011010001001第2步:

10001010所以真值為(–0001010)2,即(–10)10+1根據(jù)補(bǔ)碼定義,可以證明

[x]

補(bǔ)+[y]補(bǔ)=[x+y]

補(bǔ)

[x]

補(bǔ)―[y]補(bǔ)=[x―y]

補(bǔ)這表明,兩個補(bǔ)碼加減的結(jié)果也是補(bǔ)碼,而且在運(yùn)算時,符號位可同數(shù)值部分作為一個整體參加運(yùn)算,如果符號位有進(jìn)位,則舍去進(jìn)位。[x]

補(bǔ)+[-y]補(bǔ)=[x-y]

補(bǔ)[x]

補(bǔ)+[y]補(bǔ)=[x+y]

補(bǔ)【例1-10】

設(shè)a=4,b=6,請用補(bǔ)碼求和方法計算(a-b)。解:因為[a]

補(bǔ)=00000100,[-b]

補(bǔ)=11111010且[a-b]

補(bǔ)=[a]

補(bǔ)+[-b]

補(bǔ)

=00000100+11111010 =11111110所以(a-b)=-2[x]

補(bǔ)+[-y]補(bǔ)=[x-y]

補(bǔ)(3)反碼:對于正數(shù),反碼與其原碼相同,。對于負(fù)數(shù),將其原碼的符號位保持不變,其余各位取反。[+57]反=00111001[-57]反=11000110[-1]反=11111110[+127]反=01111111[-127]反=10000000[+0]反=00000000;[-0]反=11111111不唯一移碼:把補(bǔ)碼的符號位取反求得。[+57]原=00111001[-57]原=10111001[-1]原=10000001[-127]原=11111111[+127]原=01111111[+0]原=00000000,[-0]原=10000000不唯一假定一個數(shù)在機(jī)器中占用8位。(1)原碼0X1|X|0X1|X|0X1|X|+1+7:00000111+0:00000000

-7:10000111-0:10000000+7:00000111+0:00000000-7:11111000-0:11111111+7:00000111+0:00000000-7:11111001-0:00000000

(2)反碼(3)補(bǔ)碼[X]原=[X]反=[X]補(bǔ)=真值原碼反碼補(bǔ)碼+127011111110111111101111111+1000000010000000100000001+0000000000000000000000000-0100000001111111100000000-1100000011111111011111111-127111111111000000010000001-128無法表示無法表示10000000典型數(shù)編碼舉例:1、原碼、反碼表示數(shù)的范圍是:+127~-127,而補(bǔ)碼表示數(shù)的范圍是:+127~-128;2、原碼、反碼有+0和-0之分;3、正數(shù)的原碼、補(bǔ)碼、反碼的表示形式相同。結(jié)論:補(bǔ)碼的理解——取反加1[x]補(bǔ)=x0≤x<2n-1

2n+x-2n-1≤x<02n+x=2n-1+1+x=111…1+1+x=111…1+x+1=111…1-|x|+1=|x|+1nnn二、機(jī)器數(shù)對于小數(shù)點(diǎn)的處理(1)定點(diǎn)表示法定點(diǎn)表示法中約定所有數(shù)據(jù)的小數(shù)點(diǎn)隱含固定在某個位置,該位置在計算機(jī)設(shè)計制造時已經(jīng)規(guī)定,勿需再用其他狀態(tài)來明顯地表示小數(shù)點(diǎn)。用這種方法表示的數(shù)稱為定點(diǎn)數(shù)。只能處理定點(diǎn)數(shù)的計算機(jī)叫做“定點(diǎn)機(jī)”。

把小數(shù)點(diǎn)位置固定在數(shù)的最高位之前,使機(jī)器所表示的數(shù)是純小數(shù)。這種表示中,|X|min=2-n,|X|max=1-2-n(設(shè)尾數(shù)有n位)

S符號位小數(shù)點(diǎn)|N|<1定點(diǎn)整數(shù)S小數(shù)點(diǎn)小數(shù)點(diǎn)|N|<=2n–1

–10<=N<=2n–1n位定點(diǎn)小數(shù)例:00100000表示+0.25;10100000表示–0.25。

例:00100000表示+32;10100000表示–32。例:00100000表示32;10100000表示160。

無符號整數(shù)n位1.數(shù)的定點(diǎn)表示(2)浮點(diǎn)表示法浮點(diǎn)表示法中,數(shù)據(jù)的小數(shù)點(diǎn)位置不是固定不變的,而是可浮動的。對于浮點(diǎn)數(shù)而言,其小數(shù)點(diǎn)位置必須在數(shù)中明顯地給出。任何一個二進(jìn)制數(shù)可以表示為:

其中M為尾數(shù);r為階。尾數(shù)可正可負(fù),同樣,階也可正可負(fù),所以浮點(diǎn)數(shù)的格式一般分為:階符、階、數(shù)符和尾數(shù)四個部分。

二、機(jī)器數(shù)對于小數(shù)點(diǎn)的處理階符數(shù)符階尾數(shù)2.浮點(diǎn)表示小數(shù)點(diǎn)的位置隨數(shù)值的不同而變化的叫浮點(diǎn)數(shù)例如:123.4可表示成

123.4*10012.34*1011.234*1020.1234*103▲

0.01234*104等

其中▲為最大規(guī)格化浮點(diǎn)數(shù)(即小數(shù)點(diǎn)后第1位非零的純小數(shù)*階數(shù))

二進(jìn)制也一樣2.浮點(diǎn)數(shù)例:110.011(B)=1.10011×2+10=0.011001×2+100=+0.110011×2+11規(guī)范格式尾數(shù)最高位為1階碼數(shù)符階符尾數(shù)1100110011N=數(shù)符×尾數(shù)×2階符×階碼尾數(shù)的位數(shù)決定數(shù)的精度。階碼的位數(shù)決定數(shù)的范圍。例題:(-123.45)10=(-1111011.01110011)2=(-0.111101101110011×27)2用兩個字節(jié)表示該浮點(diǎn)數(shù):機(jī)器數(shù)對于小數(shù)點(diǎn)的處理階符數(shù)符階尾數(shù)010000111111101122…26…202-1…2-73個字節(jié)1個字節(jié)1個字節(jié)1個字節(jié)精度約為小數(shù)點(diǎn)后兩位:2-7≈

10-2

一般規(guī)定,尾數(shù)M是二進(jìn)制定點(diǎn)純小數(shù),即約定小數(shù)點(diǎn)在尾數(shù)最高位之前;階為二進(jìn)制定點(diǎn)整數(shù),即小數(shù)點(diǎn)位置固定在數(shù)的最低位之后。

|X|max=|N|min=機(jī)器數(shù)對于小數(shù)點(diǎn)的處理me設(shè)浮點(diǎn)數(shù)字長n位,則n=m+e+2;N=數(shù)符×尾數(shù)×2階符×階碼最大最大正值最小最大負(fù)值n非數(shù)值信息編碼

機(jī)內(nèi)只能識別0,1兩種狀態(tài),即相當(dāng)于只識別0,1這兩個字.

為了將要處理的各種信息讓計算機(jī)能識別,需要人為地進(jìn)行編碼(即給計算機(jī)作一個約定用什么形式的0,1串表示什么).1.3.4非數(shù)值數(shù)據(jù)的編碼

1.3.4非數(shù)值數(shù)據(jù)的編碼

二進(jìn)制數(shù)位的邏輯運(yùn)算: 數(shù)學(xué)中的邏輯代數(shù)有“假”和“真”(False和True)這2種真值。由于二進(jìn)制數(shù)字0和1恰好對應(yīng)“假”和“真”,CPU的運(yùn)算器能夠非常容易地實現(xiàn)邏輯運(yùn)算,從而使計算機(jī)具有基于邏輯運(yùn)算的條件判斷能力。 邏輯與(AND)、邏輯或(OR)和邏輯非(NOT)這3種運(yùn)算是最基本的邏輯運(yùn)算。1、邏輯型數(shù)據(jù)及其基本運(yùn)算

3種基本邏輯運(yùn)算規(guī)則ABA∧BA∨B-A00001010111001011110

下圖是實現(xiàn)邏輯“非”、“與”和“或”門的圖形符號及相應(yīng)的運(yùn)算規(guī)則。01計算機(jī)內(nèi)部表示信息

用一個7位二進(jìn)制碼表示一個字符中文信息編碼

用二個7位二進(jìn)制碼表示一個字符西文信息編碼(1).ASCII碼(AmericanStandardCodeforInformationInterchange)

常用字符有128個,編碼從0到127。

空格0010000020H32

‘0’~‘9’00110000~0011100130H~39H48~57

‘A’~‘Z’01000001~0101101041H~5AH65~90

‘a(chǎn)’

~‘z’01100001~0111101061H~7AH97~122控制字符:0~32、127,共34個;普通字符(可打印字符):94個。每個字符占一個字節(jié),用7位,最高位不用,一般為0。

字符二進(jìn)制表示十六進(jìn)制表示十進(jìn)制表示2.西文字符每一個字符有一個唯一的編碼。3.十進(jìn)制的二進(jìn)制編碼表示1.BCD碼(二~十進(jìn)制編碼)

BCD碼(BinaryCodeDecimal)是用四位二進(jìn)制數(shù)表示一位十進(jìn)制數(shù)的編碼。BCD碼有多種編碼方案,常用的是8421碼,如下表所示。

十進(jìn)制數(shù)BCD碼

十進(jìn)制數(shù)BCD碼00000100001000010001110001000120010130001001130011160001011040100190001100150101200010000060110250010010170111280010100081000570101011191001780111100025=(0010

0101)BCD25用四位二進(jìn)制碼表示一位十進(jìn)制數(shù)的編碼為BCD碼不是真正的二進(jìn)制數(shù)4、漢字信息的數(shù)字化字符代碼化(輸入)機(jī)內(nèi)碼輸入碼向機(jī)內(nèi)碼轉(zhuǎn)換機(jī)內(nèi)碼向字形碼轉(zhuǎn)換顯示輸出打印輸出數(shù)字碼拼音碼字形碼(1)漢字輸入編碼

漢字輸入編碼是用字母和數(shù)字對漢字進(jìn)行的編碼,目的是為了能使用只有字母和數(shù)字鍵的小鍵盤,將漢字輸入計算機(jī)。目前漢字輸入編碼方法已有數(shù)百種之多。這些方法大多是按照漢字的字形,或者字音,或者音形結(jié)合來對漢字進(jìn)行編碼的。常用的輸入編碼方式有:國標(biāo)區(qū)位碼、全拼、雙拼、微軟拼音、五筆字形等。(2)漢字國標(biāo)碼 漢字交換碼是在不同計算機(jī)系統(tǒng)之間進(jìn)行信息交換使用的編碼,也稱國標(biāo)碼。國標(biāo)碼(GB2312-80):我國漢字交換碼的國家標(biāo)準(zhǔn)6763個常用漢字一級漢字:3755個;按漢語拼音排列;二級漢字:3008個。按偏旁部首排列。682個非漢字字符字母、數(shù)字和各種符號,包括拉丁字母、俄文、日文平假名與片假名、希臘字母、漢語拼音等。國標(biāo)碼共選取6763個常用漢字和682個非漢字字符。并為每個字符規(guī)定了標(biāo)準(zhǔn)代碼。GB2312—80信息交換編碼表,排成一張94×94的圖形字符代碼表,表1.4是其部分示意。通常將表中的行稱為區(qū),列稱為位,表中任何一個圖形字符的位置可由區(qū)號與位號唯一確定。

GB2312—80中的每個圖形符號的區(qū)、位可采用兩個字節(jié)表示,每個字節(jié)用7位二進(jìn)制編碼。以第一字節(jié)表示行,第二字節(jié)表示列,這就是國標(biāo)區(qū)位碼,簡稱區(qū)位碼。b60000b51111b40000b30000b20001b10110b01010位12345..94b6b5b4b3b2b1b0區(qū)01000011…..............011000016啊阿埃挨011000117薄雹保堡第2字節(jié)第1字節(jié)GB2312—80信息交換編碼表圖形字符代碼表例如漢字“啊”,它的區(qū)位碼是1601,即位于十進(jìn)制數(shù)的第16區(qū)、第01位,對應(yīng)的二進(jìn)制編碼第一字節(jié)為00010000,第二字節(jié)為00000001。國標(biāo)碼=區(qū)位碼+2020H

加2020H的目的是使兩個字節(jié)都避免與ASCII碼的控制字符沖突。漢字“啊”的第一字節(jié)為00010000+00100000=00110000,第二字節(jié)為00000001+00100000=00100001,即它的國標(biāo)碼是十六進(jìn)制數(shù)3021H。(3)漢字機(jī)內(nèi)碼

漢字機(jī)內(nèi)碼是漢字處理系統(tǒng)中用來存儲、處理、傳輸漢字用的代碼。在西文系統(tǒng)中,沒有交換碼和機(jī)內(nèi)碼之分,每個西文字符的機(jī)內(nèi)碼即為用一個字節(jié)表示的ASCII碼,一般只用其中的7位表示128種字符,最高位為0。 漢字系統(tǒng)中的機(jī)內(nèi)碼在編碼時必須考慮到既能與ASCII碼嚴(yán)格區(qū)分,又與國標(biāo)GB2312—80漢字字符集有簡單的對應(yīng)關(guān)系。采用的方法之一是將表示一個漢字的國標(biāo)碼的2個字節(jié)的最高位都設(shè)置為“1”。

每個漢字占兩個字節(jié),機(jī)內(nèi)碼最高位為1。例:漢字國標(biāo)碼漢字內(nèi)碼

3473H(00110100,01110011B)1011010011110011B由此可見,漢字內(nèi)碼與國標(biāo)碼之間的關(guān)系是:機(jī)內(nèi)碼=國標(biāo)碼+8080H=區(qū)位碼+A0A0H用2字節(jié)的機(jī)內(nèi)碼可表示漢字的個數(shù)是216-2=214=16384,足夠覆蓋常用的近8000個漢字。應(yīng)當(dāng)注意,漢字的區(qū)位碼和國標(biāo)碼是唯一的,而機(jī)內(nèi)碼的表示則可能隨系統(tǒng)的不同而使用不同的方法。國標(biāo)碼=區(qū)位碼+2020HB4F3H(4)漢字字形碼 漢字字形碼是漢字筆畫構(gòu)成的圖形編碼,是為了實現(xiàn)漢字輸出而進(jìn)行的編碼。要在輸出設(shè)備上顯示一個漢字,通常是把單個漢字離散成網(wǎng)點(diǎn),每點(diǎn)以一個二進(jìn)制位表示,由此組成的漢字點(diǎn)陣字模稱為漢字字形碼。通常漢字顯示使用16×16點(diǎn)陣,漢字打印可選用24×24,32×32,48×48等點(diǎn)陣。點(diǎn)數(shù)愈多,打印的字體愈美觀,但漢字庫占用的存儲空間也愈大。

漢字字形碼占用的存儲空間:

例:一個16╳16的漢字:

16╱8

╳16=32字節(jié)一個24╳24的漢字:

24╱8

╳24=72字節(jié)一個32╳32的漢字:

32╱8

╳32=128字節(jié)

一個漢字字形碼究竟占多少個字節(jié)由漢字的字模決定。(5)漢字地址碼 每個漢字字形碼在漢字字庫中的相對位移地址稱為漢字地址碼。當(dāng)需要輸出漢字時,必須通過地址碼,才能在漢字字庫中取到所需的字形碼,在輸出設(shè)備上形成可見的漢字字形。

輸入碼國標(biāo)碼機(jī)內(nèi)碼地址碼字形碼漢字信息處理系統(tǒng)的模型1.4程序設(shè)計語言1.程序設(shè)計語言概念

用于書寫計算機(jī)程序的語言稱為程序設(shè)計語言(programminglanguage)。 簡單地說,語言的基礎(chǔ)是一組文字記號和一組規(guī)則,根據(jù)規(guī)則由文字記號構(gòu)成的記號串的總體就是語言。使用程序設(shè)計語言撰寫的符合語法規(guī)則和算法要求的記號串就是程序。

根據(jù)計算機(jī)本身的發(fā)展,計算機(jī)語言經(jīng)歷三個發(fā)展階段,每個發(fā)展階段具有不同性質(zhì)的計算機(jī)語言。三個發(fā)展階段的計算機(jī)語言分別是機(jī)器語言(也稱為二進(jìn)制語言)、匯編語言和高級語言。

1.4程序設(shè)計語言機(jī)器語言直接面向計算機(jī)本身。這種語言通過0和1的各種排列組合,表達(dá)不同的語義。0和1可以直接控制計算機(jī)本身的各種電子元件的開和關(guān),因此,這種語言可以直接交給計算機(jī)閱讀。使用位模式的機(jī)器指令編制程序不僅效率低下、容易出錯,而且不易辨認(rèn)與交流,程序的調(diào)試與軟件維護(hù)尤其困難。機(jī)器語言

例如,“把寄存器3的數(shù)據(jù)送入寄存器5中”可以表示為“MOVR3,R5”。為了將使用指令助記符編寫的程序轉(zhuǎn)換為機(jī)器語言,人們又開發(fā)了專用于轉(zhuǎn)

溫馨提示

  • 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

提交評論