版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
程序設(shè)計與算法語言(上)東南大學(xué)(課時:40學(xué)時課內(nèi)試驗機時32學(xué)時)在本課程開始之前,有些不太輕松的話題要作如下說明:
當然,程序設(shè)計是一門實踐性非常強的課程,為此,我們?yōu)槊總€同學(xué)安排了32個課時的上機實踐,每次上機都是針對所學(xué)內(nèi)容,以幫助理解、鞏固和提高為目的。因此,上機也是上課,上機時與上課的要求一樣,請同學(xué)們務(wù)必遵守上機的規(guī)則和要求。
此外,學(xué)習(xí)程序設(shè)計,要涉及很多術(shù)語、名詞、規(guī)則等等,課堂上教師不可能逐一描述,只能講授和解釋其中的重點和難點。其余部分也必須通過反復(fù)閱讀和作業(yè)練習(xí)才能逐步熟悉和理解。為此,我們規(guī)定:
在計算機比較普及的今天,有條件的同學(xué)對計算機的一些基本操作,甚至一些硬件以及軟件外圍的術(shù)語可能比較熟練、熟悉,應(yīng)該說,這對學(xué)好這門課程有一定的幫助。但是,這些所謂高科技的市井知識與程序設(shè)計的能力完全是兩回事。要學(xué)好這門課程,必須在課堂學(xué)習(xí)的基礎(chǔ)上,通過反復(fù)閱讀和練習(xí)才能逐步理解和掌握。累計4次未交按時交作業(yè)與累計3次缺課一樣將被視為放棄考試資格第一章計算機基礎(chǔ)知識1.1本章主要知識點計算機的基本組成與內(nèi)部結(jié)構(gòu)計算機的基本工作原理計算機中數(shù)據(jù)的存儲和表示算法設(shè)計數(shù)據(jù)結(jié)構(gòu)基本概念1.2計算機系統(tǒng)結(jié)構(gòu)及工作原理我們現(xiàn)在普遍使用的通用電子數(shù)字計算機(GenericElectronicNumericalComputer,簡稱計算機)是一種現(xiàn)代計算工具。電子計算機最基本的工作特點是人將其啟動后能自動進行計算直至得出最終答案。為了具有自動計算能力,需要為計算機設(shè)計一套完整的部件,使之除了具有存儲數(shù)據(jù)的功能外,還應(yīng)能夠允許人向機器輸入預(yù)先編寫的指令,然后使機器自動執(zhí)行這套指令對數(shù)據(jù)進行計算,最后將計算結(jié)果以人能夠看到的形式輸出。這是對計算機組成結(jié)構(gòu)的基本要求。一、什么是電子計算機電子計算機之父-馮諾依曼馮?諾依曼思想:
1、二進制;
2、程序存儲、程序控制;
3、五大模塊(輸入、存儲、運算、控制、輸出);
美籍匈牙利科學(xué)家馮·諾依曼歷來被譽為“電子計算機之父”。也是本世紀最偉大的數(shù)學(xué)家、物理學(xué)家、經(jīng)濟學(xué)家之一。世界上第一臺電子計算機1946年,世界上第一臺電子計算機ENIAC在美國賓夕法尼亞大學(xué)莫爾學(xué)院誕生了!重達30噸啟動電力150000瓦17000個電子管保存80個字節(jié)事實上,從上世紀40年代的第一臺真正意義上的電子計算機ENIAC到現(xiàn)在21世紀最先進計算機的結(jié)構(gòu)設(shè)計,都采用同一種計算機體系結(jié)構(gòu),這就是馮?諾依曼體系結(jié)構(gòu)。馮·諾依曼計算機的特點能夠把解題所需要的程序和數(shù)據(jù)輸入計算機中。必須具有長時間記憶程序、數(shù)據(jù)、中間結(jié)果及最終運算結(jié)果的能力。能夠完成各種算術(shù)、邏輯運算和數(shù)據(jù)傳送等數(shù)據(jù)加工處理的能力。能夠根據(jù)需要控制程序走向,并能根據(jù)指令控制機器的各部件協(xié)調(diào)操作。能夠按照要求將計算結(jié)果輸出給用戶。
硬件系統(tǒng)的工作原理--馮·諾依曼機輸入設(shè)備內(nèi)存儲器輸出設(shè)備外存儲器運算器控制器表示數(shù)據(jù)流表示控制流
計算機系統(tǒng)的基本邏輯結(jié)構(gòu)包括硬件和軟件兩個子系統(tǒng)。計算機的基本組成與內(nèi)部結(jié)構(gòu)計算機的基本組成與內(nèi)部結(jié)構(gòu)
如果沒有外圍設(shè)備,CPU和內(nèi)存就像一個沒有軀體的大腦。計算機內(nèi)的插槽和端口可以使系統(tǒng)增加外部設(shè)備變得十分簡單,用戶可以在計算機里的擴展槽里插入專用電路板(叫做卡或擴展卡),來個性化他們的計算機。微型計算機的基本結(jié)構(gòu)微機結(jié)構(gòu)特點開放式、模塊化體系結(jié)構(gòu)主板(母板)+擴展卡+設(shè)備計算機的基本組成與內(nèi)部結(jié)構(gòu)
當前微機主要有Intelx86系列和APPLE的Power系列,無論哪個系列,從基本配置的角度,微機由主板和各類擴展卡組成。主板上主要有CPU、存儲器、系統(tǒng)芯片和I/O接口插槽,這些部件均采用總線相連接。計算機的基本組成與內(nèi)部結(jié)構(gòu)主板:I/O接口內(nèi)存條擴展槽CPU插座芯片組
計算機的基本組成與內(nèi)部結(jié)構(gòu)控制器隨機存儲器(RAM)只讀存儲器(ROM)串行輸入/輸出接口USB接口顯示器接口微型計算機硬件系統(tǒng)主機主板中央處理器運算器寄存器內(nèi)部存儲器外圍接口電路總線擴展板卡機箱、電源外圍設(shè)備地址總線控制總線數(shù)據(jù)總線顯卡網(wǎng)卡聲卡多功能卡輸入設(shè)備存儲設(shè)備(外部存儲器)輸出設(shè)備微型計算機的基本結(jié)構(gòu)并行輸入/輸出接口計算機硬件系統(tǒng)的基本組成
邏輯結(jié)構(gòu)——馮·諾依曼機
一個計算機硬件系統(tǒng),從功能的角度而言,
一般包含五大功能部件:運算器、控制器、存儲器、輸入設(shè)備和輸出設(shè)備。計算機的基本組成與內(nèi)部結(jié)構(gòu)1、中央處理器CPU
(CentreProccessingUnit)是計算機的核心部件,它完成計算機的運算和控制功能,一般由運算器、控制器和寄存器組成。
運算器又稱算術(shù)邏輯部件(ALU——ArithmeticalLogicUnit),主要功能是完成對數(shù)據(jù)的算術(shù)運算和邏輯運算操作。
控制器(Controller)是計算機的控制指揮中心,計算機的神經(jīng)中樞。它的基本功能是從內(nèi)存儲器中取出指令并對指令進行分析、判斷,并根據(jù)指令發(fā)出相應(yīng)的各種控制信號,使計算機的有關(guān)設(shè)備或電子器件有條不紊地協(xié)調(diào)工作,保證計算機能自動、連續(xù)地工作。1、CPUCPU中還包括若干寄存器,用來存放運算過程中的各種數(shù)據(jù)、地址或其他信息。寄存器的種類很多,主要的有:(1)通用寄存器:向ALU提供運算數(shù)據(jù),或保留運算結(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位微處理器,芯片的主頻和集成度不斷提高,微型計算機發(fā)展非常迅速,以2~3年的速率更新?lián)Q代。衡量CPU性能的主要技術(shù)
(1)CPU字長
CPU字長指CPU內(nèi)部各寄存器之間一次能夠傳送的數(shù)據(jù)位?,F(xiàn)在主要是32位,但是64位已經(jīng)逐步普及;(2)運算速度運算速度一般用每秒鐘能夠執(zhí)行多少條指令來表示。(3)工作頻率
CPU的工作頻率也稱為CPU的主頻,它指CPU內(nèi)核電路的實際運行頻率。(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ù)達到1億2500萬個。雙核心處理器,晶體管規(guī)模已經(jīng)突破3億個?,F(xiàn)在的65納米的4核處理器在將近700平方毫米的面積上集成了20.5億個晶體管,據(jù)稱45納米的4核處理器的晶體管數(shù)是65納米處理器的2倍!
2、存儲器
存儲器是有記憶能力的部件,用來保存程序和數(shù)據(jù)。在計算機運算過程中,由存儲器把預(yù)先編制和存儲的程序快速提交給計算機的CPU進行處理。存儲器分為內(nèi)存儲器和外存儲器兩類。程序和數(shù)據(jù)內(nèi)存控制器執(zhí)行指令運算器處理數(shù)據(jù)輸出輸入設(shè)備調(diào)入反饋結(jié)果終端輸出設(shè)備內(nèi)存儲器執(zhí)行過程:
內(nèi)存儲器(也稱主存儲器,簡稱內(nèi)存或主存)可以和CPU直接相連,用來存放當前要執(zhí)行的程序和數(shù)據(jù),以便快速向CPU提供信息。內(nèi)存儲器一般采用半導(dǎo)體材料和集成電路制造。內(nèi)存按其工作方式不同,可分為隨機存取存儲器(RAM——RandomAccessMemory)和只讀存儲器(ROM——ReadOnlyMemory)兩種。ROM:在正常工作的時候只能讀出其中存放的數(shù)據(jù),而不能改變其內(nèi)容。因此ROM經(jīng)常被用來存放那些固定不變,無需修改的數(shù)據(jù)與程序。ROM的最大特點是掉電以后,數(shù)據(jù)不會丟失,通電后可以繼續(xù)使用。舉例:BIOS即基本輸入/輸出系統(tǒng)。
RAM:內(nèi)存的存儲單元可以順序使用,也可以隨機一個單元來使用,這些能被用戶程序或指令訪問的內(nèi)存被稱為隨機存取存儲器。DRAM、SRAMRAM在掉電的時候會將其存儲的數(shù)據(jù)丟失。舉例:互補金屬氧化物半導(dǎo)體CMOS
內(nèi)存儲器BIOS(BasicInput/OutputSystem)即基本輸入/輸出系統(tǒng)。全稱是ROM-BOIS,是只讀存儲器基本輸入/輸出系統(tǒng)的簡寫,它實際是一組被固化到電腦中,為電腦提供最低級最直接的硬件控制的程序,它是連通軟件程序和硬件設(shè)備之間的樞紐,通俗地說,BOIS是硬件與軟件程序之間的一個“轉(zhuǎn)換器”或者說是接口(雖然它本身也只是一個程序),負責(zé)解決硬件的即時要求,并按軟件對硬件的操作要求具體執(zhí)行。當開機時,BOIS中的程序開始啟動。內(nèi)存儲器互補金屬氧化物半導(dǎo)體CMOS(complementarymetaloxidesemiconductor):
是主板上的一塊可讀寫的RAM芯片,一種能量消耗低的RAM,可以在電池電量的支持下長期存儲少量的數(shù)據(jù),CMOSRAM用來存儲系統(tǒng)的日期和時間,系統(tǒng)的口令,系統(tǒng)中安裝的軟盤、硬盤驅(qū)動器的個數(shù)、類型及參數(shù),顯卡的類型,系統(tǒng)啟動時訪問外存儲器的順序。CMOS芯片是易失性存儲器,所以需要專門的電池供電,以支持斷電之后的工作。內(nèi)存儲器外存儲器(也稱輔助存儲器,簡稱外存),一般需要通過特殊接口與CPU連接。外存儲器用來存放當前暫不參加運行而又需要長期保留的程序和數(shù)據(jù)。存放在外存的程序必須調(diào)入內(nèi)存才能運行。軟盤、硬盤和光盤驅(qū)動器都屬于外存儲器。外存儲器硬盤屬于外部存儲器的一種。說起硬盤,你一定不會陌生,包括Windows系統(tǒng)在內(nèi)的所有的軟件都是安裝在硬盤里的,平時所用的資料也都是存儲在硬盤中的。硬盤的大小是衡量一臺電腦性能的重要指標。1、硬盤2、軟盤
3、光盤和光驅(qū)
(4)、移動存儲器
閃存盤以閃速存儲器為介質(zhì),采用USB接口(因此也稱其為U盤),體積只有拇指般大小,重量僅15克左右,容量目前一般為2GB—4GB,最高可達32GB。閃存盤不需要驅(qū)動器,無外接電源,使用方便,即插即用,可帶電插拔。它的存儲單元可反復(fù)檫寫100萬次,數(shù)據(jù)可以保持10年以上。存儲器的層次結(jié)構(gòu)——塔式結(jié)構(gòu)內(nèi)存的存取速度直接影響計算機的運算速度。內(nèi)存一般使用半導(dǎo)體材料制造,存取速度較快,容量較小,成本較高;而外存通常以磁性材料和其他材料制造,容量較大,速度較慢,成本較低。第一層,CPU內(nèi)部的通用寄存器,用來暫存中間結(jié)果,第四和第五層都是輔助存儲器,它們與CPU的通信需要經(jīng)過專門的接口現(xiàn)代的CPU的速度越來越快,它訪問數(shù)據(jù)的周期只需幾個納秒(ns),而主存儲器訪問數(shù)據(jù)的周期需要幾十個納秒。計算機工作時CPU需頻繁地與內(nèi)存交換信息,這就會使CPU不得不進入等待狀態(tài),放慢運行速度,極大地影響計算機的整體性能。
為了有效解決CPU和內(nèi)存之間的速度匹配問題,目前在微機上采用了高速緩沖存儲器(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一致,容量較小,負責(zé)CPU內(nèi)部的寄存器與外部Cache之間的緩沖。CPU外部的Cache稱為二級Cache(L2,Level2)是相對獨立的部件,是L1的補充,負責(zé)整個CPU與內(nèi)存之間的緩沖。存儲器的層次結(jié)構(gòu)主要體現(xiàn)在兩個層次上:(1)高速緩沖存儲器和主存:解決存儲器系統(tǒng)的速度問題。(2)主存和輔存:主要解決存儲器的容量問題。(4)存儲容量的度量在計算機中,信息的存儲單位常采用位、字節(jié)、字等幾種量綱。1、位(bit):一位二進制數(shù)(0或1)
2、字節(jié)(Byte):1Byte=8bit位(Bit):度量數(shù)據(jù)的最小單位字節(jié)(Byte):最常用的基本單位b7b6b5b4b3b2b1b0圖1.4字節(jié)型存儲單元的結(jié)構(gòu)每個存儲單元都有一個編號,此編號稱為存儲單元的地址(Address)。
CPU對存儲器的讀寫操作都是通過地址來進行的。8個二進制位為一個單元?????????????????????????????????????????????????????????????????????????????????????????????????????????????????為了便于對存儲器內(nèi)存放的信息進行管理,整個內(nèi)存被劃分成多存儲單元。一個單元(3)字(Word):又稱計算機字,是可作為獨立的信息單位進行運算或處理的若干位的組合,其中所含的二進制數(shù)位的個數(shù)稱為字長。字長一般是字節(jié)的整數(shù)倍,微型計算機的CPU芯片有16位、32位和64位等規(guī)格。
3、總線和接口總線的一般概念總線是計算機系統(tǒng)各部件之間傳輸?shù)刂?、?shù)據(jù)和控制信息的通道。由一組導(dǎo)線和相關(guān)的控制、驅(qū)動電路組成。任一時刻,只能有一個部件/設(shè)備通過總線發(fā)送數(shù)據(jù),其他部件只能處于接收狀態(tài)。
總線的分類及特點按總線的層次結(jié)構(gòu)內(nèi)部總線:在CPU內(nèi)部,寄存器之間和算術(shù)邏輯部件ALU與控制部件之間傳輸數(shù)據(jù)所用的總線稱為片內(nèi)總線(即芯片內(nèi)部的總線)。系統(tǒng)總線:微機中各插件板與系統(tǒng)板之間的總線,用于插件板一級的互連;外部總線:微機和外部設(shè)備之間的總線,微機作為一種設(shè)備,通過該總線和其他設(shè)備進行信息與數(shù)據(jù)交換,它用于設(shè)備一級的互連。按傳送信息的類型劃分數(shù)據(jù)總線(DataBus,DB)傳輸數(shù)據(jù)信息,雙向其寬度決定了其數(shù)據(jù)傳輸能力數(shù)據(jù)總線的位數(shù)是微型計算機的一個重要指標,通常與微處理的字長相一致。例如Intel8086微處理器字長16位,其數(shù)據(jù)總線寬度也是16位。地址總線(AddressBus,AB)傳輸?shù)刂沸畔?,單向其寬度決定了微機系統(tǒng)的尋址能力比如8位微機的地址總線為16位,則其最大可尋址空間為216=64KB,16位微型機的地址總線為20位,其可尋址空間為220=1MB。一般來說,若地址總線為n位,則可尋址空間為2n字節(jié)??刂瓶偩€(ControlBus,CB)傳輸控制信號、時序信號和狀態(tài)信號特點各異:入/出/雙向等特性均不相同CPU地址總線(AB)內(nèi)存、插槽I/O接口I/O設(shè)備外存接口硬盤等數(shù)據(jù)總線(DB)控制總線(CB)地址總線只能把地址信息從CPU單向地傳送到存儲器或I/O設(shè)備。?????????????????????????????????????????????????????????????????????????????????????????????????????????????????0x00000x00010xffff地址總線為16位,則其最大可尋址空間為216=64KB,地址范圍從0~216-1,十六進制數(shù)為0x0000~0xffff0x00040x0003I/O接口:計算機和I/O設(shè)備的信息類型和格式可能不一樣。通過I/O接口實現(xiàn)計算機與外部設(shè)備的隔離和信號轉(zhuǎn)換。計算機和I/O設(shè)備信號傳輸處理的速度可能不匹配,信號時序有很大差別,通過I/O接口來進行緩沖和協(xié)調(diào)。計算機系統(tǒng)中輸入/輸出設(shè)備是必不可少的一部分,但是I/O設(shè)備一般不與CPU或內(nèi)存儲器直接相連,而是通過I/O接口與CPU或內(nèi)存儲器進行信息交換。
串行與并行接口——不可缺少的輸入輸出接口
1、一次只能發(fā)送和接受一個比特信息的設(shè)備的串行端口,常用于連接到調(diào)制解調(diào)器。
2、能夠成組發(fā)送或者接受比特流的設(shè)備的并行端口,常用于連接打印機。硬盤接口在微型計算機中使用最廣泛的硬盤接口標準是IDE和SCSI。
SCSI接口可以連接外部設(shè)備,如光盤、掃描儀、打印機。
USB接口
USB接口是一種新型的輸入輸出總線接口,可以連接多個外部設(shè)備。已普遍所用USB接口。計算機系統(tǒng)的主板上面常見的接口有:其他端口在擴展板上可以看到,而不是系統(tǒng)板上:1、將彩色顯示器連接到顯卡的視頻端口。2、將聲音設(shè)備連接到聲卡的麥克風(fēng)端口、揚聲器端口、耳機端口和MIDI(音樂工具的數(shù)字界面)端口。這些端口都遵循經(jīng)過行業(yè)協(xié)會認證的接口標準,這樣一個廠商生產(chǎn)的設(shè)備可以連接到另一個廠商生產(chǎn)的計算機上。常見接口插槽PS2鼠標PS2鍵盤千兆網(wǎng)10/100M網(wǎng)卡USB并行口MIDI/游戲接口顯示器接口13941394a音箱/線入接口/麥克風(fēng)串行口
輸入設(shè)備是向計算機輸入信息的裝置,輸入到計算機中的信息都使用二進制中的“0”和“1”兩個符號來表示。按照輸入信息的類型,設(shè)備可以劃分如下類型:數(shù)字和文字輸入設(shè)備(鍵盤、寫字板等)位置和命令輸入設(shè)備(鼠標器、觸摸屏等)圖形輸入設(shè)備(掃描儀,數(shù)碼相機等)聲音輸入設(shè)備(話筒,MIDI演奏器等)視頻輸入設(shè)備(攝像機)溫度、壓力輸入設(shè)備(溫度、壓力傳感器)4、外設(shè)輸入設(shè)備輸出設(shè)備主要用于將計算機處理過的信息保存起來(用“0”和“1”的組合表示),或以人們能接受的數(shù)字、文字、符號、圖形、語音、動畫和圖像等形式顯示或打印出來。常用的輸出設(shè)備有顯示器、打印機、繪圖儀、磁盤驅(qū)動器、數(shù)模轉(zhuǎn)換器(D/A)等。
輸出設(shè)備從外部看到的微機系統(tǒng):主機內(nèi)部的結(jié)構(gòu):
主板也稱為主機板、系統(tǒng)板(SystemBoard)、母板(motherboard)。它固定在主機機箱箱體上的一塊電路板,主板上裝有大量的有源電子元件。其中主要組件有:CMOS、基本輸入輸出系統(tǒng)(Basicinputandoutputsystem,BIOS)、高速緩沖存儲器(cache)、內(nèi)存插槽、CPU插槽、鍵盤接口、軟盤驅(qū)動器接口、硬盤驅(qū)動器接口、總線擴展插槽(提供ISA、PCI等擴展槽)、串行接口(COM1、COM2)、并行接口(打印機接口LPT1)等。因此,主板是計算機各種部件相互連接的紐帶和橋梁。主板的實物圖1、程序、指令和指令系統(tǒng)
一條計算機指令由若干二進制位來表示,指令中一般包含操作碼和操作數(shù)兩部分,其基本格式如圖1.7所示。
其中操作碼指明該指令要完成的操作,例如,加法、減法、乘法、除法、取數(shù)、存數(shù)等。操作數(shù)表示操作對象的內(nèi)容或所在的存儲單元地址。
圖1.7指令的格式圖1.8一條加法指令的位模式1.2.3計算機的工作原理5726用虛構(gòu)的助記符可表示為ADDGX,BX,FX。圖1.8是一個簡單指令集中的一條16位指令的位模式示意圖。如果將圖中每個4位分別轉(zhuǎn)換成十進制,即為5726,其中操作碼5的含義是做加法,該指令表示將2號寄存器與6號寄存器中的數(shù)值相加,和放入7號寄存器中。由于二進制數(shù)碼序列不易看清,一般用助記符描述指令,如圖1.8中的指令,用虛構(gòu)的助記符可表示為ADDGX,BX,FX。按功能分類,可將計算機的指令分為以下幾種類型:數(shù)據(jù)傳送指令:實現(xiàn)數(shù)據(jù)在不同地點之間的傳送,這些不同的地點包括CPU、內(nèi)存和寄存器。在存儲器中,數(shù)據(jù)被傳送至另一地點后,原處的數(shù)據(jù)仍未消失。數(shù)據(jù)處理指令:實現(xiàn)對數(shù)據(jù)進行算術(shù)運算和邏輯運算。程序控制指令:實現(xiàn)改變程序執(zhí)行順序的功能,如跳轉(zhuǎn)指令、循環(huán)控制指令、子程序調(diào)用及返回指令。輸入輸出指令:實現(xiàn)CPU與外部設(shè)備之間的數(shù)據(jù)交換。其他指令:實現(xiàn)對計算機硬件的管理,如中斷指令和標志位操作指令。
一臺計算機所能執(zhí)行的全部指令的集合稱為該計算機的指令系統(tǒng),或稱該計算機的機器語言指令系統(tǒng)。 不同種類的計算機,其指令系統(tǒng)的指令數(shù)目與格式也不同,如80x86類型的CPU有64條運算指令。但無論哪種類型的計算機,其指令系統(tǒng)都包含有上述5種類型的指令。
微機的工作過程就是逐條執(zhí)行進入到內(nèi)存中的二進制機器指令流的過程。而一條指令的執(zhí)行過程可以簡單地分為五個操作階段:取指令,根據(jù)程序計數(shù)器PC中的地址,從內(nèi)存儲器中取出指令,并送到指令寄存器中(IR)。2、一條指令執(zhí)行完成后,將下一條要執(zhí)行的指令地址送入程序計數(shù)器PC。
2、指令的執(zhí)行過程3、分析指令。對指令寄存器中的指令進行分析,由譯碼器對指令中的操作碼部分進行譯碼,得知該條指令要完成什么樣的操作,并轉(zhuǎn)換成相應(yīng)的控制信號;由操作地址碼部分得到操作數(shù)。4、執(zhí)行指令。由操作控制電路發(fā)出完成該操作所需的一系列控制信號,完成該指令所要求的操作。5、檢查有無中斷請求。程序的執(zhí)行過程就是周期性和重復(fù)性地進行這五個操作。計算機的基本工作過程,就是取指令、分析指令、執(zhí)行指令,再取下一條指令,依次周而復(fù)始地執(zhí)行指令序列的過程。該過程也就是某個程序的執(zhí)行過程。微機的工作過程
下面以Intel8086CPU中的一條加法指令A(yù)DDAX,NUM為例來分析其執(zhí)行過程,假設(shè)該指令存放在地址為0200H的存儲單元中。指令中各部分的含義如下:
ADD加法的操作碼。
AX一個通用寄存器。AX既提供操作對象,也用來存放運算結(jié)果。
NUM一個變量或變量的地址,該變量的值是加法運算的另一個操作對象。該指令執(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í)行的特點,讓各個步驟的執(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)代計算機是數(shù)字計算機,在計算機中的一切信息都是以數(shù)字的形式存放和處理的。數(shù)值數(shù)據(jù):有確定的值并在坐標軸上有對應(yīng)的點。非數(shù)值數(shù)據(jù):如文字、字符、圖形、聲音、邏輯數(shù)據(jù)信息1.3數(shù)制轉(zhuǎn)換、字符編碼
信息必須數(shù)字化編碼,才能傳送、存儲和處理。一、基本概念1.3數(shù)制轉(zhuǎn)換、字符編碼
二進制的優(yōu)點:物理上容易實現(xiàn),可靠性強運算簡單,通用性強。1.3.1進位計數(shù)制什么是計數(shù)?如何計數(shù)?進位計數(shù)制(進位計數(shù)方法)
進位計數(shù)制的基本思想是,首先定義一個有限的計數(shù)方法,然后在此基礎(chǔ)上再定義一個擴展該有限計數(shù)方法的方法,從而完成無限的計數(shù)。擴展有限計數(shù)方法的方法一般都是通過并列多個有限計數(shù)方法實現(xià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、……。如果需要計算的量超過十個,則需要擴展,即并列兩個基本的有限計數(shù)(兩位)。十進制BA基本的有限計數(shù)(0~9)擴展方向由于B是對A的擴展,因此,B的1相當于A的10高位低位擴展的另一個基本的有限計數(shù)(0~9)
十進制的基本計數(shù)規(guī)則是,逢十進一,借一當十。十進制的所有運算都是建立在此基礎(chǔ)上。十進制數(shù)666.66表示為6102+6101+6100+610-1+610-2
。在與計算機相關(guān)的資料中,十進制數(shù)表示可以是101、101D、(101)10
十進制十進制表示形式
假設(shè)基數(shù)用b表示,各位分別用ai表示(0ai
b-1),則一個進位計數(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二進制的基本計數(shù)規(guī)則是,逢二進一,借一當二。二進制的所有運算都是建立在此基礎(chǔ)上。(11001010)2-(00010101)2=(10110101)2
(01001010)2+(00010101)2=(01011111)2
在與計算機相關(guān)的資料中,二進制數(shù)表示可以是101B、(101)2。
二進制二進制表示形式進位制二進制八進制十進制十六進制規(guī)則逢二進一,借一當二逢八進一,借一當八逢十進一,借一當十逢十六進一,借一當十六基數(shù)R=2R=8R=10R=16數(shù)符0,10,…70,…90,…9,A,…,E權(quán)2i8i10i16i形式表示BODH計算機中常用的四種進位計數(shù)制1.3.2不同進位計數(shù)制之間的轉(zhuǎn)換
不同進位計數(shù)制之間的等值轉(zhuǎn)換實質(zhì)上是進行基數(shù)的轉(zhuǎn)換。轉(zhuǎn)換所依據(jù)的原則是:如果兩個數(shù)的值相等,則兩數(shù)的整數(shù)部分和小數(shù)部分的值一定分別相等。因此在轉(zhuǎn)換時應(yīng)對該數(shù)的整數(shù)部分和小數(shù)部分分別進行轉(zhuǎn)換。E不同進位計數(shù)制之間的轉(zhuǎn)換
盡管得到的表示結(jié)果是不同的,但該數(shù)本身并沒有發(fā)生改變。等值轉(zhuǎn)換實質(zhì)上是進行基數(shù)的轉(zhuǎn)換:各種進制數(shù)轉(zhuǎn)換成十進制數(shù)
任何進制數(shù)轉(zhuǎn)換成十進制數(shù)都比較簡單,只需按該進制的位權(quán)按位展開、然后相加即可,其和便是相應(yīng)的十進制數(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。請思考
一個二進制數(shù)乘以4的運算能否通過改變小數(shù)點位置的方法實現(xiàn)?請思考(3456)10=(11011000000)2=(6600)8=(D80)16
16)3456
……016)216……816)13……13(D80)160
十進制數(shù)轉(zhuǎn)換成其他進制數(shù),需要對整數(shù)部分和小數(shù)部分采用不同的方法進行。(1)對于整數(shù)部分,將十進制數(shù)不斷地除以要轉(zhuǎn)換的進制的基數(shù),并取得其余數(shù)。整數(shù)部分繼續(xù)上述方法,直到商為0時停止。所有余數(shù)的反向排列即為所需要的某進制數(shù)。這種方法稱為除基數(shù)取余法。例如:十進制數(shù)轉(zhuǎ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十進制數(shù)轉(zhuǎn)換成其他進制數(shù)設(shè)一個十進制整數(shù)X已被表示成一個二進制數(shù)(knkn-1…
k1k0),那么X按二進制的權(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ù)部分,將十進制小數(shù)不斷地乘以要轉(zhuǎn)換的進制的基數(shù),并取得其整數(shù)部分。余小數(shù)部分繼續(xù)上述方法,直到滿足精度(因為有可能出現(xiàn)循環(huán)現(xiàn)象,因此一般要給出小數(shù)位數(shù))停止。所有整數(shù)的正向排列即為所需要的某進制小數(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十進制數(shù)轉(zhuǎn)換成其他進制數(shù)轉(zhuǎn)換原理?設(shè)一個十進制純小數(shù)X已被表示成一個二進制數(shù)k-1k-2…
k-(m-1)k-m,那么X按二進制的權(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ù)部分的十進制數(shù),則可對其整數(shù)與小數(shù)部分分別轉(zhuǎn)換成二進制數(shù),再把兩部分結(jié)果合并起來。比如,(18)10=(10010)2;(0.8125)10=(0.1101)2
因此,(18.8125)10=(10010.1101)2
對于十進制轉(zhuǎn)換成其它進制數(shù)時,要充分理解位權(quán)和基數(shù)的概念。通過位權(quán)和基數(shù)的概念,可以采用簡便的轉(zhuǎn)換方法。
十進制數(shù)轉(zhuǎ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把以下幾個十進制數(shù)轉(zhuǎn)化成二進制數(shù):=(47/27)10=(101111/27)2=(0.0101111)2
因二進制數(shù)的基數(shù)是2,八進制數(shù)的基數(shù)是8,由于23=8,所以八進制的一位可以表達的計數(shù)范圍對應(yīng)于二進制的三位聯(lián)合可以表達的計數(shù)范圍。二進制數(shù)轉(zhuǎn)換成八進制數(shù)的基本方法是,以小數(shù)點為基準,整數(shù)部分從右至左,每三位一組,最高位不足三位時補0;小數(shù)部分從左至右,每三位一組,最低有效位不足三位時補0。然后,每組改成等值的一位八進制數(shù)即可。這種方法稱為“三歸一法”。二進制數(shù)與八進制數(shù)、十六進制數(shù)之間的轉(zhuǎn)換
同理,十六進制的一位可以表達的計數(shù)范圍對應(yīng)于二進制的四位聯(lián)合可以表達的計數(shù)范圍。二進制數(shù)轉(zhuǎn)換成十六進制數(shù)采用“四歸一法”:比如:(11101.10101)2
(00011101.10101000)2=(1D.A8)16
反之,八進制數(shù)轉(zhuǎn)換成二進制數(shù)可采用“一拆三法”,即把一位八進制數(shù)寫成等值的三位二進制數(shù)然后按權(quán)連接即可。十六進制數(shù)轉(zhuǎn)換成二進制數(shù)可采用“一拆四法”。二進制數(shù)與八進制數(shù)、十六進制數(shù)之間的轉(zhuǎn)換·1.3.3計算機中的數(shù)據(jù)表示及其存儲
在計算機中,所有的數(shù)據(jù)、指令和符號都是用特定的二進制代碼來表示的。一個數(shù)在計算機內(nèi)部表示成的二進制形式稱為機器數(shù),原來的數(shù)稱為這個機器數(shù)的真值。機器數(shù)具有下列特點:(1)由于計算機設(shè)備的限制,機器數(shù)有固定的位數(shù),它所表示的數(shù)受到計算機固有位數(shù)的限制,所以機器數(shù)具有一定的范圍,超過這個范圍便無法正確表示,我們稱這種情況為“溢出”。機器數(shù)及其表示
(2)機器數(shù)把其真值的符號數(shù)字化。計算機中使用具有兩個不同狀態(tài)的電子器件,它們只能分別代表數(shù)字符號“0”或“1”。那末,數(shù)的正負號也只能通過0和1來加以區(qū)分。通常,我們用機器數(shù)中規(guī)定的符號位(一般是一個數(shù)的最高位)取0或1,來分別表示其真值的正或負。(3)機器數(shù)中依靠格式上的約定表示小數(shù)點的位置。根據(jù)約定的小數(shù)點位置是否固定,分為定點表示法和浮點表示法兩種。
關(guān)于正負號的處理,機器數(shù)也有不同的表示方法,常用的有四種:原碼、補碼、反碼和移碼。(1)原碼:最高位(最左邊一位)表示數(shù)的符號:“0”表示正號,“1”表示負號;其余各位表示數(shù)的大小,即這個數(shù)的絕對值。通常用[X]原表示X的原碼。[+57]原=00111001[-57]原=10111001[-1]原=10000001[-127]原=11111111[+127]原=01111111[+0]原=00000000,[-0]原=10000000不唯一,有“正零”和“負零”之分一、機器數(shù)對于正負號的處理補碼的理解——模(表示范圍)舉例:設(shè)a=4,b=6,用原碼計算(a-b)。(2)補碼表示法在討論補碼之前,先介紹模的概念。
“?!笔侵敢粋€計量系統(tǒng)的計數(shù)范圍。模實質(zhì)上是計量器產(chǎn)生“溢出”的量,它的值在計量器上表示不出來,計量器上只能表示出模的余數(shù)。
以眾所周知的時鐘為例,設(shè)當前時鐘指向1點,而準確時間應(yīng)為5點,調(diào)整時間的方法有兩種。一種方法是將時針倒撥8小時,即13-5=8;另一種方法是將時針順撥4小時,即。由此可見,在以12為模的系統(tǒng)中加4和減8的效果是一樣的,即(-8)=(+4)(Mod12)。 這里稱-8和+4互補,它們的絕對值相加恰好等于時鐘的模12。下面引入補碼表示法。對于整數(shù)而言,若計算機字長為n位,則
x0≤x<2n-1 2n+x–2n-1≤x<0例如,n=8時
[+73]補=01001001[–73]補=100000000-01001001=10110111[–1]補=100000000-00000001=11111111[–127]
補=100000000-01111111=10000001[–128]
補=100000000-10000000=10000000從上述例中可知,補碼的最高位不僅代表符號,而且還代表這一位對應(yīng)一個負的值。[x]補=–128643216842110000101-128+4+1=-123
(a)將補碼10000101轉(zhuǎn)換成十進制數(shù)–128643216842110000110–122=–128++4+2(b)將十進制數(shù)–122轉(zhuǎn)換成補碼圖1.108位補碼對應(yīng)的取值示例圖1.10(a)是將一個補碼10000101轉(zhuǎn)換成十進制表示的數(shù)。圖1.10(b)是將一個十進制數(shù)–122轉(zhuǎn)換成補碼表示的數(shù)。圖1.10(a)所示是將一個補碼10000101轉(zhuǎn)換成十進制表示的數(shù)。10000101中最高位的1代表–27,另兩位的1分別代表22、20,于是,它代表的十進制真值為:
–27+22+20=–123圖1.10(b)所示是將一個十進制數(shù)–122轉(zhuǎn)換成補碼表示的數(shù)。因為
–122=–27+22+21,所以用補碼表示就是10000110。圖1.10說明一個8位補碼對應(yīng)的取值??梢园l(fā)現(xiàn),各位的權(quán)值與二進制轉(zhuǎn)換是一致的,只是最高位取負。用補碼表示整數(shù)時可表示的數(shù)值范圍
仍以n=8為例,當X>0時,最大值為[X]補=01111111=+127;而當X<0時,絕對值最大為[X]補=10000000對應(yīng)的真值為-128。所以8位整數(shù)的表示范圍是-128~+127。數(shù)0的補碼表示是唯一的,即
[0]
補=[+0]補=[-0]
補=00000000
對負數(shù)而言求其補碼有一個簡便的方法是:符號位取1,其余各位按其真值取反,然后在它的末位加1。簡稱“求反加1法”。【例1-8】
求-36的補碼。解:第1步:將-36表示成二進制數(shù):
-0100100
第2步:11011011
第3步:反之,從補碼求真值的方法是:1、若符號位為0,則符號位后的二進制數(shù)就是真值,且為正;2、若符號位為1,則將符號位后的二進制代碼逐位取反,再在末位加1,所得結(jié)果為真值,且為負。+111011100【例1-9】
求[11110110]補的真值。解:第1步:除符號位外,各位取反:
1111011010001001第2步:
10001010所以真值為(–0001010)2,即(–10)10+1根據(jù)補碼定義,可以證明
[x]
補+[y]補=[x+y]
補
[x]
補―[y]補=[x―y]
補這表明,兩個補碼加減的結(jié)果也是補碼,而且在運算時,符號位可同數(shù)值部分作為一個整體參加運算,如果符號位有進位,則舍去進位。[x]
補+[-y]補=[x-y]
補[x]
補+[y]補=[x+y]
補【例1-10】
設(shè)a=4,b=6,請用補碼求和方法計算(a-b)。解:因為[a]
補=00000100,[-b]
補=11111010且[a-b]
補=[a]
補+[-b]
補
=00000100+11111010 =11111110所以(a-b)=-2[x]
補+[-y]補=[x-y]
補(3)反碼:對于正數(shù),反碼與其原碼相同,。對于負數(shù),將其原碼的符號位保持不變,其余各位取反。[+57]反=00111001[-57]反=11000110[-1]反=11111110[+127]反=01111111[-127]反=10000000[+0]反=00000000;[-0]反=11111111不唯一移碼:把補碼的符號位取反求得。[+57]原=00111001[-57]原=10111001[-1]原=10000001[-127]原=11111111[+127]原=01111111[+0]原=00000000,[-0]原=10000000不唯一假定一個數(shù)在機器中占用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)補碼[X]原=[X]反=[X]補=真值原碼反碼補碼+127011111110111111101111111+1000000010000000100000001+0000000000000000000000000-0100000001111111100000000-1100000011111111011111111-127111111111000000010000001-128無法表示無法表示10000000典型數(shù)編碼舉例:1、原碼、反碼表示數(shù)的范圍是:+127~-127,而補碼表示數(shù)的范圍是:+127~-128;2、原碼、反碼有+0和-0之分;3、正數(shù)的原碼、補碼、反碼的表示形式相同。結(jié)論:補碼的理解——取反加1[x]補=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二、機器數(shù)對于小數(shù)點的處理(1)定點表示法定點表示法中約定所有數(shù)據(jù)的小數(shù)點隱含固定在某個位置,該位置在計算機設(shè)計制造時已經(jīng)規(guī)定,勿需再用其他狀態(tài)來明顯地表示小數(shù)點。用這種方法表示的數(shù)稱為定點數(shù)。只能處理定點數(shù)的計算機叫做“定點機”。
把小數(shù)點位置固定在數(shù)的最高位之前,使機器所表示的數(shù)是純小數(shù)。這種表示中,|X|min=2-n,|X|max=1-2-n(設(shè)尾數(shù)有n位)
S符號位小數(shù)點|N|<1定點整數(shù)S小數(shù)點小數(shù)點|N|<=2n–1
–10<=N<=2n–1n位定點小數(shù)例:00100000表示+0.25;10100000表示–0.25。
例:00100000表示+32;10100000表示–32。例:00100000表示32;10100000表示160。
無符號整數(shù)n位1.數(shù)的定點表示(2)浮點表示法浮點表示法中,數(shù)據(jù)的小數(shù)點位置不是固定不變的,而是可浮動的。對于浮點數(shù)而言,其小數(shù)點位置必須在數(shù)中明顯地給出。任何一個二進制數(shù)可以表示為:
其中M為尾數(shù);r為階。尾數(shù)可正可負,同樣,階也可正可負,所以浮點數(shù)的格式一般分為:階符、階、數(shù)符和尾數(shù)四個部分。
二、機器數(shù)對于小數(shù)點的處理階符數(shù)符階尾數(shù)2.浮點表示小數(shù)點的位置隨數(shù)值的不同而變化的叫浮點數(shù)例如:123.4可表示成
123.4*10012.34*1011.234*1020.1234*103▲
0.01234*104等
其中▲為最大規(guī)格化浮點數(shù)(即小數(shù)點后第1位非零的純小數(shù)*階數(shù))
二進制也一樣2.浮點數(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é)表示該浮點數(shù):機器數(shù)對于小數(shù)點的處理階符數(shù)符階尾數(shù)010000111111101122…26…202-1…2-73個字節(jié)1個字節(jié)1個字節(jié)1個字節(jié)精度約為小數(shù)點后兩位:2-7≈
10-2
一般規(guī)定,尾數(shù)M是二進制定點純小數(shù),即約定小數(shù)點在尾數(shù)最高位之前;階為二進制定點整數(shù),即小數(shù)點位置固定在數(shù)的最低位之后。
|X|max=|N|min=機器數(shù)對于小數(shù)點的處理me設(shè)浮點數(shù)字長n位,則n=m+e+2;N=數(shù)符×尾數(shù)×2階符×階碼最大最大正值最小最大負值n非數(shù)值信息編碼
機內(nèi)只能識別0,1兩種狀態(tài),即相當于只識別0,1這兩個字.
為了將要處理的各種信息讓計算機能識別,需要人為地進行編碼(即給計算機作一個約定用什么形式的0,1串表示什么).1.3.4非數(shù)值數(shù)據(jù)的編碼
1.3.4非數(shù)值數(shù)據(jù)的編碼
二進制數(shù)位的邏輯運算: 數(shù)學(xué)中的邏輯代數(shù)有“假”和“真”(False和True)這2種真值。由于二進制數(shù)字0和1恰好對應(yīng)“假”和“真”,CPU的運算器能夠非常容易地實現(xiàn)邏輯運算,從而使計算機具有基于邏輯運算的條件判斷能力。 邏輯與(AND)、邏輯或(OR)和邏輯非(NOT)這3種運算是最基本的邏輯運算。1、邏輯型數(shù)據(jù)及其基本運算
3種基本邏輯運算規(guī)則ABA∧BA∨B-A00001010111001011110
下圖是實現(xiàn)邏輯“非”、“與”和“或”門的圖形符號及相應(yīng)的運算規(guī)則。01計算機內(nèi)部表示信息
用一個7位二進制碼表示一個字符中文信息編碼
用二個7位二進制碼表示一個字符西文信息編碼(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。
字符二進制表示十六進制表示十進制表示2.西文字符每一個字符有一個唯一的編碼。3.十進制的二進制編碼表示1.BCD碼(二~十進制編碼)
BCD碼(BinaryCodeDecimal)是用四位二進制數(shù)表示一位十進制數(shù)的編碼。BCD碼有多種編碼方案,常用的是8421碼,如下表所示。
十進制數(shù)BCD碼
十進制數(shù)BCD碼00000100001000010001110001000120010130001001130011160001011040100190001100150101200010000060110250010010170111280010100081000570101011191001780111100025=(0010
0101)BCD25用四位二進制碼表示一位十進制數(shù)的編碼為BCD碼不是真正的二進制數(shù)4、漢字信息的數(shù)字化字符代碼化(輸入)機內(nèi)碼輸入碼向機內(nèi)碼轉(zhuǎn)換機內(nèi)碼向字形碼轉(zhuǎn)換顯示輸出打印輸出數(shù)字碼拼音碼字形碼(1)漢字輸入編碼
漢字輸入編碼是用字母和數(shù)字對漢字進行的編碼,目的是為了能使用只有字母和數(shù)字鍵的小鍵盤,將漢字輸入計算機。目前漢字輸入編碼方法已有數(shù)百種之多。這些方法大多是按照漢字的字形,或者字音,或者音形結(jié)合來對漢字進行編碼的。常用的輸入編碼方式有:國標區(qū)位碼、全拼、雙拼、微軟拼音、五筆字形等。(2)漢字國標碼 漢字交換碼是在不同計算機系統(tǒng)之間進行信息交換使用的編碼,也稱國標碼。國標碼(GB2312-80):我國漢字交換碼的國家標準6763個常用漢字一級漢字:3755個;按漢語拼音排列;二級漢字:3008個。按偏旁部首排列。682個非漢字字符字母、數(shù)字和各種符號,包括拉丁字母、俄文、日文平假名與片假名、希臘字母、漢語拼音等。國標碼共選取6763個常用漢字和682個非漢字字符。并為每個字符規(guī)定了標準代碼。GB2312—80信息交換編碼表,排成一張94×94的圖形字符代碼表,表1.4是其部分示意。通常將表中的行稱為區(qū),列稱為位,表中任何一個圖形字符的位置可由區(qū)號與位號唯一確定。
GB2312—80中的每個圖形符號的區(qū)、位可采用兩個字節(jié)表示,每個字節(jié)用7位二進制編碼。以第一字節(jié)表示行,第二字節(jié)表示列,這就是國標區(qū)位碼,簡稱區(qū)位碼。b60000b51111b40000b30000b20001b10110b01010位12345..94b6b5b4b3b2b1b0區(qū)01000011…..............011000016啊阿埃挨011000117薄雹保堡第2字節(jié)第1字節(jié)GB2312—80信息交換編碼表圖形字符代碼表例如漢字“啊”,它的區(qū)位碼是1601,即位于十進制數(shù)的第16區(qū)、第01位,對應(yīng)的二進制編碼第一字節(jié)為00010000,第二字節(jié)為00000001。國標碼=區(qū)位碼+2020H
加2020H的目的是使兩個字節(jié)都避免與ASCII碼的控制字符沖突。漢字“啊”的第一字節(jié)為00010000+00100000=00110000,第二字節(jié)為00000001+00100000=00100001,即它的國標碼是十六進制數(shù)3021H。(3)漢字機內(nèi)碼
漢字機內(nèi)碼是漢字處理系統(tǒng)中用來存儲、處理、傳輸漢字用的代碼。在西文系統(tǒng)中,沒有交換碼和機內(nèi)碼之分,每個西文字符的機內(nèi)碼即為用一個字節(jié)表示的ASCII碼,一般只用其中的7位表示128種字符,最高位為0。 漢字系統(tǒng)中的機內(nèi)碼在編碼時必須考慮到既能與ASCII碼嚴格區(qū)分,又與國標GB2312—80漢字字符集有簡單的對應(yīng)關(guān)系。采用的方法之一是將表示一個漢字的國標碼的2個字節(jié)的最高位都設(shè)置為“1”。
每個漢字占兩個字節(jié),機內(nèi)碼最高位為1。例:漢字國標碼漢字內(nèi)碼
大
3473H(00110100,01110011B)1011010011110011B由此可見,漢字內(nèi)碼與國標碼之間的關(guān)系是:機內(nèi)碼=國標碼+8080H=區(qū)位碼+A0A0H用2字節(jié)的機內(nèi)碼可表示漢字的個數(shù)是216-2=214=16384,足夠覆蓋常用的近8000個漢字。應(yīng)當注意,漢字的區(qū)位碼和國標碼是唯一的,而機內(nèi)碼的表示則可能隨系統(tǒng)的不同而使用不同的方法。國標碼=區(qū)位碼+2020HB4F3H(4)漢字字形碼 漢字字形碼是漢字筆畫構(gòu)成的圖形編碼,是為了實現(xiàn)漢字輸出而進行的編碼。要在輸出設(shè)備上顯示一個漢字,通常是把單個漢字離散成網(wǎng)點,每點以一個二進制位表示,由此組成的漢字點陣字模稱為漢字字形碼。通常漢字顯示使用16×16點陣,漢字打印可選用24×24,32×32,48×48等點陣。點數(shù)愈多,打印的字體愈美觀,但漢字庫占用的存儲空間也愈大。
漢字字形碼占用的存儲空間:
例:一個16╳16的漢字:
16╱8
╳16=32字節(jié)一個24╳24的漢字:
24╱8
╳24=72字節(jié)一個32╳32的漢字:
32╱8
╳32=128字節(jié)
一個漢字字形碼究竟占多少個字節(jié)由漢字的字模決定。(5)漢字地址碼 每個漢字字形碼在漢字字庫中的相對位移地址稱為漢字地址碼。當需要輸出漢字時,必須通過地址碼,才能在漢字字庫中取到所需的字形碼,在輸出設(shè)備上形成可見的漢字字形。
輸入碼國標碼機內(nèi)碼地址碼字形碼漢字信息處理系統(tǒng)的模型1.4程序設(shè)計語言1.程序設(shè)計語言概念
用于書寫計算機程序的語言稱為程序設(shè)計語言(programminglanguage)。 簡單地說,語言的基礎(chǔ)是一組文字記號和一組規(guī)則,根據(jù)規(guī)則由文字記號構(gòu)成的記號串的總體就是語言。使用程序設(shè)計語言撰寫的符合語法規(guī)則和算法要求的記號串就是程序。
根據(jù)計算機本身的發(fā)展,計算機語言經(jīng)歷三個發(fā)展階段,每個發(fā)展階段具有不同性質(zhì)的計算機語言。三個發(fā)展階段的計算機語言分別是機器語言(也稱為二進制語言)、匯編語言和高級語言。
1.4程序設(shè)計語言機器語言直接面向計算機本身。這種語言通過0和1的各種排列組合,表達不同的語義。0和1可以直接控制計算機本身的各種電子元件的開和關(guān),因此,這種語言可以直接交給計算機閱讀。使用位模式的機器指令編制程序不僅效率低下、容易出錯,而且不易辨認與交流,程序的調(diào)試與軟件維護尤其困難。機器語言
例如,“把寄存器3的數(shù)據(jù)送入寄存器5中”可以表示為“MOVR3,R5”。為了將使用指令助記符編寫的程序轉(zhuǎn)換為機器語言,人們又開發(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版智慧醫(yī)療導(dǎo)診視覺系統(tǒng)設(shè)計合同2篇
- 2025年度新能源汽車零部件運輸及銷售合作協(xié)議3篇
- 2025年度交通基礎(chǔ)設(shè)施債權(quán)債務(wù)轉(zhuǎn)讓三方協(xié)議范本3篇
- 2025年度螺桿機維修保養(yǎng)服務(wù)標準合同范本4篇
- 2025年度餐飲行業(yè)食品安全保障與售后服務(wù)協(xié)議4篇
- 2025年度金融機構(gòu)與小微企業(yè)借款合同范本3篇
- 2025年度二零二五年度鏟車租賃與銷售承包合作協(xié)議4篇
- 2025年消防設(shè)施維修保養(yǎng)與改造勞務(wù)分包合同范本3篇
- 2025年度商業(yè)地產(chǎn)項目場地租賃及營銷推廣協(xié)議4篇
- 二零二五年度智慧校園安防監(jiān)控與安全教育合同3篇
- 投資固定分紅協(xié)議
- 蘇教版三年級數(shù)學(xué)下冊全單元測試題(加答案)
- 副廠長競聘演講稿
- 高二物理題庫及答案
- 2024年河北省廊坊市廣陽區(qū)中考一模道德與法治試題
- 電影項目策劃書
- 產(chǎn)業(yè)園區(qū)金融綜合服務(wù)創(chuàng)新藍皮書(2024.1)
- 高一數(shù)學(xué)單元練習(xí)卷
- 國際標準IQ測試題及答案樣本
- 美容院管理制度章程
- 職業(yè)發(fā)展展示園林
評論
0/150
提交評論