《微型計算機原理與接口技術(shù)》教案_第1頁
《微型計算機原理與接口技術(shù)》教案_第2頁
《微型計算機原理與接口技術(shù)》教案_第3頁
《微型計算機原理與接口技術(shù)》教案_第4頁
免費預(yù)覽已結(jié)束,剩余126頁可下載查看

下載本文檔

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

文檔簡介

第1章基礎(chǔ)知識概述1946年,世界上第一臺計算機ENIAC在美國問世以來,計算機技術(shù)的發(fā)展日新月異,在五十多年的歷史中,先后經(jīng)歷了電子管計算機、晶體管計算機、集成電路計算機,到大規(guī)模、超大規(guī)模集成電路計算機這樣四代的更替。目前已有了第五代“非馮?諾依曼”計算機和第六代“神經(jīng)”計算機的研制計劃。所謂“非馮?諾依曼”計算機,是將現(xiàn)有的計算機系統(tǒng)結(jié)構(gòu)進行改革,把電腦仿真為人腦的結(jié)構(gòu)。每個人的腦體只有900克左右,但它能存儲和處理及其大量的信息,并具有分析和綜合的能力,這就是人的智能。計算機研究有一個分支,叫人工智能,就是所謂第五代的人工智能計算機。生物大腦神經(jīng)網(wǎng)絡(luò)可看成一個大規(guī)模并行處理的、緊密耦合的、能自行重組的計算機網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)使人能有效地組織和處理信息,對神經(jīng)網(wǎng)絡(luò)研究,并從大腦工作的模型中抽取計算機設(shè)計的模型,這就是所謂第六代的神經(jīng)網(wǎng)絡(luò)計算機。計算機按其性能、價格、體積、規(guī)模不同可分為巨型機、大型機、中型機、小型機、微型機和單片機六類。其中微型計算機誕生于20世紀(jì)?0年代。由于其體積小、價格低,在各行各業(yè)的得到了廣泛的應(yīng)用。微型計算機的發(fā)展歷史是和大規(guī)模集成電路的發(fā)展密不可分的。1963年、1964年研制出了小規(guī)模集成電路SSI(SmallScaleIntegralion)〇到60年代后期,在一個幾平方毫米大的硅片上,已可集成數(shù)千個晶體管,這就出現(xiàn)了大規(guī)模集成電路LSI(LargeScaleIntegration),為微型計算機的核心部件微處理器的生產(chǎn)打下了基礎(chǔ)。現(xiàn)代最新型的集成電路已可在單個芯片上集成上千萬個晶體管,線寬小于0.1311m,工作頻率已超過2GHz。到目前為止,微型計算機的核心部件微處理器(說明)的發(fā)展過程大致可分為六代(參見P.4表1-1):.第一代4位或低檔8位微處理器(說明“位”的概念)其發(fā)展大約從1971年到!973年。1971年美國Intel公司研制成功世界上第一個微處理器!ntel4004,并于次年推出低檔8位微處理器Intel8008?第一代微處理器指令系統(tǒng)較簡單,運算能力較弱,速度也較慢,執(zhí)行一條指令需1〇?20uS,即0.05MIPS(millioninstructionpersecond),軟件主要用機器語言(說明)和匯編語言(說明),它主要用于計算器及各種家用電器上。.第二代髙檔8位微處理器1973年至1978年,各公司相繼推出了第二代髙檔8位微處理器。1973年,美國Intel公司率先推出了!ntel8080,這是ー個劃時代的產(chǎn)品,它是第一個真正實用于微型計算機的微處理器。它的存儲器尋址空間(說明)增加到64K字節(jié),并擴充了指令集,指令執(zhí)行速度達0.5MIPS。軟件方面,除使用匯編語言外,還可使用BASIC、FORTRAN等髙級語言,后期產(chǎn)品,如以8085A、Z80及MC6502等CPU為核心的具有磁盤和各種外設(shè)的微型計算機,還可用簡單的操作系統(tǒng),如CP/M(ControlProgram/Monitor).這個時期推出的微處理器除Intel公司的產(chǎn)品(8080,8085)外?,還有Zilog公司的Z80及Motorola公司的M6800等。.第三代16位微處理器1977年前后,超大規(guī)模集成電路(VLSI)研制成功,在ー塊芯片上可集成上萬個晶體管,為研制16位微機創(chuàng)造了條件。1978年,Intel公司率先推出8086,為與原8位機兼容,又同時推出了準(zhǔn)16位的微處理器8088。它的內(nèi)部結(jié)構(gòu)是16位,但外部數(shù)據(jù)總線是8位,其指令系統(tǒng)與8086完全兼容。以8088芯片為核心的IBMPC及PC/XT等準(zhǔn)!6位微型計算機很快占領(lǐng)了市場。在此同時,Zilog及Motorola公司也相繼推出了同一級別的產(chǎn)品Z8000及MC68000等。16位微處理器比8位微處理器集成度提高了一個數(shù)量級,功能大大增強。主要表現(xiàn)在以下各個方面:△數(shù)據(jù)總線的位數(shù)由8位增加到16位,大幅度提高數(shù)據(jù)處理能力(舉例說明)?!鞯刂房偩€由16位增加到20位,擴大了尋址范圍?!鲿r鐘頻率達5?40MHz,基本指令執(zhí)行時間約0.15ロS。系統(tǒng)運算速度大大提高,同時內(nèi)部結(jié)構(gòu)也作了改進。采用“流水線”結(jié)構(gòu)(簡單說明),處理速度明顯加快。另外內(nèi)部通用寄存器增多,減少對存儲器訪問(說明),且大多數(shù)通用寄存器都可作累加器使用。△擴充了指令系統(tǒng),指令功能大大加強,尋址方式(說明)也較為豐富。由于指令系統(tǒng)指令數(shù)量多,復(fù)雜程度高,故這類計算機稱為復(fù)雜指令系統(tǒng)計算機CISC(ComplexInstructionSetComputer).△可處理多種數(shù)據(jù)類型。如二進制位、壓縮BCD碼、非壓縮BCD碼、字節(jié)、字、雙字、字串等(說明)?!髦袛啵ㄕf明)功能增強。△具有構(gòu)成多微處理器系統(tǒng)能力?!髋溆休^強的系統(tǒng)軟件。1982年,Intel公司又推出16位高級微處理器80286,它具有多任務(wù)系統(tǒng)所必需的任務(wù)轉(zhuǎn)換功能。同年Motorola公司也推出了同類型的MC6801〇。這兩種微處理器的數(shù)據(jù)總線雖仍是16位的,但地址總線增加到24位,使存儲器直接尋址能力達到16MB,在20世紀(jì)80年代中、后期及90年代初期,80286成為個人計算機的主流CPU。.第四代32位高檔微處理器1985年,Intel公司推出第四代微處理器80386,它是ー種與8086向上兼容的超級微處理器,具有32位數(shù)據(jù)線,32位地址線,存儲器直接尋址能力達4GB,其執(zhí)行速度達3?4MIPS。同時推出的還有Motorola公司的MC68020等產(chǎn)品。32位微處理器無論從結(jié)構(gòu)、功能、應(yīng)用范圍等各個方面看,可以說是小型機的微型化,已接近同時期小型機的水平。隨著大規(guī)模集成電路工藝水平的進ー步提高,1989年,Intel公司又推出了性能更高的32位微處理器80486,它在芯片上集成120萬個晶體管,是80386的4倍。80486時在微處理器80386的基礎(chǔ)上集成數(shù)字協(xié)處理器80387及8KB容量的高速緩沖存儲器而構(gòu)成的。它采用了RISC(ReductionInstructionSetComputer精簡指令系統(tǒng)計算機)技術(shù),與RAM進行高速數(shù)據(jù)交換的突發(fā)總線等先進技術(shù)。這些新技術(shù)的釆用,使80486在同等時鐘頻率下,處理速度要比80386快2到4倍。同期推出的產(chǎn)品還有Motorola公司的MC68030及其后繼產(chǎn)品MC68040等。.第五代32位高檔微處理器1993年,Intel公司又推出了新的32位微處理器Pentium(奔騰),它集成了330萬個晶體管,數(shù)據(jù)線64位,地址線36位,工作頻率為60/66MHZ,處理速度達110MIPS。1994年又推出了第二代Pentium(以P54c代稱),エ藝更先進,工作頻率達90/100MHz?在體系結(jié)構(gòu)上,Pentium在內(nèi)核中采用更先進的RISC技術(shù),它匯集了CISC和RISC技術(shù)的優(yōu)點。同時采用超標(biāo)量結(jié)構(gòu),擁有兩條“流水線”,使之每個時鐘周期內(nèi)最多可執(zhí)行兩條指令。同時內(nèi)置高性能的浮點運算部件及兩個8K字節(jié)的超高速的緩沖存儲器,使整個微處理器的性能大大提高。同時推出第五代微處理器的還有IBM、Apple和Motorola三家聯(lián)盟的PowerPC及AMD公司的K5等產(chǎn)品。.第六代Pentium微處理器1996年,Intel公司推出了PentiumPro,該微處理器采用了0.35um的エ藝,時鐘頻率為200MHz,運算速度達200MIPS。1998年到20XX年,Intel公司又先后推出了PentiumPro的改進型產(chǎn)品Pentiuml!和PentiumffloCPU的集成度已高達1千萬個晶體管,時鐘頻率達1GHz以上,其他公司類似產(chǎn)品還有AMD公司的K7等產(chǎn)品。近年來,市場上已推出PentiumW系列,其CPU集成度已達2千5百萬個晶體管,工作頻率達到2GHz。計算機中的數(shù)制日常生活中,人們慣于用十進制來計數(shù),但計算機只能識別由“O”和“1”構(gòu)成的二進制代碼(說明為什么),而用二進制表示的數(shù)又顯得冗長,為閱讀和書寫方便,往往采用十六進制數(shù)。為此,首先要掌握這三種數(shù)制及其之間的轉(zhuǎn)換關(guān)系。2.1常用計數(shù)制.十進制數(shù)1)十進制數(shù)中有0?9共十個數(shù)字符號。2)逢10進1(10為基數(shù))。3)各位數(shù)的“權(quán)”為10'。例:(3256.87)及=3X103+2X102+5X1O'+6X10°+8X10H+7X10-2=3256.87即:(D)io=Dn^XlO^+D^XlO"^ FDiXlO'+DoX10°+D-iX10*'+—+D^X10"=["101式中n表示小數(shù)點左邊的位數(shù)(自〇開始),m表示小數(shù)點右邊的位數(shù)(自1開始)。.二進制數(shù)1)二進制數(shù)中只有0、1兩個數(shù)字符號。2)逢2進1(2為基數(shù))。3)各位數(shù)的“權(quán)”為2’。例:(1010.11)2=lX23+0X22+lX21+0X2°+lX2'+lX2i!=10.75即:(B)2=R,-!X2n'1+Bn-2X2°-2+-+BiX21+BoX20+B-1X2'1+-+B-.X2"

ZB1.十六進制數(shù)1)十六進制數(shù)共有十六個數(shù)字符號〇?9及A?F。2)逢16進1。3)各位數(shù)的“權(quán)”為161.例:(2AE.4)1(=2X162+10X16*+14X160+4X16'*=586.25即:(H)io=Hn-iX16"-,+Hn-2X16'rt4 1-HiX16'4-HoX16°4-H-iX16'1+-+H-.X16-"£h,x16‘.其他進制數(shù)(略)需要指出的是,除了用基數(shù)作下標(biāo)來表示數(shù)的進制外,還可再數(shù)的后面加上字母B(Binary),H(Hexadecimal),D(Decimal)來分別表示二進制數(shù)、十六進制數(shù)和十進制數(shù),而十進制數(shù)后面的D往往可以省略。2各種數(shù)制之間的轉(zhuǎn)換由于人們習(xí)慣使用十進制數(shù),計算機只能識別二進制數(shù),而人們編程又多采用十六進制數(shù),因此必然會產(chǎn)生不同進位制之間的轉(zhuǎn)換問題。.非十進制數(shù)轉(zhuǎn)換為十進制數(shù)按“權(quán)”展開,例見P7例1-5。.十進制數(shù)轉(zhuǎn)換為非十進制數(shù)(1)十進制數(shù)轉(zhuǎn)換為二進制數(shù)整數(shù)部分與小數(shù)部分分別轉(zhuǎn)換。整數(shù)部分:“除2取余”。小數(shù)部分:“乘2取整”。例:將十進制數(shù)112.25轉(zhuǎn)換為二進制數(shù)。整數(shù)部分:00000022222小數(shù)部分:0.50.5從而得:(112.25)io=(1110000.01)2或?qū)懽?112.25=1110000.01B(2)十進制數(shù)轉(zhuǎn)換為十六進制數(shù)同樣整數(shù)部分與小數(shù)部分分別轉(zhuǎn)換。整數(shù)部分:“除16取余”。小數(shù)部分:'’乘16取整”。例:將十進制數(shù)301.6875轉(zhuǎn)換為十六進制數(shù)。整數(shù)部分:16|301TOC\o"1-5"\h\z1618 D a16-1 20 1小數(shù)部分:0.6875X164.1250+6.8751170000 B從而得到(301.6875)10=(12D.B)ie或?qū)懽?301.6875=12D.BH需要指出的是,如要將十進制數(shù)轉(zhuǎn)換為二進制數(shù),為避免除2次數(shù)過多出現(xiàn)差錯,往往先將之變?yōu)槭M制數(shù),后再變?yōu)槎M制數(shù),而后者的轉(zhuǎn)換是非常方便的。3.二進制數(shù)與十六進制數(shù)之間的轉(zhuǎn)換(1)二進制數(shù)轉(zhuǎn)換為十六進制數(shù)“四位一撒”法:例:將二進制數(shù)110100110.101101B轉(zhuǎn)換為十六進制數(shù)1,1010,0110.1011,01=1A6.B4H(注意:首尾要補零)(2)十六進制數(shù)轉(zhuǎn)換為二進制數(shù)“以四代ー”法:例:將十六進制數(shù)2A8F.6DH轉(zhuǎn)換為二進制數(shù)2A8F.6DH=10,1010,1000,1111.0110,1101B1.3無符號二進制數(shù)的算術(shù)運算和邏輯運算1.3.1二進制數(shù)的算術(shù)運算(略)3.2無符號數(shù)的表示范圍.無符號二進制數(shù)的表示范圍8位二進制數(shù)的表示范圍為OOH-FFH(0-255),16位二進制數(shù)的表示范圍為0000HFFFFH(0-65535),ー個n位的無符號數(shù),它可表示數(shù)的范圍為〇?2〇-1。如運算結(jié)果超出數(shù)的表示范圍,將產(chǎn)生溢出,結(jié)果將出錯。例見P.11例1-13。.無符號二進制數(shù)的溢出判斷兩個無符號數(shù)相加(或相減),如最高位有進位(或錯位),則產(chǎn)生溢出。這在計算機運算中很容易以c標(biāo)志來進行判斷(以后展開講)。3.3二進制數(shù)的邏輯運算邏輯運算包括“與‘’、"或”、“非”及“異或”四種運算,與算術(shù)運算不同的是它對二進制數(shù)按位進行操作,因之不存在進位(或借位)問題。.“與”運算“與”運算的規(guī)則為“見〇為〇,見1不變”。例見P.12例1-14?.“或”運算“或”運算的規(guī)則為“見〇不變,見1為1,”。例見P.12例1-15?.“非”運算“非”運算的規(guī)則為按位取反。例見P.12例1-16?.“異或”運算“異或”運算的規(guī)則為“同則為〇,異則為1"。例見P.12例1-17。1.3.4基本邏輯門及常用邏輯部件(略)帶符號二進制數(shù)的表示及運算計算機只能識別“〇”和“1”這兩個代碼,因之,在計算機中,數(shù)的正負號也只能由“〇”和“1”來表示。通常規(guī)定,一個有符號數(shù)的最高位代表符號,該位為〇代表正,該位為1代表負。習(xí)慣上把符號數(shù)值化了的數(shù),稱為機器數(shù),而把其原來的數(shù)值稱為真值。帶符號數(shù)的表示方法在計算機中,帶符號的數(shù)有三種表示方法,即原碼、補碼和反碼。不管是哪ー種表示方法,其最高位均為符號位,用“0”表示正數(shù),用“1”表示負數(shù)。下面以8位二進制數(shù)位例加以說明。.原碼ー個帶符號數(shù)的原碼記作[X]原。在原碼表示法中,數(shù)值部分為該數(shù)的絕對值,以符號位表示該數(shù)的正負。例見P.16例1-19〇需要指出的是在原碼表示法中,〇的原碼有兩種不同的表示形式,即+0和-0。[+0]?=00000000[ー〇]*=10000000原碼表示法的優(yōu)點是簡單,易于理解。它的缺點是不便于運算(舉例說明)。.反碼ー個帶符號數(shù)的反碼記作[X]反。在反碼表示法中,對于正數(shù),數(shù)值部分即為該數(shù)的原值;而對于負數(shù),其數(shù)值部分為該數(shù)的絕對值各位取反。同樣,以符號位表示該數(shù)的正負。例見P.17例!-20.在反碼表示法中,〇的反碼也有兩種表示形式:[+0]反=00000000[ー〇]反=11111111由上可知,由于在原碼和反碼表示法中,數(shù)值0的表示法不是唯一的,必然對運算帶來不利(缺乏唯一性).為此,引入補碼的概念。.補碼ー個帶符號數(shù)的補碼記作[X]補。在補碼表示法中,對于正數(shù),其數(shù)值部分仍為該數(shù)的原值;對于負數(shù),其數(shù)值部分為該數(shù)的絕對值各位取反再加1?也仍以符號位表示該數(shù)的正負。(即[X]補=[X]反+1)。例見P.18例1-21?特別需要指出的是,與原碼和反碼不同,在補碼表示法中,〇的表示法是唯一的。[+0]樸=[+0]?=[+0]反=00000000[ー〇]補=[ー〇]反+1=11111111+1=00000000二[+0]樸=[-O]fr=00000000另需指出的是,對于機器數(shù),10000000在補碼表示法中定義為ー128(同樣,對于16位的機器數(shù)1000000000000000,在補碼表示法中定義為ー32768)。真值與補碼之間的轉(zhuǎn)換要把一個用補碼表示的二進制數(shù)轉(zhuǎn)換為帶符號的二進制數(shù),可分兩種情況來處理。如該數(shù)為正數(shù),則除符號位外,其余7位即是此數(shù)的二進制數(shù)值,轉(zhuǎn)換很為簡單。例:已知[X]樸=00101110,求X的真值。解:X=00101110=+46如該數(shù)為負數(shù),則可將該數(shù)補碼數(shù)值部分再求一次補,即可得到該數(shù)絕對值。例:已知[X]樸=11010010,求X的真值。|x|=l101001(+1=00101110...X=-46為什么要引進補碼的概念呢?這是因為引進補碼后,在計算機運算時,可將減法運算演變?yōu)榧臃ㄟ\算。例:求Y=99-58=99+(-58)=41[99]?=01100011[-58]樸=11000110 00111010(58的二進制代碼)求反:11000101求補:1100011001100011+11000110_足00101001即為[41]由于計算機中求反很易實現(xiàn),故上述運算過程在計算機上較簡單。而眾所周知,對于二進制數(shù)的算術(shù)運算,乘法運算可轉(zhuǎn)換為左移和加法運算,而除法運算可轉(zhuǎn)換為右移和減法運算。由此得到,在計算機中,加、減、乘、除,均可由加法和移位兩種操作得以實現(xiàn),這就是引入補碼的最終目的!補碼的運算補碼運算具有如下規(guī)律:[X+Y]樸=[X]樸+[丫]林[X-Y]?=[X]?-[Y]?[X-Y]?=[X]?+[-Y]#這里[-y]樸稱為對補碼數(shù)m補的孌ネト。變補規(guī)則為對m樸的各位(包括字符位)按位取反加1,結(jié)果即為[-Yル(當(dāng)然也可直接對ー丫求補碼,結(jié)果相同)。例見P.19例1-24及例1-25?需要強調(diào)的是上述三個公式的成立是有條件的。其條件是:式中X、丫、ー丫、X+Y及X一Y都必須在補碼的表示范圍內(nèi),倘若超出補碼的表示范圍,等式便不再成立,詳見下節(jié)。帶符號數(shù)運算時的溢出問題.帶符號數(shù)的表示范圍8位二進制數(shù),原碼、反碼和補碼的表示范圍△原碼11111111~01111111(-127~+127)△反碼!0000000-01111111(-127-+127)△補碼!0000000—01111111(-128?+127)(數(shù)的狀態(tài)和數(shù)的個數(shù)對應(yīng))當(dāng)運算結(jié)果超出上述范圍時就會產(chǎn)生溢出。16位二進制數(shù),原碼、反碼和補碼的表示范圍△原碼FFFFH-7FFFH(-32767-4-32767)△反碼8000H—7FFFH(-32767—+32767)△補碼8000H-7FFFH(-32768-4-32767)同樣,當(dāng)運算結(jié)果超出上述范圍時就會產(chǎn)生溢出。.帶符號數(shù)運算時的溢出判斷帶符號數(shù)運算時的溢出判斷的規(guī)則是:在運算中,當(dāng)最髙位和次髙位同有進位或同無進位,則無溢出。如兩者ー個有進位,ー個無進位,則有溢出。例見P.21例1-26、例1-27及P22例1-28、!-29?二進制編碼計算機除處理數(shù)值領(lǐng)域的問題外,還被大量用于處理非數(shù)值領(lǐng)域的問題,這要求計算機能識別文字、字符和各種符號(例見P.22)。而所有字符符號及十進制數(shù)都必須轉(zhuǎn)換為ニ進制代碼才能為計算機所識別。1.二進制編碼的十進制數(shù)(BCD碼數(shù))用二進制編碼來表示十進制簡稱BCD碼(BinaryCodedDecimal)〇BCD碼的編碼方式有多種,最常用的是8421碼。842I碼BCD碼與二進制碼的對應(yīng)關(guān)系如P.23表1-9所示。其特點為:①用4位二進制數(shù)表示1位十進制數(shù)。②BCD碼是十進制數(shù),逢10進1。BCD碼與十進制數(shù)、二進制數(shù)的轉(zhuǎn)換。十進制數(shù)用BCD碼表示十分簡單,只要對十進制數(shù)每位按表!-9進行轉(zhuǎn)換即可。例見P.23例!-30o顯而易見,如要將BCD碼轉(zhuǎn)換為其對應(yīng)的十進制數(shù)也十分簡單,只要將每4位二進制代碼變成其對應(yīng)的十進制數(shù)即可。BCD碼與二進制數(shù)之間的變化要稍麻煩些,一般要以十進制數(shù)為橋梁進行轉(zhuǎn)換。例見P23例1-31及例1-32。為避免與二進制數(shù)混淆,BCD碼書寫時通常將每位BCD碼(4位二進制碼)寫成一組,中間留一空格,且加下標(biāo)BCD。(3)計算機中BCD碼的存儲方式在存儲單元為8位的情況下,BCD碼有兩種表示方法。一種是壓縮BCD碼表示方法,例10010010表示十進制數(shù)92(即ー個字節(jié)表示2個十進制數(shù)),另一種表示方法為非壓縮BCD碼(也稱擴展BCD碼),同樣是十進制數(shù)92,用非壓縮BCD碼就表示為:0000100100000010,2.字符的編碼為能讓計算機識別,各種字符也必須用特定的二進制代碼編寫,目前在計算機中普遍采用的是ASCH碼(AmericanStandardCodeforInformationInterchange美國標(biāo)準(zhǔn)信息交換碼)。ASCH字符編碼表見附錄A,它是用7位二進制代碼來表示128個字符和符號。一般規(guī)定一個ASCII碼存放在字節(jié)的低7位,字節(jié)的最高位在通信中常用作奇偶校驗位(簡單說明什么是奇偶校驗)。6常用術(shù)語解釋數(shù)據(jù)單位.位(bit)、兆位(Mb)、千兆位(Gb)和兆兆位(Tb)位是計算機處理的最小數(shù)據(jù)單位,它只有“〇”、"1"兩種狀態(tài)。Bit通??s寫為b。Mb(Megabit)代表1024X1024位,也即220位。Gb(Gigabit)代表1024Mb,也即230位。Tb(Terabit)代表1024Gb,也即2”位。.字節(jié)(byte)、KB、MB、GB和TB!個字節(jié)包含8個二進制位,Byte通??s寫為B。字節(jié)是計算機中存儲容量的基本單位。在計算機中,1K為1024,即210,所以1KB=1024Byte?以此類推,1MB=1024KB,1GB=1024MB,1TB=1024GB,.字(word)字在不同場合有不同意義。它是數(shù)據(jù)總線的寬度。一個字代表兩個字節(jié),在8086系列的機型中為16位。計算機通信速率單位(略,待到有關(guān)章節(jié)再講)6.3兼容性△系統(tǒng)兼容:若在ー個系統(tǒng)上開發(fā)的硬件和軟件能在另一個系統(tǒng)上成功運行,則稱兩個系統(tǒng)兼容。A向上兼容:若兼容性是舊系統(tǒng)到新系統(tǒng)的單向發(fā)展,則稱為向上兼容(舉例說明)。第2章微型計算機基礎(chǔ)2.1微型計算機基本結(jié)構(gòu)微型計算機是計算機的ー種。它體積小,重量輕,一般供個人使用。所以通常稱個人計算機(PersonalComputerPC)。微型計算機由硬件系統(tǒng)和軟件系統(tǒng)兩大部分組成,稱之為微型計算機系統(tǒng),其組成如P.27圖2T所示(作解釋)。2.1微型計算機的概念結(jié)構(gòu)各種微型計算機從概念結(jié)構(gòu)上來說都由運算器、控制器、存儲器和輸入輸出設(shè)備等部分組成。這些組成部分往往合并和分解為若干個功能模塊,分別由不同的部件予以實現(xiàn)。從大的功能部件來看,微型計算機的硬件主要由CPU、存儲器、I/O接口和I/O設(shè)備組成,各部分之間通過數(shù)據(jù)總線(databusDB)、地址總線(addressbusAB)、控制總線(controlbusCB)連接在ー起。DB、AB、CB這三總線通常為系統(tǒng)總線,它是計算機各部件間傳送信息的公共通道。這種總線結(jié)構(gòu)形式的優(yōu)點是設(shè)計簡單、靈活性強、易于擴展、便于故障診斷和維修。故所有微型計算機系統(tǒng)都采用了總線結(jié)構(gòu)形式。P.28圖2-2為微型計算機的結(jié)構(gòu)框圖。.硬件系統(tǒng)1)微處理器(或稱中央處理單元,CPU)CPU是微型計算機的核心部件,是整個系統(tǒng)的運算和控制中心。微機性能、檔次不同主要取決于CPU。各種CPU均有其特定的指令系統(tǒng)。然而無論哪種CPU,其內(nèi)部組成總是大同小異的,一般都有運算器、控制器和寄存器三個主要部分。其典型結(jié)構(gòu)如P.29圖2-3所示,下面分別對各部分加以說明:A運算器(又稱算術(shù)邏輯單元ArithmeticandLogicUnitALU):它是以加法器為基礎(chǔ),輔之以移位寄存器及相應(yīng)的控制邏輯組合而成的電路,在控制信號作用下,完成各種算術(shù)運算和邏輯運算。A控制器:一般由指令寄存器(InstructionRegisterIR)和指令譯碼器(InstructionDecoderID)和控制電路組成,是CPU的指揮控制中心。它從存儲器中依次取出程序的各條指令,并根據(jù)指令要求向微機各部分發(fā)出相應(yīng)控制信號,使各部分協(xié)調(diào)エ作?!骷拇嫫鹘M:它是CPU內(nèi)部的若干個存儲單元。分為專用寄存器和通用寄存器兩種。由于有這些寄存器,CPU在運算時出現(xiàn)中間結(jié)果,可哲放在寄存器中,以避免對存儲器的頻繁訪問,而縮短指令執(zhí)行時間,給編程帶來方便。2)存儲器(Memory)這里所指的存儲器是指系統(tǒng)的內(nèi)存或稱主存,是微機的存儲和記憶部件,其用途是存放數(shù)據(jù)和程序。微機的內(nèi)存一般都由半導(dǎo)體存儲器構(gòu)成。(1)內(nèi)存單元的地址和內(nèi)容內(nèi)存由許多單元組成,每個單元存放一組二進制數(shù)(例8位二進制數(shù)),稱為ー個字節(jié)。一臺微機中內(nèi)存單元的總量稱為該機的內(nèi)存容量,單位為字節(jié)。為區(qū)別個不同的內(nèi)存單元,往往要對內(nèi)存單元進行編址。如8086CPU的內(nèi)存編址從00000H開始,一直到FFFFFH為止,共220個存儲單元。每個存儲單元有唯一的地址。CPU如要訪問其內(nèi)存單元,可通過指定該內(nèi)存地址予以實現(xiàn)。內(nèi)存單元中存放的信息稱為內(nèi)存單元的內(nèi)容,它與內(nèi)存地址在形式上都是一個二進制數(shù),但在本質(zhì)是兩個完全不同的概念。詳見P.29圖2-4說明。(2)內(nèi)存的操作CPU對內(nèi)存單元的操作有讀、寫兩種。P.30圖2-5的(a),(b)兩圖分別描述了CPU存儲器的讀、寫操作過程(作解釋)。需要指出的是讀操作不會改變被讀存儲器的內(nèi)容。這一特點稱為非破壞性讀出(nodestructivereadout)?反之,寫操作將破壞該存儲器的內(nèi)容。上述類型存儲器即可讀出也可寫入信息,因此這種存儲器稱為讀寫存儲器,也稱為隨機存取存儲器。(3)內(nèi)存的分類按工作方式不同,內(nèi)存可分為兩大類,即隨機存取存儲器(randomaccessmemoryRAM)和只讀存儲器(readonlymemoryROM)〇ROM中的信息只能被CPU讀取,而不能由CPU任意寫入。但ROM中的信息不象RAM那樣在機子斷電后會丟失,所以ROM往往被用來存放程序,或各種常數(shù)及表格等。ROM內(nèi)容的寫入要使用專用設(shè)備。有關(guān)存儲器的詳細內(nèi)容將在第五章中具體介紹。3)輸入輸出設(shè)備和輸入輸出接口。輸入輸出設(shè)備(簡稱I/O設(shè)備或外設(shè))是微型計算機重要的組成部分。常用的輸入設(shè)備有鍵盤、鼠標(biāo)、掃描儀等。常用的輸出設(shè)備有顯示器、打印機、繪圖儀等。而磁帶、磁盤等則既是輸入設(shè)備,又是輸出設(shè)備。由于I/O設(shè)備種類繁多,結(jié)構(gòu)原理各不相同。與CPU相比,外設(shè)的速度較低,且數(shù)據(jù)格式和邏輯電平一般也與計算機不能直接兼容。因此,一般來說,微機與I/O設(shè)備之間的連接與信息交換不能直接進行,而必須通過ー個中間部件作橋梁,該部件稱作輸入輸出接ロ(簡稱I/O接口),有時又稱為I/O適配器(I/Oadapter).4)總線(bus)總線是由一組導(dǎo)線和相關(guān)電路組成的,是各種公共信號線的集合,用作微機各部分間轉(zhuǎn)送信息所共同使用的“高速信息公路”。在CPU、存儲器和I/O接口之間傳輸信息的總線稱為“系統(tǒng)總線”,它包括數(shù)據(jù)總線、地址總線和控制總線。(1)數(shù)據(jù)總線(databusDB)數(shù)據(jù)總線用來傳送數(shù)據(jù)信息,是雙向總線。CPU可通過DB從內(nèi)存或I/O設(shè)備輸入數(shù)據(jù),也可通過DB向內(nèi)存或I/O設(shè)備輸出數(shù)據(jù)。(2)地址總線(addressbusAB)地址總線用于傳送CPU發(fā)出的地址信息,是單向總線。傳送地址信息的目的為指明與CPU交換信息的內(nèi)存或I/O設(shè)備的地址。(3)控制總線(controlbusCB)控制總線用來傳送控制信號、時序信息和狀態(tài)信息等。其中有的是CPU向內(nèi)存或外設(shè)發(fā)出信息,也有的是內(nèi)存或外設(shè)向CPU發(fā)出的消息。因此,CB中每根線的方向是單向的,但CB作為ー個整體來講是雙向的。.軟件系統(tǒng)軟件包括系統(tǒng)軟件和應(yīng)用軟件兩大類。應(yīng)用軟件是用戶解決各類實際問題而編制的程序(舉例)。系統(tǒng)軟件包括操作系統(tǒng)(OS)和系統(tǒng)實用程序。操作系統(tǒng)用于管理計算機的硬件與軟件資源,進行任務(wù)調(diào)度,提供文件管理系統(tǒng)等,還包括各種外設(shè)的驅(qū)動程序。系統(tǒng)實用程序包括各種高級語言的翻譯/編譯程序、匯編程序、數(shù)據(jù)庫系統(tǒng)、文本編輯程序、調(diào)試程序,以及許多系統(tǒng)工具程序等。計算機中程序設(shè)計語言分為機器語言、匯編語言和高級語言三種。機器語言程序是計算機能識別和直接執(zhí)行的二進制代碼形式的程序。匯編語言程序是用助記符語言表示的程序,計算機要通過“匯編程序”的翻譯才能識別。而高級語言是不依賴于具體機型的程序設(shè)計語言(舉例),由高級語言編寫的程序需經(jīng)過編譯程序和解釋程序的翻譯才能執(zhí)行。文本編輯程序是供輸入或修改文本用的程序。另外在編寫程序時,往往還需要幾種系統(tǒng)程序,如系統(tǒng)程序庫、連接程序和裝入程序等。一般操作系統(tǒng)都有一個通用的系統(tǒng)程序庫,程序庫中的子程序可供調(diào)用(以后要講到)。把待執(zhí)行的程序與程序庫其他已翻譯好的程序連接起來成為ー個整體的準(zhǔn)備程序稱為連接程序。另一種準(zhǔn)備程序是把執(zhí)行的程序加載到內(nèi)存中,稱為裝入程序。上面簡單地介紹了計算機的硬件和軟件,需要強調(diào)的是硬件系統(tǒng)和軟件系統(tǒng)是相輔相成的,共同構(gòu)成微型計算機系統(tǒng),兩者是缺ー不可的?,F(xiàn)代計算機軟硬件發(fā)展的趨勢是兩者統(tǒng)一融合,相互促進,使計算機技術(shù)不斷發(fā)展。2微型計算機的工作過程微型計算機究竟是如何進行工作的,這是學(xué)習(xí)微機原理必須探討的ー個重要問題。.存儲程序計算機目前,一般的微型計算機都為存儲程序計算機。所謂“存儲程序”,是指把處理問題的步驟和所需的數(shù)據(jù)事先送入存儲器保存。運行時,由計算機的控制部件逐條取出并執(zhí)行,從而使計算機能自動連續(xù)地進行處理?!按鎯Τ绦颉钡脑O(shè)計思想是計算機發(fā)展史上的ー個里程碑。(1)程序與指令所謂指令是控制計算機進行各種操作和運算的命令。所謂程序是計算機為解決某一具體問題所編制的一系列指令的有序集合(見P.33圖2-6)〇機器指令必須滿足兩個條件:一是指令的形式必須是計算機能夠理解的(由此,指令也必須用二進制編碼形式表示)。二是指令規(guī)定的操作必須是計算機能執(zhí)行的(每條指令都有相應(yīng)的電子線路來實現(xiàn))。每臺計算機的指令都有自己的格式和具體含義,但他們都有一個共同點,即指令必須指明要進行何種操作(操作碼)以及操作的對象(操作數(shù))。每臺計算機都有其特定的指令系統(tǒng),指令系統(tǒng)的優(yōu)勢決定了計算機的性能。一臺計算機的指令種類是有限的,但在人的精心設(shè)計下,可實現(xiàn)信息處理的任務(wù)可以無限多,計算機能忠實地按照程序,有條不紊地執(zhí)行規(guī)定的操作,完成預(yù)定的任務(wù)。(2)存儲程序工作原理多年來,盡管計算機的體系結(jié)構(gòu)發(fā)生了重大變化,性能不斷提高,但存儲程序控制始終是現(xiàn)代計算機的結(jié)構(gòu)基礎(chǔ)?!按鎯Τ绦颉笔侵赴殉绦蚝蛿?shù)據(jù)送到具有記憶功能的存儲器中保存起來,計算機工作時,只要給出程序中第一條指令的地址,控制器便根據(jù)存儲器中的指令周而復(fù)始地取出指令、分析指令、執(zhí)行指令,直至指令全部執(zhí)行完畢為止。.微型計算機的工作過程微型計算機的工作過程實際上就是逐條執(zhí)行指令序列的過程。也就是不斷地取指令和執(zhí)行指令的過程,見P.34圖2-7(展開解釋)指令通常包括操作碼(operationcode)和操作數(shù)(operand)兩部分。操作碼表明計算機進行何種操作,而操作數(shù)指明操作對象。它可能給出操作的數(shù)的本身或其所在的地址,指令根據(jù)操作或其操作對象不同而有單字節(jié)、雙字節(jié)或三字節(jié)乃至四字節(jié)之分,因此,在執(zhí)行一條指令時,可能要處理1-4個不等字節(jié)數(shù)的信息代碼。.模擬機中存儲程序工作的例子以計算機完成5+8=?這ー個簡單的任務(wù)為例,說明程序編制及微機內(nèi)部執(zhí)行該程序各條指令的具體操作過程(詳細介紹P.36-P.39四個操作示意圖及執(zhí)行三條指令的過程)。2.28088/8086微處理器本節(jié)詳細介紹8086微處理器系列中的主導(dǎo)產(chǎn)品8086和8088CPU的硬件結(jié)構(gòu)。由于這兩種CPU的差異很小,本節(jié)將以8086為主進行介紹(在沒有特別指明時所介紹內(nèi)容對兩者均適用)。2.2.18088/8086微處理器概述8086和8088均屬第三代微處理器。8088存儲器和外設(shè)進行數(shù)據(jù)傳輸?shù)耐獠繑?shù)據(jù)總線寬度為8位,而8086數(shù)據(jù)總線的寬度為16位,除此而外,兩者幾乎無差別。8086/8088都有40個腳的外部引線,均在單ー5V電源下工作。8086/8088在最小配置下僅需4個外圍芯片即可構(gòu)成一個小型的應(yīng)用系統(tǒng),如P.40圖2T3所示(作解釋)。8086/8088具有最小和最大兩種工作模式,將在以后分別介紹。2.2.28088/8086的指令流水線在程序執(zhí)行過程中,CPU有規(guī)律地重復(fù)以下過程:A從存儲器取出下一條指令;△如指令需要,從存儲器讀取數(shù)據(jù)(操作數(shù));A執(zhí)行指令;△如指令需要,將結(jié)果寫入存儲器。在8088/8086未問世前,微處理器用串行方式完成上述過程。從8088/8086開始,CPU采用一種新的結(jié)構(gòu)來完成這些工作。8088/8086將上述步驟分配給兩個獨立的部件,執(zhí)行單元(executionunitEU)負責(zé)執(zhí)行指令;而總線接口單元(businterfaceunitBIU)負責(zé)取指令、取操作數(shù)和寫結(jié)果。當(dāng)這兩個單元獨立進行工作時,大多數(shù)情況下取指操作和執(zhí)行指令操作可同時并行進行,從而加快了程序的運行速度。P.41圖2-14將并行操作和以前的串行操作方式進行了比較。顯示出流水線操作的優(yōu)越性。由P.41圖2-14可知,指令隊列操作過程為:EU不斷地從指令隊列中取出指令并執(zhí)行。當(dāng)EU從指令隊列中取走指令,指令隊列出現(xiàn)空字節(jié)時,BIU即自動執(zhí)行ー次取指令周期,從內(nèi)存中取出后續(xù)指令代碼放入隊列中(到遇到跳轉(zhuǎn)指令時,BIU使指令隊列復(fù)位,從新的內(nèi)存地址取指),指令隊列的存在使得EU和BIU并行工作,而減少了為取指而等待的時間,提髙了CPU的執(zhí)行效率和運行速度,同時,也減低了對存儲器存取速度的要求。需要指出的是8088/8086中指令隊列的個數(shù)和級數(shù)都很少,遠遠不能與現(xiàn)在各種新型的CPU(如Pentium)相提并論,但它首先在微處理器中采用中流水線結(jié)構(gòu),從而使8088/8086成為CPU發(fā)展史上一個里程碑。2.38088/8086的功能結(jié)構(gòu)(原2.2.38088外部引腳及其功能放在本節(jié)后講)8088/8086的結(jié)構(gòu)8088與8086的結(jié)構(gòu)極為相似,都是由執(zhí)行單元EU和總線接口單元BIU兩大部分組成,其內(nèi)部結(jié)構(gòu)框圖如圖P.46圖2-16所示。執(zhí)行單元EU負責(zé)執(zhí)行指令,它由算術(shù)邏輯單元(運算器)ALU、通用寄存器、標(biāo)志寄存器FLAGS和EU控制電路組成。工作時,EU不斷地從指令隊列取出指令代碼,后對其譯碼,產(chǎn)生完成指令所需要的各種控制信息。數(shù)據(jù)運算在ALU中進行,運算結(jié)果的特征保留在標(biāo)志寄存器FLAGS中??偩€接口單元BIU負責(zé)CPU與存儲器及I/O接口之間的信息傳送。它由段寄存器、指令指針寄存器、指令隊列、地址加法器及總線控制邏輯組成。8088的隊列長度為4字節(jié),8086的隊列長度為6個字節(jié)。當(dāng)EU從指令隊列中取走指令,指令隊列出現(xiàn)空字節(jié)時,BIU就自動執(zhí)行ー次取指周期,從內(nèi)存中取出后續(xù)指令放入隊列中。當(dāng)EU需要數(shù)據(jù)時,BIU據(jù)EU給出的地址,從指定的內(nèi)存單元或外設(shè)中取數(shù)據(jù)供EU使用。當(dāng)運算結(jié)束時,BIU將運算結(jié)果送入指定的內(nèi)存單元或外設(shè)。當(dāng)指令隊列空時,EU就等待,直到有指令為止。若BIU正在取指時,EU發(fā)出訪問總線的請求,則必須等BIU取指完畢后,該請求才能響應(yīng)。當(dāng)遇到跳轉(zhuǎn)指令時,BIU使指令隊列復(fù)位,從新的地址取指,并由EU取執(zhí)行。指令隊列的存在,使EU和BIU并行工作,從而提髙CPU的工作效率,加快了整機的運行速度。BIU中的地址加法器用來產(chǎn)生20位的物理地址,由于8086/8088的寄存器都是!6位的(見下說明)無法裝載20位的物理地址。為解決此矛盾,8086/8088采用了將地址空間分段的方法,即將22O(1MB)的地址空間分成若干個64KB的段,然后用段基址加上段內(nèi)偏移地址的方法來訪問地址為20位的物理存儲器。具體方法如P.47圖2-17所示。8086/8088規(guī)定段的起始地址最低四位總是0,即XXXXOH,這樣每個段的基地址只需用16位便可表示(即XXXX0H中的XXXXH),也即段基址實際上是段起始地址的髙16位,由于段基址的這ー特點,因此將段基址左移4位后和段內(nèi)偏移量(16位)相加,即可獲得物理地址。8088/8086的內(nèi)部寄存器8088/8086內(nèi)部有14個16位寄存器。按其功能分為三大類:第一類是通用寄存器(8個),第二類是段寄存器(4個),第三類是控制寄存器(2個),具體見P.47圖2-18。(1)通用寄存器通用寄存器包括數(shù)據(jù)寄存器、地址寄存器和變址寄存器。①數(shù)據(jù)寄存器AX、BX、CX、DX數(shù)據(jù)寄存器一般用于存放參與運算的數(shù)據(jù)或運算的結(jié)果。每個數(shù)據(jù)寄存器都是16位寄存器,但又可將髙、低8位分別作為兩個獨立的8位寄存器使用。其髙8位記作AH、BH、CH、DH,低8位記作AL、BL、CL、DL,這種靈活的使用方法給編程帶來方便,使之既可處理16位數(shù)據(jù),也能處理8位數(shù)據(jù)。數(shù)據(jù)寄存器除作為通用寄存器使用外,還有其各自的習(xí)慣用法:AX(accumulator)為累加器。是最常用的寄存器,用于存放算術(shù)邏輯運算中的操作數(shù)。另外,所有的I/O指令都通過累加器與外設(shè)接口之間傳送信息。BX(base)為基址寄存器。常用來存放訪問內(nèi)存時的基地址。CX(count)為計數(shù)寄存器。在循環(huán)和串操作專用做計數(shù)器。DX(data)為數(shù)據(jù)寄存器。在寄存器間接尋址的I/O指令中存放I/O端口地址。另外,在做雙字長乘除法運算時,DX與AX配合,存放ー個雙字長數(shù)(32位),其中DX存放髙16位數(shù)據(jù),AX存放低16位數(shù)據(jù)。②地址指針寄存器SP、BPSP(stackpointer)為堆棧指針寄存器。它在堆棧操作中存放棧頂偏移地址,永遠指向堆棧的棧頂。BP(basepointer)為基址指針寄存器。一般也常用來存放訪問內(nèi)存時的基地址。但要注意BP是和SS段寄存器配對使用的(而BX通常是和DS段寄存器配對使用的)。作為通用寄存器,SP和BP也可存放數(shù)據(jù),但更經(jīng)常地用于存放內(nèi)存單元的偏移地址(兩者的默認段寄存器都是SS)。③變址寄存器SI、DISI(sourceindex)為源變址寄存器,DI(destinationindex)為目標(biāo)變址寄存器,主要在變址尋址方式中作為索引指針。(2)段寄存器CS、SS、DS、ESCS(codesegment)為代碼段寄存器,SS(stacksegment)為堆棧段寄存器,DS(datasegment)為數(shù)據(jù)段寄存器,ES(extrasegment)為附加數(shù)據(jù)段寄存器。段寄存器用于存放段基址,即段起始地址的髙16位。(3)控制寄存器IP,FLAGSIP(instructionpointer)為指令指針寄存器,用以存放指令的偏移地址。CPU取指總以CS內(nèi)容為段基址,以!P內(nèi)容為段內(nèi)偏移地址。當(dāng)CPU取走ー個指令代碼后,IP內(nèi)容自動加1,指向指令代碼的下ー個字節(jié)。用戶程序不能直接訪問IP。FLAGS為標(biāo)志寄存器或程序狀態(tài)字(programstatuswordPSW)。它是16位寄存器,但只使用了其中9位。這9位包括6個狀態(tài)標(biāo)志,如P.46圖2-19所示。狀態(tài)標(biāo)志記錄了算術(shù)和邏輯運算結(jié)果的ー些特征,具體如下:△CF(cornyflag)進位標(biāo)志位。當(dāng)進行加(減)法運算時,如最髙位有進(借)位,貝!ICF=1,否則CF=〇?!鱌F(parityflag)奇偶標(biāo)志位。當(dāng)算術(shù)或邏輯運算結(jié)果中,低8住中“1”的個數(shù)為偶數(shù)時,PF=1,為奇數(shù)時,PF=0.△AF(auxiliaryflag)輔助進位標(biāo)志位。在加(減)法操作中,由低半字節(jié)向髙半字節(jié)進位(或借位)發(fā)生時,AF=1,否則AF=〇。該標(biāo)志通常用于對BCD碼算術(shù)運算的結(jié)果進行調(diào)整(詳見3.3.2)。△ZF(zeroflag)零標(biāo)志位。當(dāng)運算結(jié)果為〇時,ZF=1,否則ZF=〇〇△SF(signflag)符號標(biāo)志位。當(dāng)運算結(jié)果的最髙位為1時,SF=1,否則SF=0。AOF(overflowflag)溢出標(biāo)志位。當(dāng)算術(shù)運算結(jié)果超出了帶符號數(shù)的范圍,即產(chǎn)生溢出時,OF=1,否則OF=0?注意,8位帶符號數(shù)的范圍是ー128?+127,16位帶符號數(shù)的范圍是ー32768?+32767。需要強調(diào)的是,不同指令執(zhí)行結(jié)果對狀態(tài)標(biāo)志位的影響是不相同的,具體將在指令系統(tǒng)中作介紹。控制標(biāo)志位用于設(shè)置控制條件??刂茦?biāo)志一旦被設(shè)置后,便對其后的操作產(chǎn)生控制作用。具體如下:△TF(trapflag)跟蹤標(biāo)志位(也稱陷阱標(biāo)志位)。當(dāng)TF=1時,使CPU處于單步執(zhí)行指令的工作方式。這種方式便于對程序進行調(diào)試。每執(zhí)行一條指令后,自動產(chǎn)生一次單步中斷,從而使用戶能逐條地檢査程序執(zhí)行的結(jié)果?!鱅F(interrupt-enableflag)中斷允許標(biāo)志位。當(dāng)IF=1時,CPU能夠響應(yīng)外部的可屏蔽中斷;當(dāng)IF=0時,則不響應(yīng)外部可屏蔽中斷請求。但此標(biāo)志對外部非屏蔽中斷請求,或內(nèi)部產(chǎn)生的中斷不起作用。8086/8088有兩條指令ST!和CLI專門用于設(shè)置和消除IF標(biāo)志?!鱀F(directionflag)方向標(biāo)志位。DF=1,使串操作按地址減1方式進行,而DF=0,使串操作按地址加1方式進行。2.2.48088的外部引腳及其功能8088和8086CPU都是具有40個引腳的集成電路芯片,采用雙列直插式封裝。P.42圖2-15是8088的引腳圖,8086與之基本相同。8088的許多引腳具有雙重定義和功能,采用分時復(fù)用方式(解釋)工作,即在不同的時刻,這些引腳上的信號是不同的。8088有最大和最小兩種工作模式,通過在MN/mx輸入引腳上加上不同的電壓來進行選擇。當(dāng)MN/加=1時,8088工作在最小模式。此時,所構(gòu)成的微機中只包括一個微處理器8088,系統(tǒng)總線由8088的引腳直接引出生成,系統(tǒng)所用芯片最少。當(dāng)MN/加=0時,8088工作在最大模式。在此模式下,構(gòu)成的微機中除有8088CPU外,還可外接數(shù)字協(xié)處理器8087,構(gòu)成多微處理器系統(tǒng)。在最大模式下,系統(tǒng)總線要由8288共同生成(見后詳細介紹)。P.42圖2-15中括號內(nèi)的管腳信號用于最大工作模式。.最小模式下的引線最小模式下,8088的引線分為三類。第一類為數(shù)據(jù)、地址、狀態(tài)線,它們包括:△A.6~A19/S3~S6,地址、狀態(tài)復(fù)用引腳,三態(tài)輸出。在8088CPU執(zhí)行指令的過程中,在總線周期的「時刻,從該4個引腳送出地址的最高4位A16-A19?在會、T3、T,時亥!!,這4個引腳送出狀態(tài)信號S3?S6,在這些狀態(tài)信息里,S6恒等于〇,Ss指示中斷允許標(biāo)志位IF的狀態(tài),&、S3組合指示CPU當(dāng)前正在使用的段寄存器,其編碼表參見P.4

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論