版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
微機原理與接口技術(shù)(第3版)1計算機系統(tǒng)概述計算機中的數(shù)據(jù)表示與編碼邏輯電路基礎(chǔ)計算機系統(tǒng)概述例題解析計算機最重要的功能是處理信息,如數(shù)值、文字、符號、語音、圖形和圖像等。在計算機內(nèi)部,各種信息都必須采用數(shù)字化的形式被存儲、加工與傳送。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述數(shù)值數(shù)據(jù):用于表示數(shù)量的大小,具有確定的數(shù)值;非數(shù)值數(shù)據(jù):沒有確定的數(shù)值,它主要表示字符、漢字、邏輯數(shù)組等。1.1.1數(shù)與數(shù)制1.進位計數(shù)法與數(shù)制十進制:逢十進一,借一當(dāng)十1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述(234.13)10=2×102+3×101+4×100+1×10-1+3×10-2位權(quán)圖1.1十進制數(shù)的位權(quán)
2.二進制、八進制和十六進制1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述二進制:(110.11)2=1×22+1×21+0×20+1×2-1+1×2-2八進制:(123.45)8=1×82+2×81+3×80+4×8-1+5×8-2十六進制:(1B.E5)16=1×161+B×160+E×16-1+5×16-2n位整數(shù)、m位小數(shù)的任意r進制數(shù)N的通式:1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述十進制二進制八進制十六進制00000001000111200102230011334010044501015560110667011177810001089100111910101012A11101113B12110014C13110115D14111016E15111117F表1.1十進制、二進制、八進制和十六進制數(shù)碼對照表
3.數(shù)制轉(zhuǎn)換
(1)r進制數(shù)轉(zhuǎn)換為十進制數(shù)
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.1把二進制數(shù)101.11轉(zhuǎn)換成相應(yīng)的十進制數(shù)。解(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2
=4+0+1+0.5+0.25
=(5.75)10r進制數(shù)的通式:1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.2把八進制數(shù)123.54轉(zhuǎn)換成相應(yīng)的十進制數(shù)。解(123.54)8=1×82+2×81+3×80+5×8-1+4×8-2=64+16+3+0.625+0.0625=(83.6875)101.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.4將十進制數(shù)97轉(zhuǎn)換成十六進制數(shù)。解(97)10=(61)16(2)十進制數(shù)轉(zhuǎn)換為r進制數(shù)例1.3將十進制數(shù)25轉(zhuǎn)換成二進制數(shù)。解(25)10=(11001)21.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.5將十進制小數(shù)0.8125轉(zhuǎn)換成二進制小數(shù)。解(0.8125)10=(0.1101)21.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.6將十進制小數(shù)25.8125轉(zhuǎn)換成二進制數(shù)。解運算過程如下:
(25)10=(11001)2
(0.8125)10=(0.1101)2由此可得:
(25.8125)10=(11001.1101)2例1.7將二進制數(shù)(11010110.11)2轉(zhuǎn)換為八進制數(shù)。解(11010110.11)2=(326.6)81.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.8將八進制數(shù)(25.4)8轉(zhuǎn)換為二進制數(shù)。解(25.4)8=(10101.1)2例1.9將二進制數(shù)(111101.101)2轉(zhuǎn)換為十六進制數(shù)。解(111101.101)2=(3D.A)16例1.10將十六進制數(shù)(1FC7.958)16轉(zhuǎn)換為二進制數(shù)。解(1FC7.958)16=(1111111000111.100101011)21.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述十進制數(shù):D(Decimal)來表示;八進制數(shù):O(Octal)來表示;十六進制數(shù):H(Hexadecimal)來表示。二進制數(shù):B(Binary)來表示;1.1.2數(shù)據(jù)格式1.定點數(shù)表示法
2.浮點數(shù)表示法
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述EsE1E2……EmMSM1M2……Mn階符階碼數(shù)符尾數(shù)01101011例:尾數(shù)為4位,階碼為2位,則二進制數(shù)x=0.1011×2+11的浮點數(shù)表示形式:1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述31302923
220
SESEM32位浮點數(shù)64位浮點數(shù)63626152
510
SESEMIEEE754浮點數(shù)存儲格式1.1.3二進制數(shù)的編碼及運算
機器碼:一個數(shù)在機器(計算機)中的表示形式。
真值:一般書寫表示的實際數(shù)值數(shù)據(jù)。
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述無符號數(shù)的表示格式有符號數(shù)的表示格式符號位數(shù)值位1位n-1位數(shù)值位
n位(1)原碼
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例如,當(dāng)機器字長n=8時,
+1=+0000001B,則[+1]原=00000001B+127=+1111111B,則[+127]原=01111111B-1=-0000001B,則[-1]原=10000001B-127=-1111111B,則[-127]原=11111111B原碼的形式為:對于二進制數(shù),正數(shù)的原碼就是它本身,負數(shù)的原碼符號位取1,數(shù)值部分是真值的絕對值。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述在原碼表示中,+0和-0的原碼不同,即0有兩種原碼表示形式:
+0=+0000000B,則[+0]原=00000000B
-0=-0000000B,則[-0]原=10000000B原碼表示法簡單易懂,但它的最大缺點是加減運算復(fù)雜。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述(2)反碼對于二進制數(shù),正數(shù)的反碼就是它本身,負數(shù)的反碼符號位取1,數(shù)值部分按位取反。
例如,當(dāng)機器字長n=8時,+1=+0000001B,則[+1]反=00000001B+127=+1111111B,則[+127]反=01111111B-1=-0000001B,則[-1]反=11111110B-127=-1111111B,則[-127]反=10000000B在反碼表示中,+0和-0的反碼不同,即0有兩種反碼表示形式:+0=+0000000B,則[+0]反=00000000B-0=-0000000B,則[-0]反=11111111B(3)補碼
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述鐘表的形式為:-3=+9(mod12)用補碼表示時,可以把負數(shù)轉(zhuǎn)化為正數(shù),減法轉(zhuǎn)化為加法。補碼可定義為:
對于二進制數(shù),正數(shù)的補碼就是它本身,負數(shù)的補碼符號位取1,數(shù)值部分按位取反后末位加1。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例如,當(dāng)機器字長n=8時,+1=+0000001B,則[+1]補=00000001B+127=+1111111B,則[+127]補=01111111B-1=-0000001B,則[-1]補=11111111B-127=-1111111B,則[-127]補=10000001B
一般來說,如果機器字長為n位,則補碼能表示的整數(shù)范圍是:-2n-1~2n-1-1在補碼表示中,+0和-0的補碼形式相同,即0只有一種補碼表示形式:+0=+0000000B,則[+0]補=00000000B-0=-0000000B,則[-0]補=11111111+1=00000000B對于10000000這個補碼編碼,其十進制真值被定義為-128。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.11機器字長n=8位,x=+56,求[x]補,結(jié)果用十六進制表示。解+56=+0111000B,則[+56]補=00111000B=38H例1.12機器字長n=8位,x=-56,求[x]補,結(jié)果用十六進制表示。解-56=-0111000B,則[-56]補=11001000B=0C8H在匯編語言中,為了區(qū)別指令碼和數(shù)據(jù),規(guī)定A~F開始的數(shù)據(jù)前面必須加零。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.13機器字長n=16位,x=+56,求[x]補,結(jié)果用十六進制表示。解+56=+111000B=+000000000111000,[+56]補=0000000000111000B=0038H例1.14機器字長n=16位,x=-56,求[x]補,結(jié)果用十六進制表示。解-56=-111000B=-000000000111000,[-56]補=1111111111001000B=0FFC8H1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述已知補碼求真值的方法:當(dāng)機器碼的最高位(符號位)為0時,表示真值是正數(shù),其值等于其余n-1位的值;當(dāng)機器數(shù)的最高位(符號位)為1時,表示真值是負數(shù),其值等于其余n-1位按位取反末位加1的值。例如:若[x]補=01111111,則x=+1111111B=+127若[x]補=11111111,則x=-0000001B=-11.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述二進制編碼無符號數(shù)原碼反碼補碼000000000+0+0+0000000011+1+1+1000000102+2+2+2┇┇┇┇┇01111110126+126+126+12601111111127+127+127+12710000000128-0-127-12810000001129-1-126-12710000010130-2-125-126┇┇┇┇┇11111110254-126-1-21111111255-127-0-13.補碼運算
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述二進制補碼的運算規(guī)則:[X+Y]補=[X]補+[Y]補[X-Y]補=[X]補+[-Y]補進行加法運算時,把符號位和數(shù)值位一起進行運算(若符號位有進位,則丟掉),結(jié)果為兩數(shù)之和的補碼形式。減法運算可以轉(zhuǎn)化為加法運。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.15補碼進行下列運算:①(+33)+(+15);②(-33)+(+15);③(+33)+(-15);④(-33)+(-15)。解: +33=+0100001B, [+33]補=00100001+15=+0001111B, [+15]補=00001111-33=-0100001B, [-33]補=11011111-15=-0001111B, [-15]補=11110001
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.16用補碼進行下列運算:①(+33)-(+15);②(-33)-(+15);③(+33)-(-15);④(-33)-(-15)。解: +33=+0100001B, [+33]補=00100001+15=+0001111B, [+15]補=00001111-33=-0100001B, [-33]補=11011111-15=-0001111B, [-15]補=11110001
根據(jù)補碼減法公式,可以得到:[(+33)-(+15)]補=[+33]補+[-15]補,[(-33)-(+15)]補=[-33]補+[-15]補[(+33)-(-15)]補=[+33]補+[+15]補,[(-33)-(-15)]補=[-33]補+[+15]補
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述計算過程如下:1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.17設(shè)x=+64,y=+10,用補碼計算x-y,結(jié)果用十進制形式表示。解
x=+1000000B,[x]補=01000000
y=+0001010B,[-y]補=11110110
-33=-0100001B,[-33]補=11011111
-15=-0001111B,[-15]補=11110001
[x-y]補 =00110110
x-y=+0110110B=+54D
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述1.1.4十進制數(shù)的編碼及運算1.BCD碼
BCD碼(BinaryCodedDecimal):是二進制編碼的十進制數(shù)。十進制數(shù)8421碼十進制數(shù)8421碼000005010110001601102001070111300118100040100910011.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.18求十進制數(shù)57.3的BCD碼。 57.301010111.0011所以,(57.3)10=(01010111.0011)BCD例1.19求BCD碼10000011.0111所對應(yīng)的十進制數(shù)。1000 0011 .01118 3.7所以,(10000011.0111)BCD=(83.7)101.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述BCD碼的兩種格式:壓縮BCD碼(組合BCD碼):1個字節(jié)中存放2位十進制數(shù)的BCD碼;非壓縮BCD碼(非組合BCD碼):1個字節(jié)中僅存放1位十進制數(shù)的BCD碼;十進制數(shù)4用非壓縮的BCD碼表示為××××0100。十進制數(shù)43用非壓縮的BCD碼表示為××××0100××××0011。例:十進制數(shù)43用壓縮的BCD碼表示為01000011。1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述
2.BCD碼的加減運算例1.20利用BCD碼計算:①4+5;②5+7;③8+9解 ①(4)BCD=0100,(5)BCD=0101
②(5)BCD=0101,(7)BCD=0111
1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述③(8)BCD=1000,(9)BCD=10011.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述例1.21利用BCD碼計算:①35+21;②25+37
①(35)BCD=00110101,(21)BCD=00100001②(25)BCD=00100101,(37)BCD=00110111 1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述1.1.5ASCII碼(AmericanStandardCodeForInformationInterchange)7位二進制碼,共可以表示128個字符。B6B5B4B3B2B1B00000010100111001011101110000NULDLESP0@P`p0001SOHDC1!1AQaq0010STXDC2″2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB?7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l|1101CRGS-=M]m}1110SORS.>N↑n~1111SIUS/?O-oDEL1.1計算機中的數(shù)據(jù)表示與編碼1計算機系統(tǒng)概述ASCII碼包括:⑴32個控制字符。⑵空格字符SP,編碼值為32。⑶刪除控制碼DEL,編碼值為127。⑷94個可印刷字符(或稱有形字符)。1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述邏輯電路:是實現(xiàn)輸入信號與輸出信號之間邏輯關(guān)系的電路。小規(guī)模集成電路(SSI):是器件的集成,如門電路或觸發(fā)器等;中規(guī)模集成電路(MSI):是邏輯構(gòu)建的集成,如多路選擇器、加法器等;大規(guī)模集成電路(LSI)和超大規(guī)模集成電路(VLSI):是一個數(shù)字子系統(tǒng)或整個數(shù)字系統(tǒng)的集成。1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述邏輯門電路:可組成各種功能的邏輯電路,這些邏輯電路按其結(jié)構(gòu)可分為組合邏輯電路和時序邏輯電路。組合邏輯電路:由各種門電路組合而成且無反饋的邏輯電路,簡稱組合邏輯,如譯碼器。時序電路:邏輯電路的輸出狀態(tài)不僅和當(dāng)時的輸入狀態(tài)有關(guān),而且還與電路在此前的輸出狀態(tài)有關(guān),則這種電路稱為時序電路,如觸發(fā)器及各類寄存器等。1.2.1基本邏輯門電路1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述1.2.2譯碼器1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述G1CBA譯碼輸出1000000=0,余為11000011=0,余為11000102=0,余為11000113=0,余為11001004=0,余為11001015=0,余為11001106=0,余為11001117=0,余為1其他×××0~7
全為174LS138譯碼器功能表1.2.3觸發(fā)器1.2.4寄存器
1.緩沖寄存器(Buffer):分為數(shù)據(jù)緩沖寄存器和地址緩沖寄存器。2.移位寄存器(ShiftingRegister):具有數(shù)據(jù)存儲和移位兩個功能。1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述3.計數(shù)器(Counter):是由若干個觸發(fā)器組成的寄存器,當(dāng)一個計數(shù)脈沖到達時,它會按二進制數(shù)的規(guī)律累計脈沖數(shù),使存儲在其中的數(shù)字加1。4.累加器(Accumulator):是一個由多個觸發(fā)器組成的多位寄存器,用于暫存每次在ALU中計算的中間結(jié)果。1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述1.2.5三態(tài)電路1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述三態(tài)輸出電路EAB00高阻01高阻100111三態(tài)輸出電路功能表1.2邏輯電路基礎(chǔ)1計算機系統(tǒng)概述4位緩沖寄存器計算機系統(tǒng)是一個由硬件、軟件組成的復(fù)雜的電子裝置。它能夠存儲程序和原始數(shù)據(jù)、中間結(jié)果和最終運算結(jié)果,并自動完成運算,是一種能對各種數(shù)字化信息進行處理的信息處理機。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述1.3.1計算機的分類及發(fā)展1.計算機的分類
目前人們所說的計算機,都是電子數(shù)字計算機已經(jīng)出現(xiàn)過的機械的、模擬的計算機已經(jīng)逐漸消失。計算機按用途可分為專用計算機和通用計算機。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述按計算機的使用方式分類嵌入式計算機桌面計算機服務(wù)器按計算機的結(jié)構(gòu)分類馮?諾依曼結(jié)構(gòu)非馮?諾依曼結(jié)構(gòu)按規(guī)模分超級計算機、大型機、服務(wù)器、微型機、單片機1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
2.計算機的發(fā)展
類型時期主要器件重要特征第1代1946-1957電子管機器語言,匯編語言。速度低,體積大,價格昂貴,可靠性差,用于科學(xué)計算。速度達幾千次到幾萬次第2代1958-1964晶體管算法語言,操作系統(tǒng)。體積縮小,可靠性提高。從科學(xué)計算到數(shù)據(jù)處理、工業(yè)控制。每秒幾萬次到幾十萬次第3代1964-1971中小規(guī)模集成電路體積小,可靠性大大提高,速度達幾百萬次,軟件技術(shù)和外設(shè)發(fā)展迅速應(yīng)用領(lǐng)域不斷擴大,出現(xiàn)小型計算機。第4代1971-1992大/超大規(guī)模集成電路速度提高至幾千次到億次出現(xiàn)微型計算機第5代1991-巨大規(guī)模集成電路速度提高至幾億次乃至上百億次。出現(xiàn)單片機摩爾定律:每18個月,集成度將翻一番,速度將提高一倍,而其價格將降低一半。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述1.3.2計算機系統(tǒng)的組成
計算機系統(tǒng)是由硬件系統(tǒng)和軟件系統(tǒng)兩部分組成的。1.馮·諾依曼計算機
⑴計算機(指硬件)由運算器、存儲器、控制器、輸入設(shè)備和輸出設(shè)備五大基本部件組成。⑵指令和數(shù)據(jù)均以二進制編碼表示,采用二進制運算。⑶采用存儲程序的方式,程序和數(shù)據(jù)存放在同一存儲器中。⑷指令在存儲器中按其執(zhí)行順序存放,由程序計數(shù)器指明要執(zhí)行的指令地址,自動從存儲器中取出指令并執(zhí)行。⑸計算機是以運算器為中心的,輸入/輸出設(shè)備與存儲器之間的數(shù)據(jù)傳送都要通過運算器。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
存儲程序控制的基本思想:將編好的程序和原始數(shù)據(jù)事先存入存儲器中,然后再啟動計算機工作,使計算機在不需要人工干預(yù)的情況下,自動、高速地從存儲器中取出指令加以執(zhí)行。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述馮·諾依曼結(jié)構(gòu)的計算機是以運算器為中心的。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
2.現(xiàn)代計算機系統(tǒng)
⑴以存儲器為中心的計算機系統(tǒng)
1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
⑵總線系統(tǒng)總線是構(gòu)成計算機系統(tǒng)的骨架,是多個系統(tǒng)部件之間進行數(shù)據(jù)傳送的公共通路。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
⑶I/O接口I/O接口:又稱適配器,存在于CPU與外設(shè)之間,是CPU與外圍設(shè)備進行信息交換的中轉(zhuǎn)站。外圍設(shè)備通過I/O接口連接在系統(tǒng)總線上。它保證外圍設(shè)備采用計算機系統(tǒng)所要求的形式發(fā)送和接收信息。通用可編程接口:可以通過對接口芯片編程,使得同一接口芯片適應(yīng)多種使用場合。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
⑷存儲系統(tǒng)三級存儲結(jié)構(gòu)1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述
3.計算機的軟件系統(tǒng)
系統(tǒng)軟件:負責(zé)管理、控制和維護計算機的各種硬件資源,并為用戶提供一個友好的操作界面以及服務(wù)于一般目的的上機環(huán)境。應(yīng)用軟件:專業(yè)人員為各種應(yīng)用目的而開發(fā)的程序,利用計算機來解決某些問題。1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述1.3.3計算機系統(tǒng)的主要性能指標(biāo)字長位(bit):計算機內(nèi)部數(shù)據(jù)存儲的最小單位。字節(jié)(Byte):最基本的存儲單元,也是計算機中數(shù)據(jù)處理的基本單位。字(word):計算機進行數(shù)據(jù)處理時,一次存取、加工和傳送的數(shù)據(jù)長度。16位機:8086、80286
32位機:80486準(zhǔn)16位機:8088
準(zhǔn)32位:80386SX1.3計算機系統(tǒng)概述1計算機系統(tǒng)概述內(nèi)存容量運算速度最短指令法:以執(zhí)行時間最短的指令或某條特定指令為標(biāo)準(zhǔn)來計算速度,如傳送指令、加法指令等。平均速度:根據(jù)不同類型指令在計算過程中出現(xiàn)的頻率,乘以不同的系數(shù),求得統(tǒng)計平均值。時鐘頻率
主頻:指微處理器在單位時間(秒)內(nèi)發(fā)出的時鐘脈沖數(shù)。微機原理與接口技術(shù)(第3版)2微型計算機系統(tǒng)基礎(chǔ)指令系統(tǒng)微型計算機系統(tǒng)結(jié)構(gòu)輸入/輸出系統(tǒng)微處理器的發(fā)展嵌入式系統(tǒng)微處理器的發(fā)展2.1.1程序設(shè)計語言
程序設(shè)計語言:機器語言、匯編語言、高級語言
1.指令系統(tǒng)指令:要計算機執(zhí)行某種操作的命令。
程序:是一組指令的有序集合。指令系統(tǒng):一臺CPU能識別的所有指令的集合。2.1指令系統(tǒng)2微型計算機系統(tǒng)基礎(chǔ)2.1.1程序設(shè)計語言2.匯編語言和匯編程序機器指令:二進制指令,由指令操作碼和操作數(shù)組成。機器語言:由機器指令構(gòu)成的編程語言。匯編語言:用約定的符號和數(shù)字按規(guī)定的格式來表示指令。匯編程序:將匯編源程序自動翻譯成機器語言的過程。算法語言(高級語言):由預(yù)先規(guī)定的基本符號構(gòu)成程序,比較接近數(shù)學(xué)語言,與具體機器無關(guān),通用性強、便于學(xué)習(xí)和掌握。2.1指令系統(tǒng)2微型計算機系統(tǒng)基礎(chǔ)1.系列計算機:具有相同的基本指令系統(tǒng)和基本體系結(jié)構(gòu),但具有不同組成和實現(xiàn)的一系列不同型號的機器。2.1.2處理體系結(jié)構(gòu)2微型計算機系統(tǒng)基礎(chǔ)2.1指令系統(tǒng)x86系列IBM-360曙光,神威,銀河......2.CISC和RISC
復(fù)雜指令系統(tǒng)計算機(ComplexInstuctionSetComputer)
有龐大的指令系統(tǒng)、較多的尋址方式、復(fù)雜的指令格式,CPU結(jié)構(gòu)復(fù)
雜、設(shè)計成本高。
精簡指令集計算機(ReducedInstructionSetComputer,RISC)
去除不常用的復(fù)雜指令,硬件只支持常用的簡單指令。通過減少指令種類、規(guī)范指令格式、簡化尋址方式、存儲器并行處理等方式,大幅度的提高處理器的總性能。2微型計算機系統(tǒng)基礎(chǔ)2.1.2處理體系結(jié)構(gòu)2.1指令系統(tǒng)2.2.1微處理器與微型計算機微處理器(Microprocessor,μP,MP):將運算器和控制器集成在一起的中央處理器部件。微型計算機(Microcomputer,μC,MC):以微處理器為核心,配上內(nèi)存儲器、輸入/輸出接口電路及系統(tǒng)總線所組成的計算機。微型計算機系統(tǒng)(MicrocomputerSystem,μCS,MCS):是指以微型計算機為中心,配以相應(yīng)的外圍設(shè)備、電源、輔助電路以及控制微型計算機工作的系統(tǒng)軟件所構(gòu)成的計算機系統(tǒng)。2.2微型計算機系統(tǒng)結(jié)構(gòu)2微型計算機系統(tǒng)基礎(chǔ)2微型計算機系統(tǒng)基礎(chǔ)微型計算機系統(tǒng)組成2.2微型計算機系統(tǒng)結(jié)構(gòu)2.2.1微處理器與微型計算機2.2.2微處理器中主要的寄存器2微型計算機系統(tǒng)基礎(chǔ)指令寄存器(InstructionRegister,IR)程序計數(shù)器(ProgramCounter,PC)地址寄存器(AddressRegister,AR)數(shù)據(jù)寄存器(DataRegister,DR)通用寄存器(R0~Rn)程序狀態(tài)字寄存器(ProgramStatusWord,PSW)2.2微型計算機系統(tǒng)結(jié)構(gòu)2微型計算機系統(tǒng)基礎(chǔ)訪問內(nèi)存示意圖2.2.3微型計算機中的存儲器與地址分配內(nèi)存組織2.2微型計算機系統(tǒng)結(jié)構(gòu)2.2.3微型計算機中的存儲器與地址分配統(tǒng)一編址:將I/O端口和內(nèi)存儲器統(tǒng)一編址獨立編址:內(nèi)存儲器和I/O端口地址空間各自獨立編址
堆棧:堆棧是按后進先出(Last-InFirst-Out,LIFO)原則進行存取的存儲結(jié)構(gòu)2微型計算機系統(tǒng)基礎(chǔ)2.2微型計算機系統(tǒng)結(jié)構(gòu)2.2.4微機系統(tǒng)中采用的先進技術(shù)流水線技術(shù)哈佛結(jié)構(gòu):將指令和數(shù)據(jù)分別放在兩個獨立存儲器中,每個存儲器獨立編址、獨立訪問Cache技術(shù)虛擬存儲管理技術(shù)多核處理器結(jié)構(gòu)2微型計算機系統(tǒng)基礎(chǔ)2.2微型計算機系統(tǒng)結(jié)構(gòu)2.3.1信息交換方式程序查詢方式中斷控制方式直接存儲器存取控制方式通道方式外圍處理機方式2.3輸入/輸出系統(tǒng)2微型計算機系統(tǒng)基礎(chǔ)2.3.2程序中斷方式1.中斷的基本思想2.中斷源3.中斷處理過程中斷請求
中斷響應(yīng)
①保護斷點
②保護現(xiàn)場
③識別中斷源中斷處理中斷返回2微型計算機系統(tǒng)基礎(chǔ)2.3輸入/輸出系統(tǒng)2.4.1Intel微處理器早期微處理器(1971—1973年)8位微處理器(1973—1978年)16位微處理器(1978—1983年)IA32架構(gòu)微處理器(1983—1993年)IA64位微處理器其他微處理器:除了Intel公司,還有其他一些優(yōu)秀的微處理器制造商,如Motorola、Zilog、AMD等公司2.4微處理器的發(fā)展2微型計算機系統(tǒng)基礎(chǔ)嵌入式系統(tǒng)的定義嵌入式系統(tǒng)是以應(yīng)用為中心、以計算機技術(shù)為基礎(chǔ),采用可剪裁軟硬件,能夠滿足應(yīng)用系統(tǒng)對功能、可靠性、實時性、成本、體積功耗等指標(biāo)的嚴(yán)格要求的專用計算機系統(tǒng),用于對其他設(shè)備的控制、監(jiān)視或管理等功能。2.5嵌入式系統(tǒng)2微型計算機系統(tǒng)基礎(chǔ)嵌入式系統(tǒng)的特點專用性強技術(shù)融合集成度高實時性好資源受限2微型計算機系統(tǒng)基礎(chǔ)2.5嵌入式系統(tǒng)交叉編譯本地編譯:在當(dāng)前編譯平臺下,編譯出來的程序只能放到當(dāng)前平臺下運行。交叉編譯:在當(dāng)前編譯平臺下,編譯出來的程序能夠運行在另一種體系結(jié)構(gòu)的目標(biāo)平臺上,但是該編譯平臺本身卻不能運行。通常將這個編譯平臺成為宿主機,而目標(biāo)平臺稱為目標(biāo)機。例如:在x86平臺上,編寫程序并編譯成能運行在ARM平臺的程序,編譯得到的這個程序在x86平臺上是不能運行的。2微型計算機系統(tǒng)基礎(chǔ)2.5嵌入式系統(tǒng)嵌入式系統(tǒng)的發(fā)展嵌入式微處理器嵌入式微控器ARM時代面向Internet階段2微型計算機系統(tǒng)基礎(chǔ)2.5嵌入式系統(tǒng)微機原理與接口技術(shù)(第3版)3
8086/8088微處理器結(jié)構(gòu)
微處理器的內(nèi)部結(jié)構(gòu)總線工作周期中斷系統(tǒng)外部引腳和工作模式存儲器組織結(jié)構(gòu)微處理器的時序例題解析1.8086CPU是16位的第三代微處理器,
其內(nèi)部數(shù)據(jù)總線和外部數(shù)據(jù)總線均16位。2.8086具有20位地址總線,可尋址的內(nèi)存地址空間達1M字節(jié),可尋址的I/O地址空間為64K字節(jié),3.8086有多重尋址方式、多級中斷方式、多重數(shù)據(jù)處理形式、段式存儲器結(jié)構(gòu)、硬件乘除法運算電路。取指令和執(zhí)行指令的操作并行運行,
運行速度大大提高。4.8086具有最小模式和最大模式,應(yīng)用領(lǐng)域?qū)拸V,適應(yīng)性強。5.8086可方便地和數(shù)據(jù)處理器8087、I/O處理器8089或其它處理器組成多處理機系統(tǒng),提高數(shù)據(jù)處理能力和輸人輸出能力。
3.1Intel8086微處理器3
8086/8088微處理器結(jié)構(gòu)
3.2.1尋址空間和數(shù)據(jù)存儲格式1.尋址空間當(dāng)存儲器按字節(jié)編址時,若地址總線為n位,CPU尋址范圍是2n字節(jié)例如:8086CPU有地址總線20位,尋址能力為220=1M字節(jié)3.28086的存儲器組織3
8086/8088微處理器結(jié)構(gòu)2.8086存儲器的組織及尋址20位地址線,可尋址的地址范圍為00000H~FFFFFH3.28086的存儲器組織3
8086/8088微處理器結(jié)構(gòu)十六進制地址二進制地址存儲器00000H0000,0000,0000,0000,0000B
00001H0000,0000,0000,0000,0001B
00002H0000,0000,0000,0000,0010B
00003H0000,0000,0000,0000,0011B
::
::
FFFFDH1111,1111,1111,1111,1101B
FFFFEH1111,1111,1111,1111,1110B
FFFFFH1111,1111,1111,1111,1111B
數(shù)據(jù)的存儲格式
計算機中信息的單位有:位(bit)、字節(jié)(byte)字(word)、雙字(doubleword)等⑴字節(jié)數(shù)據(jù)(BYTE)
8位,偶地址(地址的最低位A0=0),或奇地址(A0=1)
⑵字?jǐn)?shù)據(jù)(WORD)16位,存放在兩個連續(xù)的字節(jié)單元中。其中高8位存放在在高地址字節(jié)(高字節(jié)),低8位存放在在低地址字節(jié)(低字節(jié)),并規(guī)定將低字節(jié)的地址作為這個字的地址(字地址)
D15~D8(高字節(jié))地址=N+1(奇地址)
D15~D8(高字節(jié))地址=N+1(偶地址)字地址D7~D0(低字節(jié))地址=N(偶地址)
字地址D7~D0(低字節(jié))地址=N(奇地址)
規(guī)則字
非規(guī)格字3
8086/8088微處理器結(jié)構(gòu)⑶雙字?jǐn)?shù)據(jù)(DOUBLEWORD)雙字?jǐn)?shù)據(jù)占用4個連續(xù)字節(jié)單元,并規(guī)定最低字節(jié)地址為雙字的地址數(shù)據(jù)的存儲格式
D31~D24地址=N+3
D23~D16地址=N+2
D15~D8地址=N+1雙字地址D7~D0地址=N(低字節(jié))數(shù)據(jù)的地址對齊同一個存儲器地址可以表示為:字節(jié)單元地址、字單元地址、雙字單元地址等等(視指令的具體情況)。將字單元安排在偶地址(xx……….xx0B),將雙字單元安排在模4地址(xx………xx00B)的做法,被稱為“地址對齊(Align)”。存儲的數(shù)據(jù)如果對齊邊界,則存取速度較快3
8086/8088微處理器結(jié)構(gòu)8086系統(tǒng)的存儲器結(jié)構(gòu)數(shù)據(jù)類型A0操
作用到的數(shù)據(jù)引腳規(guī)則字00從偶地址開始讀/寫一個字D15—D0字節(jié)01從奇地址開始讀/寫一個字節(jié)D15—D810從偶地址開始讀/寫一個字節(jié)D7—D0非規(guī)則字0110從奇地址開始讀寫一個字(非規(guī)則字),第一總線周期高8位數(shù)據(jù)有效,第二總線周期低8位數(shù)據(jù)有效。D15—D8D7—D0
11無效
3
8086/8088微處理器結(jié)構(gòu)3.2.2存儲器的分段結(jié)構(gòu)和物理地址的形成
0段1段2段15段00000H0FFFFH10000H1FFFFH20000H2FFFFHF0000HFFFFFH64K字節(jié)64K字節(jié)64K字節(jié)64K字節(jié)……………………1.存儲器的分段結(jié)構(gòu)由于8086中的地址寄存器都是16位的,用戶不能直接使用20位的物理地址,編程時需要使用邏輯地址來尋址存儲單元。邏輯地址由兩個16位數(shù)構(gòu)成,其形式為:8086將存儲空間分為多個邏輯段(Segment)來進行管理,要求:段的20位的起始地址(xxxxxH)其低4位必須為0(xxxx0H),所以可以將它們省略,然后用1個16位數(shù)來表示表示段的首地址。每段長度限216=64KB,所以段內(nèi)偏移地址可以用1個16位數(shù)表示(xxxxH)1MB最多可分為16個不重迭的段。(16位段地址)
:(16位偏移量)
段的起始地址:
段內(nèi)的偏移地址3
8086/8088微處理器結(jié)構(gòu)實際上,兩個不同的邏輯段可以交疊,或者完全重疊3
8086/8088微處理器結(jié)構(gòu)3.2.2存儲器的分段結(jié)構(gòu)和物理地址的形成CS=7018H,IP=FE7FH,物理地址=7FFFFH例如:7018:FE7F圖3.5物理地址形成過程2.物理地址的形成每個存儲單元都有一個唯一物理地址(00000H~FFFFFH),20位二進制數(shù),該地址在指令執(zhí)行時由地址加法器形成,并進行硬件尋址。地址加法器的具體做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。3
8086/8088微處理器結(jié)構(gòu)用戶編程時采用邏輯地址,其形式為:段的首地址:段內(nèi)偏移地址它們由兩個16位的無符號數(shù)構(gòu)成。邏輯地址“1460H:100H”=物理地址14700H一個存儲單元可以擁有多個邏輯地址,但只可能擁有一個唯一的物理地址。例如:物理地址:00200H邏輯地址:0020H:0000H邏輯地址:0000H:0200H3
8086/8088微處理器結(jié)構(gòu)存儲器可以劃分為:程序區(qū)、數(shù)據(jù)區(qū)、堆棧區(qū)程序段中存儲程序的指令代碼;數(shù)據(jù)段和附加段中存儲數(shù)據(jù)、中間結(jié)果和最后結(jié)果;堆棧段存儲壓入堆棧的數(shù)據(jù)或狀態(tài)信息。3.按信息特征分段存儲3
8086/8088微處理器結(jié)構(gòu)3.3.1
8086CPU內(nèi)部結(jié)構(gòu)分成兩部分:總線接口部件BIU:
總線接口單元BIU,負責(zé)控制存貯器讀寫。執(zhí)行部件EU:
執(zhí)行單元EU從指令隊列中取出指令并執(zhí)行。特點:取指部分和執(zhí)行指令部分分開進行,提高了速度。8086CPU的內(nèi)部結(jié)構(gòu)3.38086微處理器的內(nèi)部結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)外部總線內(nèi)部暫存器
IP
ES
SSDSCS輸入/輸出控制電路執(zhí)行部分控制電路123456∑ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位外部總線內(nèi)部暫存器
IP
ES
SSDSCS輸入/輸出控制電路執(zhí)行部分控制電路123456∑ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位執(zhí)行部件總線接口部件通用寄存器四個專用寄存器SP:堆棧指針,其內(nèi)容與堆棧段寄存器SS的內(nèi)容一起,提供堆棧操作地址。
BP:基址指針:構(gòu)成段內(nèi)偏移地址的一部分.
SI:(SourceIndex):SI含有源地址意思,產(chǎn)生有效地址或?qū)嶋H地址的偏移量。
DI:(DestinationIndex):DI含有目的意思,
產(chǎn)生有效地址或?qū)嶋H地址的偏移量。算術(shù)邏輯單元ALU:主要是加法器。大部分指令的執(zhí)行由加法器完成。標(biāo)志寄存器:16位字利用了9位。標(biāo)志分兩類:狀態(tài)標(biāo)志(6位):反映剛剛完成的操作結(jié)果情況??刂茦?biāo)志(3位):在某些指令操作中起控制作用。外部總線內(nèi)部暫存器
IP
ES
SSDSCS輸入/輸出控制電路執(zhí)行部分控制電路123456∑ALU標(biāo)志寄存器AHALBHBLCHCLDHDLSPBPSIDI通用寄存器地址加法器指令隊列緩沖器執(zhí)行部件(EU)總線接口部件(BIU)16位20位16位8位20位地址加法器四個段寄存器:CS、DS、SS、ESCS管理代碼段;DS管理數(shù)據(jù)段SS管理堆棧段;ES管理附加段.16位的指令指針寄存器IP:IP中的內(nèi)容是下一條指令對現(xiàn)行代碼段基地址的偏移量,6字節(jié)的指令隊列指令隊列共六字節(jié),總線接口部件BIU從內(nèi)存取指令,取來的總是放在指令隊列中;執(zhí)行部件EU從指令隊列取指令,并執(zhí)行。3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)AHBHCHDHALBLCLDLSPBPSIDIIPFLAGSCSDSSSES000151515AXBXCXDX累加器基址寄存器計數(shù)器數(shù)據(jù)寄存器堆棧指針基址指針源變址目的變址指令指針標(biāo)志寄存器代碼段數(shù)據(jù)段堆棧段附加段通用數(shù)據(jù)寄存器指針和變址寄存器控制寄存器段寄存器015871.數(shù)據(jù)寄存器8086含4個16位數(shù)據(jù)寄存器,它們又可分為8個8位寄存器,即:AXAH,ALBXBH,BLCXCH,CLDXDH,DL常用來存放參與運算的操作數(shù)或運算結(jié)果3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)數(shù)據(jù)寄存器特有的習(xí)慣用法AX:累加器。多用于存放中間運算結(jié)果。
所有I/O指令必須都通過AX與接口傳送信息;BX:基址寄存器。常用于存放訪問內(nèi)存時的偏移地址;CX:計數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)
或重復(fù)次數(shù);DX:數(shù)據(jù)寄存器。在32位乘除法運算時,存放高16位數(shù);
在間接尋址的I/O指令中存放I/O端口地址。3
8086/8088微處理器結(jié)構(gòu)3.3.28086CPU的寄存器結(jié)構(gòu)2.段寄存器段寄存器為信息按特征分段存貯帶來方便.3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)CS:16位的代碼段寄存器,管理程序段DS:16位的數(shù)據(jù)段寄存器,管理數(shù)據(jù)段。ES:16位的擴展段(附加段)寄存器,管理擴展段。SS:16位的堆棧段寄存器,管理堆棧段。3.地址指針與變址寄存器
SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂罚?BP:基址指針寄存器,常用于在訪問內(nèi)存時存放內(nèi)存單元的偏移地址。3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)BX與BP在應(yīng)用上的區(qū)別作為通用寄存器,二者均可用于存放數(shù)據(jù);作為基址寄存器,BX通常用于數(shù)據(jù)段,一般與DS或ES搭配使用;BP則通常用于堆棧段,與SS搭配使用。SI:源變址寄存器DI:目標(biāo)變址寄存器變址寄存器常用于指令的間接尋址或變址尋址.4.控制寄存器指令指針寄存器IP其內(nèi)容為下一條要執(zhí)行的指令的偏移地址;3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)標(biāo)志寄存器FLAGS16位標(biāo)志寄存器,用來存放運算結(jié)果的特征。其中7位沒有定義,其余9位分成兩類:狀態(tài)標(biāo)志:表示運算后結(jié)果的狀態(tài)特征它影響后面的操作,
有6位:CF、PF、AF、ZF、SF和OF。控制標(biāo)志,用來控制CPU操作,有3個:TF、IF和DF。具體格式如圖3-9。3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)CF-進位標(biāo)志:算術(shù)運算時有進位CF=1,無進位CF=0PF-奇偶標(biāo)志:運算結(jié)果中“1”的個數(shù)為偶數(shù)PF=1AF-輔助進位標(biāo)志:第3位向第4位有進位時AF=1ZF-零標(biāo)志:運算結(jié)果為“0”則ZF=1SF-符號標(biāo)志:運算結(jié)果為負數(shù)時SF=1OF-溢出標(biāo)志:運算結(jié)果超出規(guī)定范圍OF=1IF-中斷允許標(biāo)志:IF=1中斷允許DF-方向標(biāo)志,DF=0地址加1TF-跟蹤標(biāo)志,TF=1,為單步工作方式3.3.28086CPU的寄存器結(jié)構(gòu)3
8086/8088微處理器結(jié)構(gòu)例3.1
設(shè)(AX)=0010001101001101B,(DX)=0101001000001001B,試指出兩數(shù)相加后,6位標(biāo)志位的狀態(tài)。解用補碼公式對兩數(shù)進行運算,并按定義對結(jié)果進行判別。計算機中存儲的已是補碼,兩數(shù)相加過程如下:3.3.28086CPU的寄存器結(jié)構(gòu)根據(jù)兩數(shù)相加結(jié)果,可得如下結(jié)論:①結(jié)果非零,故ZF=0。②低8位中共有4個1(偶數(shù)個),故PF=1。③根據(jù)符號位,可知SF=0。④運算結(jié)束后,向更高位無進位,故CF=0。⑤運算結(jié)果無溢出,故OF=0。
⑥D(zhuǎn)3位向D4位產(chǎn)生進位,故AF=1。了解幾個概念主頻:CPU的工作頻率時鐘周期:對主頻進行分頻后的工作時鐘總線周期:完成一次總線操作所需的時間在8088CPU中,CPU與內(nèi)存或接口間進行通信,
如將一個字節(jié)寫入內(nèi)存一個單元(或接口),
或者從內(nèi)存某單元(或某接口)讀一個字節(jié)到CPU,
這種讀(或)寫的過程稱為一個總線周期。指令周期:一條指令從開始取指令到最后執(zhí)行完畢所需的時間3.48086總線的工作周期3
8086/8088微處理器結(jié)構(gòu)3.48086總線的工作周期3
8086/8088微處理器結(jié)構(gòu)總線周期時序1個總線周期正常情況下由4個時鐘周期(T1―T4)組成;時鐘周期由主頻決定;空閑周期TI和等待周期TW;讀、寫、中斷響應(yīng)、總線保持與響應(yīng)等的總線周期時序T1等待狀態(tài)總線周期kT2T3T4TiT1T2T3TWT4TiTiT1T2T3TWTWT4空閑狀態(tài)總線周期k+1總線周期k+23.5.18086中斷類型3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)8086/8088可以處理256種不同的中斷。兩類:內(nèi)部中斷和外部中斷。中斷源示意圖如下圖:8259A可屏蔽中斷請求中斷邏輯INTO指令I(lǐng)NTn指令除法出錯單步(TF=1)非屏蔽中斷請求8086/8088CPUNMIINTR內(nèi)部中斷外部中斷可屏蔽中斷非屏蔽中斷1.外部中斷3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)8086CPUNMIINTR不可屏蔽中斷請求輸入端可屏蔽中斷請求輸入端8086CPU提供兩條引腳INTR、NMI接受中斷請求信號INTA中斷響應(yīng)信號輸出端不可屏蔽中斷(NMI中斷)▼中斷類型碼2▼上升沿觸發(fā)申請中斷▼不受中斷允許標(biāo)志IF的控制與影響(即不可屏蔽),一旦NMI引腳出現(xiàn)中斷請求,CPU在當(dāng)前指令執(zhí)行完后,必須立即響應(yīng)。▼由計算機內(nèi)部硬件出錯而引發(fā),一般用于處理緊急事件。
PC機中用于內(nèi)存奇偶校驗出錯和系統(tǒng)主要故障(如電源斷電等)。3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)8086CPUNMI可屏蔽中斷(INTR中斷)▼外設(shè)申請的中斷▼電平觸發(fā)▼受中斷允許標(biāo)志IF控制
IF=1(指令STI),開中斷,允許響應(yīng)INTR中斷
IF=0(指令CLI),關(guān)中斷,禁止響應(yīng)INTR中斷
——當(dāng)外設(shè)對CPU有服務(wù)請求,會向INTR發(fā)來一個高電平信號(見上圖),并且中斷允許標(biāo)志IF=1時,CPU會在當(dāng)前指令執(zhí)行完后,響應(yīng)可屏蔽中斷。3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)8086CPUINTRINTA3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)可屏蔽中斷(INTR中斷)
8086CPU只有一個可屏蔽中斷請求輸入引腳,8086中斷系統(tǒng)設(shè)計中斷控制器(8259A)管理各種外設(shè)提出的中斷請求。所有外設(shè)的中斷請求信號都可送至8259A的中斷請求輸入端IRQ0~IRQ7任何一個,8259A選擇其中優(yōu)先級最高的中斷請求,送至CPU的INTR引腳,向CPU申請可屏蔽中斷。
可屏蔽中斷源的中斷類型碼由8259A提供。INTRINTA8086CPUINTINTA8259AIRQ0IRQ1IRQ2IRQ7……可屏蔽中斷請求輸入端8259A可對多個可屏蔽中斷源進行優(yōu)先級控制,一片8259A可管理8級可屏蔽中斷。2.內(nèi)部中斷不需要外部硬件支持,不受中斷標(biāo)志IF的影響,中斷類型碼或包含在指令中,或預(yù)先規(guī)定。8086/8088內(nèi)部中斷有以下5種:除法出錯中斷斷點中斷單步中斷溢出中斷軟件中斷3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)軟件中斷主要有五種,分為三類。
1)處理運算過程中某些錯誤的中斷執(zhí)行程序時,為及時處理運算中的某些錯誤,CPU以中斷方式中止正在運行的程序,提醒程序員改錯。
(1)除法錯中斷(中斷類型號為0)。在8086/8088CPU執(zhí)行除法指令(DIV/IDIV)時,若發(fā)現(xiàn)除數(shù)為0,或所得的商超過了CPU中有關(guān)寄存器所能表示的最大值,則立即產(chǎn)生一個類型號為0的內(nèi)部中斷,CPU轉(zhuǎn)去執(zhí)行除法錯中斷處理程序。3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)
例movbl,0idivbl ;除數(shù)BL=0,產(chǎn)生除法錯中斷(2)溢出中斷INTO(中斷類型號為4)。CPU進行帶符號數(shù)的算術(shù)運算時,若發(fā)生了溢出,則標(biāo)志位OF=1,若此時執(zhí)行INTO指令,會產(chǎn)生溢出中斷,打印出一個錯誤信息,結(jié)束時不返回,而把控制權(quán)交給操作系統(tǒng)。若OF=0,則INTO不產(chǎn)生中斷,CPU繼續(xù)執(zhí)行下一條指令。INTO指令通常安排在算術(shù)指令之后,以便在溢出時能及時處理。例如:3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)movax,2000haddax,7000h
;2000H+7000H=9000H,溢出:OF=1into ;因為OF=1,所以產(chǎn)生溢出中斷2)為調(diào)試程序設(shè)置的中斷(1)單步中斷(中斷類型號為1)。當(dāng)TF=1時,每執(zhí)行一條指令,CPU會自動產(chǎn)生一個單步中斷。單步中斷可一條一條指令地跟蹤程序流程,觀察各個寄存器及存儲單元內(nèi)容的變化,幫助分析錯誤原因。單步中斷又稱為陷阱中斷,主要用于程序調(diào)試。3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實現(xiàn)對程序的單步調(diào)試(2)斷點中斷(中斷類型號為3)。調(diào)試程序時可以在一些關(guān)鍵性的地方設(shè)置斷點,它相當(dāng)于把一條INT3指令插入到程序中,CPU每執(zhí)行到斷點處,INT3指令便產(chǎn)生一個中斷,使CPU轉(zhuǎn)向相應(yīng)的中斷服務(wù)程序3)中斷指令I(lǐng)NTn引起的中斷(中斷類型號為n)
程序設(shè)計時,可以用INTn指令來產(chǎn)生軟件中斷,中斷指令的操作數(shù)n給出了中斷類型號,CPU執(zhí)行INTn指令后,會立即產(chǎn)生一個類型號為n的中斷,轉(zhuǎn)入相應(yīng)的中斷處理程序來完成中斷功能。3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)3.8086中斷源的優(yōu)先級
8086中斷源的優(yōu)先級順序由高到低依次為:
軟件中斷(除單步中斷外)、非屏蔽中斷、可屏蔽中斷、單步中斷。3.58086中斷系統(tǒng)3
8086/8088微處理器結(jié)構(gòu)對同時產(chǎn)生的中斷:首先處理優(yōu)先級別較高的中斷;若優(yōu)先級別相同,則按先來先服務(wù)的原則處理;對非同時產(chǎn)生的中斷:允許低優(yōu)先級別的中斷處理程序被高優(yōu)先級別的中斷源所中斷——中斷嵌套。中斷類型碼:8086可以處理256個中斷請求,每個中斷請求均對應(yīng)于惟一固定的類型碼。被0除類型碼是0,單步為1;NMI為2;斷點中斷為3,溢出中斷為4……等。中斷向量:即中斷服務(wù)程序的入口地址,包括段地址(高字單元)和偏移地址(低字單元)。3.5.2中斷向量與中斷向量表3
8086/8088微處理器結(jié)構(gòu)每個中斷處理程序都有一個唯一的中斷向量。;中斷服務(wù)程序INT_PROCPROCPUSHDXPUSHAX…IRETINT_PROCENDP
INC_PROCPUSHDXPUSHAX┅┅IRET中斷服務(wù)程序入口地址中斷向量表3.5.2中斷向量與中斷向量表3
8086/8088微處理器結(jié)構(gòu)按中斷類型碼從小到大順序依次存放各類中斷(256種)的中斷向量(中斷服務(wù)程序入口地址)。在內(nèi)存的00000H~003FFH地址范圍內(nèi),大小為1KB。每個中斷向量占用4Bytes,低字為段內(nèi)偏移地址,高字為段基址。中斷類型碼與中斷向量地址的關(guān)系:
設(shè)某類中斷的中斷類型碼為n中斷向量在IVT中的存放地址(向量地址)=4×n3.5.2中斷向量與中斷向量表3
8086/8088微處理器結(jié)構(gòu)例:某系統(tǒng)中鍵盤中斷的類型碼為09H,試問其對應(yīng)中斷服務(wù)程序的入口地址?
40H30H20H10H
0024H0025H0026H0027H1)中斷向量的存放地址由4
n=4
9=36=24H知中斷向量存放在存儲器中從0000:0024H開始的4個單元中,即0024H—0027H單元。存儲器
IP
CS2)由右圖易知鍵盤中斷的中斷處理程序的入口地址為
4030:2010H即可轉(zhuǎn)入鍵盤中斷服務(wù)程序執(zhí)行。1.可屏蔽中斷的中斷過程3.5.38086中斷處理過程3
8086/8088微處理器結(jié)構(gòu)中斷處理過程:包括中斷請求、中斷排隊、中斷響應(yīng)、中斷處理、中斷返回等全過程。(1)CPU響應(yīng)可屏蔽中斷的條件外設(shè)提出中斷申請;本中斷未被中斷控制器屏蔽;本中斷優(yōu)先級最高;CPU允許中斷;(2)CPU響應(yīng)可屏蔽中斷的過程CPU在每條指令的最后一個T周期,檢測INTR,若為高電平,且IF=1,則CPU響應(yīng)中斷。響應(yīng)過程中自動依次完成以下工作:CPU向外設(shè)發(fā)兩個/INTA,外設(shè)收到第2個/INTA后,立即通過數(shù)據(jù)線給CPU送中斷類型號。CPU從數(shù)據(jù)線上讀取中斷類型號將Flags內(nèi)容入棧保護現(xiàn)行程序的控制標(biāo)志及其運行結(jié)果產(chǎn)生的狀態(tài)標(biāo)志。3.5.38086中斷處理過程3
8086/8088微處理器結(jié)構(gòu)(2)CPU響應(yīng)可屏蔽中斷的過程關(guān)中斷(清IF和TF)
為了防止在進入中斷處理,但并未執(zhí)行中斷程序這段時間內(nèi)又響應(yīng)新的中斷。保護斷點將當(dāng)前指令的下一條指令的CS和IP入棧,使中斷處理完成后能正確的回到原程序處繼續(xù)執(zhí)行。轉(zhuǎn)入相應(yīng)的中斷服務(wù)子程序;中斷返回從堆棧中彈出斷點的地址(IP和CS)和Flags的內(nèi)容,返回主程序的斷點處,繼續(xù)執(zhí)行主程序。3.5.38086中斷處理過程3
8086/8088微處理器結(jié)構(gòu)2.非屏蔽中斷和軟件中斷的執(zhí)行過程3.5.38086中斷處理過程3
8086/8088微處理器結(jié)構(gòu)3.中斷類型碼的形成中斷入口地址依賴中斷類型號,中斷型號獲取方法:對于專用中斷:除法出錯、單步中斷、不可屏蔽中斷、斷點中斷和溢出中斷,由CPU分別提供中斷類型號0~4(內(nèi)部行成);對于用戶自己確定的軟件中斷INTn,類型號由n決定;對于INTR引腳上的中斷:由硬件電路設(shè)計產(chǎn)生中斷類型號可用8259A獲取中斷類型號3.5.38086中斷處理過程3
8086/8088微處理器結(jié)構(gòu)3.6.18086系統(tǒng)總線結(jié)構(gòu)3.68086微處理器外部基本引腳與工作模式3
8086/8088微處理器結(jié)構(gòu)最小模式:系統(tǒng)中只有8086一個微處理器,所有的總線控制信號均為8086產(chǎn)生,系統(tǒng)中的總線控制邏輯電路,減少到最少。最大模式:用于大型(中型)8086系統(tǒng)中。系統(tǒng)總是包含有兩個或多個微處理器,其中一個主處理器就是8086,還有協(xié)處理器8087、8089等。通常由專門的總線控制器(8288)產(chǎn)生總線控制信號。8086采用雙列直插式(DoubleInlinePackage,DIP)封裝,具有40條引腳,使用+5V電源供電。3.68086微處理器外部基本引腳與工作模式3
8086/8088微處理器結(jié)構(gòu)40引腳線地址線數(shù)據(jù)線控制線狀態(tài)線電源線定時線時鐘頻率有3種:5MHz(8086)、8MHz(8086-1)和10MHz(8086-2)。其引腳信號如圖3.13所示,括號內(nèi)為最大模式時的引腳名稱。3.68086微處理器外部基本引腳與工作模式3
8086/8088微處理器結(jié)構(gòu)表3.28086引腳信號定義3.6.2兩種模式下公用的引腳信號3.68086微處理器外部基本引腳與工作模式3
8086/8088微處理器結(jié)構(gòu)所謂三態(tài)是指總線輸出可以有三個狀態(tài):高電平、低電平和高阻狀態(tài)。當(dāng)處于高阻狀態(tài)時,該總線在邏輯上與所有連接負載斷開。地址總線、數(shù)據(jù)總線、狀態(tài)信號(1)AD15~AD0(2~16,39)地址/數(shù)據(jù)復(fù)用總線;雙向、三態(tài);分時輸出低16位地址信號及進行數(shù)據(jù)信號的輸入/輸出。A15-A0:T1輸出訪問存儲器或I/O的地址信息。D15-D0:T2-T4輸出與存儲器和I/O設(shè)備交換數(shù)據(jù)信息。3.6
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 買賣合同模板集錦六篇
- 2024年版短期租房合同樣本
- 2024年版智能家居玻璃膠采購與供應(yīng)合同
- 大班社會教案4篇
- 公司市場部工作計劃模板
- 客服人員個人工作總結(jié)總結(jié)計劃
- 2021-2026年中國抗貧血藥鐵劑行業(yè)市場全景調(diào)研及投資規(guī)劃建議報告
- 一年級語文老師述職報告
- 2022年中職教師工作計劃個人
- 三年級上冊數(shù)學(xué)說課稿范文集錦七篇
- 2024年金融工作會議
- 2024年人教版八年級生物上冊期末考試卷(附答案)
- 2024年叉車租賃合同經(jīng)典版(四篇)
- 環(huán)保工程施工安全檢查表
- 人教版五年級上冊數(shù)學(xué)期末考試試卷含答案
- 小學(xué)科學(xué)青島版(六三制)六年級上冊全冊教案(共25課)(2022秋)
- 2024焊接工藝規(guī)程
- 外研版(2024新版)七年級上冊英語期末復(fù)習(xí)Unit1~6共6套學(xué)業(yè)質(zhì)量檢測試卷匯編(含答案)
- 藥理學(xué)期末試卷
- 小學(xué)高年級課后服務(wù) scratch3.0編程教學(xué)設(shè)計 一階第27課 植物大戰(zhàn)僵尸-僵尸來襲教學(xué)設(shè)計
- 2024年人民日報社招聘應(yīng)屆高校畢業(yè)生85人筆試高頻難、易錯點500題模擬試題附帶答案詳解
評論
0/150
提交評論