微機原理課程總結 第2章

2021-10-15 19:14:09 字數 4740 閱讀 6952

第2章 8086微處理器及其系統

教材選擇8086作為教學主要內容,是因為8086是intel80x86系列微處理器的基礎,具有典型結構,便於教學入門,有利於學生在有限的學時內掌握微處理器的體系結構和程式設計原理。8086cpu具有16位資料匯流排和20位位址匯流排,資料匯流排與位址匯流排分時復用,直接定址範圍為1mb。8086的乙個突出特點是多重處理能力,用8086cpu與8087數學協處理器以及8089i/o處理器組成的多處理器系統,可大大提高其資料處理和輸入/輸出能力。

80x86是構成ibm pc個人計算機的核心,

掌握 8086微處理器為更高階微處理器的學習打下堅固的基礎。

學習8086微處理器要從三個方面進行,即:

● 8086微處理器的組織結構

● 8086微處理器的工作模式

● 8086微處理器的操作時序

2.1 分析教材內容

以下我們以8086微處理器的組織結構、8086微處理器的工作模式和8086微處理器的操作時序三個方面內容為重點進行分析。

2.1.1 分析重點、難點問題

1. 8086微處理器的組織結構

從程式設計師的角度看到的8086cpu的結構如圖2-1所示。可以看出8086cpu由執行部件(eu)和匯流排介面部件(biu)兩部分組成。

1) 執行部件(eu)

執行部件由內部暫存器組、算術邏輯運算單元(alu)與標誌暫存器(fr)及內部控制邏輯3部分組成。

① 內部暫存器組。8086共有8個16位的內部暫存器,分為兩組。

● 通用資料暫存器。4個通用資料暫存器ax、bx、cx、dx均可用作16位暫存器也可用作8位暫存器。用作8位暫存器時分別記為ah、al、bh、bl、ch、cl、dh、dl。

ax(ah、al):累加器。有些指令約定以ax(或al)為源或目的暫存器。輸入/輸出指令必須通過ax或al實現。

bx(bh、bl):基址暫存器。bx可用作間接定址的位址暫存器和基位址暫存器,bh、bl可用作8位通用資料暫存器。

cx(ch、cl):計數暫存器。cx在迴圈和串操作中充當計數器,指令執行後cx內容自動修改,因此稱為計數暫存器。

dx(dh、dl):資料暫存器。除用作通用暫存器外,在i/o指令中可用作埠位址暫存器,乘除指令中用作輔助累加器。

圖2-1 8086/8088 cpu 內部結構圖

● 指標和變址暫存器。

bp(basic pointer register):基址指標暫存器。

sp(stack pointer register):堆疊指標暫存器。

si(source index register):源變址暫存器。

di(destination index register):目的變址暫存器。

bp、sp稱為指標暫存器,用來指示相對於段起始位址的偏移量。bp和sp一般用於堆疊段。si、di稱為變址暫存器,可用作間接定址、變址定址和基址變址定址的暫存器。

si一般用於資料段,di一般用於資料段或附加段。

② 算術邏輯單元(alu)及標誌暫存器(fr)。算術邏輯單元完成16位或8位算術邏輯運算。運算結果送上alu內部資料匯流排,同時在標誌暫存器中建立相應的標誌。

標誌暫存器是乙個16位暫存器,使用其中的9位作為條件標誌和控制標誌。條件標誌(6位)根據算術邏輯運算結果由硬體自動設定,它們反映運算結果的某些特徵或狀態,可作為後繼操作(如條件轉移)的判斷依據。控制標誌(3位)由使用者通過指令來設定,它們可控制機器或程式的某些執行過程。

標誌暫存器的內容如下:

● 條件標誌(狀態標誌)。共6位,用於寄存程式執行的狀態資訊,這些標誌往往用作後續指令判斷的依據。此處很重要,請細讀。

cf(carry flag):進製標誌,反映在運算結果的最高位有無進製或借位。如果運算結果的最高位產生了進製(加法)或借位(減法)則cf=1,否則cf=0。

pf(parity flag):奇偶標誌,反映運算結果中「1」的個數的奇偶性,主要用於判斷資料傳送過程中是否出錯。若結果的低8位中有偶數個「1」則pf=1,否則pf=0。

af(auxiliary carry flag):輔助進製標誌,又稱半進製標誌。加減運算時,若d3向d4產生了進製或借位則af=1,否則af=0。

在bcd碼運算時,該標誌用於十進位制調整。

sf(sign flag):符號標誌,反映運算結果最高位即符號位的狀態。如果運算結果的最高位為1則sf=1(對帶符號數即為負數),否則sf=0(對帶符號數即為正數)。

of(overflow flag):溢位標誌,反映運算結果是否超出了帶符號數的表數範圍。若超出了機器的表數的範圍,即為產生溢位,則of=1,否則of=0。

對於位元組運算,結果範圍應是-128~+127,字運算的結果範圍是-32768~+32767。機器實際處理時判斷是否溢位的方法是根據最高位的進製(cf)與次高位的進製是否相同來確定,若兩者不相同則of=1(表示有溢位),否則of=0(表示無溢位)。

例如:為簡化書寫以位元組操作為例:10001000+10001100

二進位制運算十六進製制運算帶符號數運算無符號數運算

1000 100088h120136

+ 1000 11008ch116140

t': 'span', 'c': '1', 'r':

'r_4'}] 0001 0100t': 'span', 'c': '1', 'r':

'r_4'}] 14h236276 =256+20

方框中的1表示結果超出位元組部分。運算結果標誌位如下:cf=1,pf=1,af=1,zf=0,sf=0,of=1。

因為d7位進製為1,d6位進製為0,所以產生溢位,of=1。由運算結果應為-236也可以看出,顯然已經超出了單位元組帶符號數的表示範圍。因此有溢位時,運算結果對帶符號數來說是錯誤的,程式設計師應做適當處理。

如果把運算看作是無符號數運算,cf=1表示最高位有進製,進製的二進位制真值相當於28=256,加上本位元組結果00010100b即20,顯然結果是正確的。因此對於無符號數,進製位是有效結果的一部分,程式設計師必須在隨後的運算中予以正確處理。

● 控制標誌(3位)。用於控制機器或程式的某些執行過程。

df(direction flag):方向標誌,用於串處理指令中控制串處理的方向。當df=1時,每次操作後變址暫存器si、di自動減量,因此處理方向是由高位址向低位址方向進行。

當df=0,則si、di自動增量,處理方向由低位址向高位址方向進行。該標誌由方向控制指令std或cld設定或清除。

if(interrupt flag):中斷允許標誌,用於控制cpu是否允許響應可遮蔽中斷請求。if=1為允許響應可遮蔽中斷請求,if=0則禁止響應可遮蔽中斷請求。

該標誌可由中斷控制指令sti或cli設定或清除。

tf(trap flag):陷阱標誌,用於單步操作。tf=1時,每執行一條使用者程式指令後自動產生陷阱,進入系統的單步中斷處理程式。

tf=0時,使用者程式會連續不斷地執行,不會產生單步中斷。

③ 內部控制邏輯電路。它是eu的內部控制系統,主要功能為從指令佇列緩衝器中取出指令,對指令進行解碼,並產生各種控制訊號,控制各部件的協同工作以完成指令的執行過程。

2) 匯流排介面部件(biu)

匯流排介面部件負責cpu與儲存器、i/o裝置之間傳送資料、位址、狀態及控制資訊,它由段暫存器(cs、ds、ss、es)、指令指標暫存器(ip)、位址加法器、內部暫存器(對使用者透明,使用者無權訪問)、指令佇列緩衝器及i/o控制邏輯等部分組成,分別介紹如下:

① 段位址暫存器(cs、ds、ss、es)。8086cpu內部資料結構是16位的,即所有的暫存器都是16位的,而外部定址空間為1mb,即需要20位位址線。為了能用內部暫存器中的16位位址來定址1mb空間,8086將1mb空間以16位元組為乙個記憶體節(paragraph),共分成64k個節如圖2-2(a)所示。

用於存放段位址的暫存器稱為段暫存器,根據其主要用途,分為**段暫存器cs、資料段暫存器ds、堆疊段暫存器ss、附加段暫存器es。

● **段暫存器cs:**段是存放程式**的儲存區域,**段暫存器用來存放**段儲存區域的起始位址。

● 資料段暫存器ds:資料段是存放程式中所使用的資料的儲存區域,資料段暫存器用來存放程式的資料儲存區的起始位址。

● 堆疊段暫存器ss:堆疊是按照後進先出原則組織的一段特殊儲存區域,主要用於子程式呼叫時斷點和返回位址的儲存和恢復,也可用於資料的傳送。堆疊段暫存器用來存放堆疊儲存區的起始位址。

由堆疊段暫存器ss與堆疊指標暫存器sp來確定當前堆疊指令的操作位址。

● 附加段暫存器es:附加段是為某些字串操作指令存放目的運算元而設定的乙個附加的資料段,附加段暫存器用來存放該附加資料段儲存區域的起始位址。

圖2-2 儲存器的分段、實體地址形成及儲存位址分配

注意!8086系統的實體地址是乙個20位的位址,實體地址的獲得方法是:

將段暫存器的內容左移4位(即×16),與邏輯位址(又稱偏移位址或有效位址,即對段首的偏移量)相加,得到20位實體地址(如圖2-2(b)所示)。

程式執行期間,段暫存器內容很少變化,段位址不變。偏移位址從0000h~ffffh變化時,對應64kb的空間,所以乙個程式段空間最大可達64kb。64kb記憶體空間稱為乙個記憶體段(簡稱為段)。

各段可以互不重疊(如圖2-2(c)所示),也可將某幾個段安排在同乙個64kb的空間上(如圖2-2(d)所示),或使某些段重迭部分儲存空間,如使**段從20000h單元開始,資料段從21000h單元開始。

② 位址加法器。用於產生20位實體地址。兩個加數,乙個來自段暫存器並左移4位,另一位來自ip或內部暫存器。

內部暫存器的內容根據不同的定址方式,可以通過內部匯流排由內部暫存器提供,也可由輸入/輸出控制電路從儲存器中讀取。

③ 指令指標暫存器(ip)。又稱程式計數器,是16位暫存器。ip中存放當前將要執行的指令的有效位址,每取出一條指令ip自動增量,即指向了下一條指令(亦即下次要執行的指令),因此可以說ip總是指向將要執行的指令。

微機原理課程設計

學號0814206 微型計算機原理與接 術 課程設計 2008級本科 題目 交通燈控制系統 系 部 院 物理與機電工程學院 專業電氣工程及其自動化 作者姓名 董光鵬 指導教師 張靜職稱 副教授 完成日期 2011 年 6 月 30 日 課程設計任務書 2011 年秋季學期 前言隨著計算機科學技術的不...

微機原理總結

指令指標暫存器ip始終存有相對於當前指令段起點偏移量的下一條指令,即ip總是指向下一條待執行的指令。5 簡述8086系統中實體地址的形成過程。8086系統中的實體地址最多有多少個?邏輯位址呢?答 8086系統中的實體地址是由20根位址匯流排形成的。8086系統採用分段並附以位址偏移量辦法形成20位的...

微機原理總結

記得剛要上這門課的時候,學長就跟說這是一門很重要很有用的課程,對今後的一些課程設計或者是做一些專案之類的都有很大的幫助,特別是對畢業就想找工作的人來說學會微控制器就更重要了,所以我一直都很認真的在聽課,但是由於去參加北京市的電子設計大賽,老師允許我們不用做這門課的實驗,再加上這門課平時就沒有什麼要做...