z2009微機原理第一章_第1頁
z2009微機原理第一章_第2頁
z2009微機原理第一章_第3頁
z2009微機原理第一章_第4頁
z2009微機原理第一章_第5頁
已閱讀5頁,還剩61頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

微機原理南京理工大學(xué)機械工程學(xué)院張衛(wèi)機械樓304室課程目標微機原理是學(xué)習(xí)和掌握微機硬件知識和匯編語言程序設(shè)計的入門課程:微型計算機的基本工作原理匯編語言程序設(shè)計微型計算機接口技術(shù)建立微型計算機系統(tǒng)的整體概念,形成微機系統(tǒng)軟硬件開發(fā)的初步能力基本要求(1)了解微型計算機的基本組成和硬件、軟件的基本概念;(2)掌握Intel8086/8088CPU的功能結(jié)構(gòu)和工作原理;(3)掌握Intel8086/8088CPU的指令系統(tǒng)和基本的匯編語言程序設(shè)計方法;(4)掌握微型計算機存儲器的組織和擴展,以及中斷基本概念和中斷技術(shù);(5)深入地了解微機系統(tǒng)的基本接口技術(shù),掌握常用接口芯片的應(yīng)用。主要參考書王建宇等,微型計算機原理及應(yīng)用,電子工業(yè)出版社,2005雷麗文等,微機原理與接口技術(shù),電子工業(yè)出版社,2005雷麗文等,微機原理與接口技術(shù)——學(xué)習(xí)指導(dǎo)與實驗,電子工業(yè)出版社,2001戴梅萼史嘉權(quán),微型計算機技術(shù)及應(yīng)用,清華大學(xué)出版社,2003戴梅萼,微型計算機技術(shù)及應(yīng)用——習(xí)題、實驗題與綜合訓(xùn)練題集,清華大學(xué)出版社,2004課程大綱1微型計算機概述

(10)28086/8088的指令系統(tǒng) (10)3匯編語言程序設(shè)計 (6)4存儲器系統(tǒng) (4)5中斷系統(tǒng) (8259A) (4)6輸入輸出接口(8253,8255A) (6)實驗:(8)1熟悉匯編語言程序的編輯、連接、運行過程和調(diào)試方法匯編語言程序設(shè)計、編制與調(diào)試運行可編程并行接口芯片8255A的應(yīng)用4中斷控制器8259A的應(yīng)用第一章微型計算機概述1.1微機發(fā)展概述1.2微型計算機的工作過程1.38086/8088微處理器1.48086/8088CPU典型時序分析

1.1

微機發(fā)展概述

1.1.1微型計算機系統(tǒng)的基本概念

1.1.2微型計算機的常用術(shù)語和指標

1.1.3微型計算機的發(fā)展

1.1.4微型計算機系統(tǒng)的特點系統(tǒng)軟件應(yīng)用軟件微處理器硬件軟件微型計算機系統(tǒng)微型計算機外設(shè)電源算術(shù)邏輯部件(ALU)累加器、寄存器控制部件內(nèi)部總線鍵盤、鼠標顯示器軟驅(qū)、硬盤、光驅(qū)打印機、掃描儀微型計算機系統(tǒng)的三個層次存儲器(ROM,RAM)I/O接口系統(tǒng)總線

1.1.2微型計算機的常用術(shù)語和指標1.位、字節(jié)和字

位(bit)是計算機所能表示的最小最基本的數(shù)據(jù)單位它指的是取值只能為0或1的一個二進制數(shù)值位。位作為單位時記作b

。

字節(jié)(byte)由8個二進制位組成,通常用作計算存儲容量的單位,字節(jié)作為單位時記作B

。

字(Word)由16個二進制位組成,通常定義為兩個字節(jié)為一個字,字作為單位時記作

W。

K是kelo的縮寫,1K=1024=210個字節(jié);

M是mega的縮寫,1M=1024K=220個字節(jié);

G是giga的縮寫,1G=1024M=230個字節(jié);

T是tera的縮寫,1T=1024G=240個字節(jié)。4.MIPS微型計算機常用術(shù)語和指標

MIPS是MillionsofInstructionPerSecond的縮寫,用來表示微處理器的性能,意思是每秒鐘能執(zhí)行多少百萬條指令由于執(zhí)行不同類型的指令所需時間長度不同,所以MIPS通常是根據(jù)不同指令出現(xiàn)的頻度乘上不同的系數(shù)求得的統(tǒng)計平均值。主頻為25MHz的80486其性能大約是20MIPS,

主頻為400MHz的PentiumII的性能為832MIPS5.微處理器的生產(chǎn)工藝指在硅材料上生產(chǎn)微處理器時內(nèi)部各元器件間連接線的寬度,一般以m為單位,數(shù)值越小,生產(chǎn)工藝越先進,微處理器的功耗和發(fā)熱量越小。目前微處理器的生產(chǎn)工藝連接線寬度已經(jīng)達到32nm微型計算機常用術(shù)語和指標6.微處理器的集成度指微處理器芯片上集成的晶體管的密度。最早Intel4004的集成度為2250個晶體管,酷睿i7四核的集成度已經(jīng)達到7.31億個晶體管以上,集成度提高了30萬多倍。1.1.4微型計算機系統(tǒng)的特點1)體積小,重量輕采用大規(guī)模集成電路(LSI)和超大規(guī)模集成電路(VLSI),使微型機所含的器件數(shù)目大為減少,體積也大為縮小,可嵌入各種儀器和設(shè)備中。2)價格低根據(jù)摩爾定律,計算機的性能每18個月提高一倍,即計算機芯片的價格每18個月降低一倍。3)可靠性高,結(jié)構(gòu)靈活計算機內(nèi)部元器件數(shù)目少,連線較少,使微型機的可靠性提高。4)功能強,性能高目前由于微型機的發(fā)展,很多微型機的功能都已超過以前的一些小型機。5)應(yīng)用面廣

目前微型機不僅占領(lǐng)了中小型機的各個應(yīng)用領(lǐng)域,且已經(jīng)滲透到我們生活的每一角落,可以說現(xiàn)代社會已離不開計算機。

一)計算機中的進位計數(shù)制

1)進位計數(shù)制的表示法(P55)

十進制D:

二進制B:

八進制O/Q:

十六進制H:

1.1.5計算機中數(shù)的表示和編碼2)進位計數(shù)制之間的轉(zhuǎn)換二)計算機中常用的編碼(雷P7)1)BCD碼(Binary-CodedDecimal)(P37)

二進制編碼的十進制數(shù)例:(100010010001.01000101)BCD=891.45D

用29H/0209H表達29D

2)ASCII碼(AmericanNationalStandardCodeforInformationInterchange)(附錄A)

美國標準信息代碼

0+7位,<20H為不可顯示命令代碼,數(shù)字0011+(0000~1001)B

3)漢字的編碼:中國《信息交換用漢字編碼》內(nèi)碼=國際碼兩字節(jié)首位置1如:啊=B0A1H三)帶符號數(shù)的表示(雷P9)1)機器數(shù)與真值

帶有數(shù)碼化的正負號的數(shù)稱機器數(shù)。

2)原碼

最高位為0表示正數(shù),1表示負數(shù),后面各位為其數(shù)值。

3)反碼

正數(shù)的反碼與原碼相同,負數(shù)的反碼是對應(yīng)的正數(shù)連同符號位按位取反。

4)補碼正數(shù)的補碼與其原碼相同,負數(shù)的補碼為其反碼加1。X補=Y補+(-Z)補8位二進制補碼表示的整數(shù)范圍是-128~+12716位二進制補碼表示的整數(shù)范圍是-32768~+327671.2微型計算機的工作過程1.2.1微機的基本結(jié)構(gòu)和組成1.2.2微型計算機的工作過程1.2.1微型計算機的基本結(jié)構(gòu)和組成一、由微處理器、存儲器、總線、輸入設(shè)備和輸出設(shè)備五大部分組成二、微型計算機的基本結(jié)構(gòu)存儲器I/O接口輸入設(shè)備I/O接口數(shù)據(jù)總線DB控制總線CB地址總線AB輸出設(shè)備CPU總線——連接多個功能部件的一組公共信號線各部件通過總線連接。(內(nèi)部/外部)作用:變部件間復(fù)雜關(guān)系為對總線的單一關(guān)系三、微型計算機的(系統(tǒng))總線結(jié)構(gòu)地址總線AB用來傳送CPU輸出地址的信號線,確定被訪問的存儲單元、I/O端口的地址。地址總線是單向三態(tài)地址總線的條數(shù)決定微處理器的尋址能力2n數(shù)據(jù)總線DB

CPU用來與存儲器、I/O接口之間進行數(shù)據(jù)傳送的信號線,數(shù)據(jù)總線總是雙向三態(tài)數(shù)據(jù)總線的條數(shù)決定微處理器可以傳送的數(shù)據(jù)位數(shù)控制總線CB

CPU用來傳送各種控制信號的,以實現(xiàn)CPU對存儲器、I/O接口和外設(shè)的控制。該組信號線較復(fù)雜。它決定了總線功能的強弱和適應(yīng)性的好壞.算術(shù)邏輯運算部件ALU有兩個輸入端和兩個輸出端。用來與累加器共同完成算術(shù)和邏輯運算。輸入一端接累加器,一端接寄存器陣列。輸出一端接數(shù)據(jù)總線,一端接標志寄存器累加器ACC是一個特殊的寄存器,作為ALU的輸入/輸出數(shù)據(jù)暫存和具有移位功能,所有運算的數(shù)據(jù)都要通過累加器故累加器在微處理器中使用十分頻繁。標志寄存器F又稱狀態(tài)寄存器,是一個特殊的寄存器,用來記錄ALU運算結(jié)果的一些狀態(tài),如符號(S)、進位(C)溢出(OV)、奇偶(P)、結(jié)果為零(Z)等。

1程序計數(shù)器PC

是管理程序運行的特殊功能寄存器,其作用是指明下一條指令在存儲器中的地址,或者說PC指向哪里,程序就運行到哪里。2寄存器陣列包括通用寄存器組、地址寄存器、變址寄存器(SI、DI)和堆棧指示器(SP),用來寄存參與運算的數(shù)據(jù)(操作數(shù))和操作數(shù)的地址。3指令寄存器、指令譯碼器和定時與控制信號電路是用來存放當(dāng)前正在執(zhí)行的指令,以及用來對指令進行分析譯碼,產(chǎn)生執(zhí)行此條命令所需的全部控制信號。4總線緩沖器和內(nèi)部總線內(nèi)部總線把ALU和CPU內(nèi)各寄存器連接起來,分別通過數(shù)據(jù)緩沖器和地址緩沖器與芯片外的系統(tǒng)總線相連。四、微處理器的內(nèi)部結(jié)構(gòu)與基本功能標志寄存器FR寄存器陣列程序計數(shù)器PC(指令指針I(yè)P)累加器ACC指令寄存器IR定時與控制OC指令譯碼器ID地址寄存器MAR數(shù)據(jù)緩沖器MDRALU內(nèi)部數(shù)據(jù)總線控制信號外部信號地址總線AB數(shù)據(jù)總線DB地址緩沖器算術(shù)邏輯運算部件ALU有兩個輸入端和兩個輸出端。用來與累加器共同完成算術(shù)和邏輯運算。輸入一端接累加器,一端接寄存器陣列。輸出一端接數(shù)據(jù)總線,一端接標志寄存器累加器ACC是一個特殊的寄存器,作為ALU的輸入/輸出數(shù)據(jù)暫存和具有移位功能,所有運算的數(shù)據(jù)都要通過累加器故累加器在微處理器中使用十分頻繁。標志寄存器F又稱狀態(tài)寄存器,是一個特殊的寄存器,用來記錄ALU運算結(jié)果的一些狀態(tài),如符號(S)、進位(C)溢出(OV)、奇偶(P)、結(jié)果為零(Z)等。

1程序計數(shù)器PC

是管理程序運行的特殊功能寄存器,其作用是指明下一條指令在存儲器中的地址,或者說PC指向哪里,程序就運行到哪里。2寄存器陣列包括通用寄存器組、地址寄存器、變址寄存器(SI、DI)和堆棧指示器(SP),用來寄存參與運算的數(shù)據(jù)(操作數(shù))和操作數(shù)的地址。3指令寄存器、指令譯碼器和定時與控制信號電路是用來存放當(dāng)前正在執(zhí)行的指令,以及用來對指令進行分析譯碼,產(chǎn)生執(zhí)行此條命令所需的全部控制信號。4總線緩沖器和內(nèi)部總線內(nèi)部總線把ALU和CPU內(nèi)各寄存器連接起來,分別通過數(shù)據(jù)緩沖器和地址緩沖器與芯片外的系統(tǒng)總線相連。四、微處理器的內(nèi)部結(jié)構(gòu)與基本功能標志寄存器FR寄存器陣列程序計數(shù)器PC(指令指針I(yè)P)累加器ACC指令寄存器IR定時與控制OC指令譯碼器ID地址寄存器MAR數(shù)據(jù)緩沖器MDRALU內(nèi)部數(shù)據(jù)總線控制信號外部信號地址總線AB數(shù)據(jù)總線DB地址緩沖器

將事先編制完成由指令序列組成的程序存放到存儲器中,稱程序存儲。逐條地從存儲器中取出指令并完成指令所指定的操作,稱程序控制。執(zhí)行每一條指令,都包括取指、譯碼和執(zhí)行三個基本步驟微型計算機的工作過程,也就是不斷地取指令、譯碼和執(zhí)行的過程取指令,PC值加1

譯碼并執(zhí)行停機?結(jié)束1.2.2微型計算機的工作過程一.程序存儲和程序控制概念(馮·諾依曼概念)二.微型計算機的工作過程舉例計算Y=10+20將Y放到30單元中匯編語言程序

機器指令碼

對應(yīng)的操作MOVAL,10; 1011000000001010B00AH立即數(shù)10送到累加器AL中

ADDAL,20; 00000100000101000414HAL內(nèi)容加立即數(shù)20,結(jié)果在AL中

MOV[30],AL;1010001000011110A21EH將AL中的數(shù)傳送到地址單元30

HLT ;11110100F4H系統(tǒng)暫停

地址譯碼器地址內(nèi)容0000101100000001

000010100002

000001000003

000101000004

101000100005

000111100006

11110100

標志寄存器FR寄存器陣列程序計數(shù)器PC累加器ACC指令寄存器IR定時與控制OC指令譯碼器ID地址寄存器AR數(shù)據(jù)緩沖器DRALU內(nèi)部數(shù)據(jù)總線控制信號外部信號地址緩沖器

地址總線數(shù)據(jù)總線三.微型計算機的工作過程0000000100000001000200001010指令寄存器IR10110000指令譯碼器ID定時與控制OC地址寄存器0000地址緩沖器第一步取指周期地址譯碼器0001數(shù)據(jù)緩沖器

DR10110000+1第二步存儲器讀周期地址寄存器0001地址緩沖器地址譯碼器數(shù)據(jù)緩沖器

DR00001010累加器ACC00001010地址譯碼器地址內(nèi)容0000101100000001

000010100002

000001000003

000101000004

101000100005

000111100006

11110100

標志寄存器FR寄存器陣列程序計數(shù)器PC累加器ACC指令寄存器IR定時與控制OC指令譯碼器ID地址寄存器AR數(shù)據(jù)緩沖器DRALU內(nèi)部數(shù)據(jù)總線控制信號外部信號地址緩沖器

地址總線數(shù)據(jù)總線三.微型計算機的工作過程0000000100000001000200001010指令寄存器IR10110000指令譯碼器ID定時與控制OC地址寄存器0000地址緩沖器第一步取指周期地址譯碼器0001數(shù)據(jù)緩沖器

DR10110000+1第二步存儲器讀周期地址寄存器0001地址緩沖器地址譯碼器數(shù)據(jù)緩沖器

DR00001010累加器ACC000010101.38086/8088

微處理器1.3.18086/8088CPU的編程結(jié)構(gòu)1.3.2存儲器組織1.3.38086/8088CPU引線及其功能1.3.48086/8088CPU工作模式及系統(tǒng)構(gòu)成1.38086/8088

微處理器8086/8088微處理器是Intel公司推出的第三代CPU芯片;8086和8088CPU的內(nèi)部結(jié)構(gòu)基本相同,但它們的外部性能有所不同;8086是16位外部數(shù)據(jù)總線,而8088是8位外部數(shù)據(jù)總線;在處理16位數(shù)時,8088需要兩步操作,而8086只需一步;8086/8088CPU內(nèi)部都采用16位結(jié)構(gòu)進行操作及存儲器尋址;兩種處理器都封裝在相同的40腳雙列直插組件(DIP)中;有20根地址線,可直接尋址的范圍都為220字節(jié);1.3.18086/8088CPU的編程結(jié)構(gòu)8086/8088CPU的功能結(jié)構(gòu)2.8086/8088CPU的內(nèi)部寄存器1)執(zhí)行部件EU(ExecutionUnit)

包括ALU(運算器)、通用寄存器和狀態(tài)寄存器負責(zé)指令的執(zhí)行進行16位的各種算術(shù)和邏輯運算計算16位有效偏移地址EA(EffectAddress)2)總線接口部件BIU(BusInterfaceUnit)

包括段寄存器、指令指針、地址加法器和指令隊列緩沖器。負責(zé)與存儲器和I/O設(shè)備傳送數(shù)據(jù)。

2)總線接口部件BIU

①指令流隊列

8086的指令隊列為六個字節(jié),8088的指令隊列為四個字節(jié)。CPU

執(zhí)行指令同時,取出下一條指令或下幾條指令,放在指令隊列中。執(zhí)行完一條指令就可以立即執(zhí)行下一條指令,從而提高了CPU的效率。

2)總線接口部件

②地址加法器Σ

地址加法器將16位的段地址CS左移4位和16位的有效偏移地址IP

相加,生成20位的物理地址。例:

CS=0FE00HIP=0400H20位的物理地址=0FE400H

3)流水線技術(shù)原則

①每當(dāng)8086的指令隊列中有兩個空字節(jié),或者8088的指令隊列中有一個空字節(jié)時,總線接口部件就會自動把指令取到指令隊列中。

3)流水線技術(shù)原則

②在執(zhí)行指令的過程中,如果必須訪問存儲器或者輸入/輸出設(shè)備,

EU就會請求BIU,進入存取操作數(shù)總線周期。如果BIU處于空閑狀態(tài),將立即響應(yīng)EU的總線請求。若BIU正在取指令字節(jié)到指令隊列中,則

BIU將先完成取指令的總線周期,再響應(yīng)EU發(fā)出的訪問總線的請求。

3)流水線技術(shù)原則

③當(dāng)指令隊列已滿,而且執(zhí)行部件EU又沒有總線訪問請求時,總線接口部件BIU便進入空閑狀態(tài)。④在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時,BIU使指令隊列中的原有內(nèi)容被自動消除,并從新的地址單元取指令,立即送EU執(zhí)行。

總線接口部件BIU(BusInterfaceUnit)執(zhí)行部分EU(ExecutionUnit)狀態(tài)標志寄存器運算寄存器SPBPDISICS123456執(zhí)行部件控制電路輸入輸出控制電路AHALBHBLCHCLDHDLALU指令隊列緩沖器內(nèi)部總線外部總線DSSSESIP內(nèi)部暫存器Σ16位20位地址加法器段寄存器AHALBHBLCHCLDHDLSPBPDISI狀態(tài)標志寄存器運算寄存器執(zhí)行部件控制電路ALUCS123456輸入輸出控制電路DSSSESIP內(nèi)部暫存器Σ123456CSIPΣ000004190151.8086/8088CPU的功能結(jié)構(gòu)

2.8086/8088CPU的內(nèi)部寄存器

包括數(shù)據(jù)寄存器、指針寄存器、變址寄存器、控制寄存器和段寄存器狀態(tài)標志寄存器運算寄存器SPBPDISICS123456執(zhí)行部件控制電路輸入輸出控制電路AHALBHBLCHCLDHDLALU指令隊列緩沖器內(nèi)部總線外部總線DSSSESIP內(nèi)部暫存器Σ16位20位地址加法器段寄存器執(zhí)行部分(EU)總線接口部件(BIU)SPBPDISIAHALBHBLCHCLDHDLCSDSSSESIP內(nèi)部暫存器狀態(tài)標志寄存器1)數(shù)據(jù)寄存器

AX:累加器字乘法、字除法、字I/O

AH:字節(jié)乘、字節(jié)除

AL:字節(jié)乘、字節(jié)除、字節(jié)I/O、查表和十進制運算

BX:基址寄存器查表時存放表的首地址

CX:計數(shù)寄存器數(shù)據(jù)串操作、循環(huán)次數(shù)

CL:變量位移、循環(huán)控制

DX:數(shù)據(jù)寄存器字節(jié)乘、字節(jié)除、間接I/O地址

8086/8088CPU的內(nèi)部寄存器AHALBHBLCHCLDHDLAXBXCXDX2)指針寄存器

8086/8088的指針寄存器有兩個SP和BP

SP是堆棧指針寄存器:和堆棧段寄存器SS一起來確定堆棧的棧頂在內(nèi)存中的偏移地址,又稱棧頂指針

BP是基址指針寄存器:通常用于存放數(shù)據(jù)區(qū)基址偏移地址。

SPBP8086/8088CPU的內(nèi)部寄存器3)變址寄存器

8086/8088的變址寄存器有兩個SI和DI,都用于指令的變址尋址

SI是源變址寄存器:通常指向源操作數(shù)。用來存放當(dāng)前數(shù)據(jù)段中源操作數(shù)地址偏移量

DI是目的變址寄存器:通常指向目的操作數(shù)。用來存放當(dāng)前數(shù)據(jù)段中目標操作數(shù)地址偏移量

SIDI8086/8088CPU的內(nèi)部寄存器4)控制寄存器

8086/8088的控制寄存器有指令指針寄存器IP

和標志寄存器F①IP是指令指針寄存器,它和代碼段寄存器CS一起可以確定當(dāng)前所要取指令的內(nèi)存地址。但不一定是將要執(zhí)行的指令。順序執(zhí)行程序時,CPU每取一個指令字節(jié),IP自動加1,指向下一個要讀取的字節(jié)。當(dāng)IP單獨改變時,會發(fā)生段內(nèi)轉(zhuǎn)移。當(dāng)CS和IP同時改變時,會產(chǎn)生段間的程序轉(zhuǎn)移。IP狀態(tài)標志寄存器8086/8088CPU的內(nèi)部寄存器進位標志位(CarryFlag)CF=1表示加法或減法運算結(jié)果,在最高位上產(chǎn)生進位或借位;

CF=0則表示無進位或借位。

CFCF奇偶標志位(ParityFlag)

PF=1表示運算結(jié)果中l(wèi)的個數(shù)為偶數(shù);

PF=0表示運算結(jié)果中l(wèi)的個數(shù)為奇數(shù);

PF0100100000001000輔助進位標志位(AuxiliaryFlag),也稱半進位標志位。

AF=1表示運算結(jié)果的低4位產(chǎn)生進位或借位;

AF=0表示無進位或借位;該標志位通常用于對BCD算術(shù)運算結(jié)果的調(diào)整。

AF零標志位(ZeroFlag)

ZF=1表示運算結(jié)果各位都為0;

ZF=0表示結(jié)果非零;

ZF符號標志位(SignFlag)

SF=1表示帶符號數(shù)的運算結(jié)果為負,即運算結(jié)果的最高位為1;

SF=0表示運算結(jié)果為正;

SF10溢出標志位(OverflowFlag)

OF=1表示帶符號數(shù)的算術(shù)運算結(jié)果產(chǎn)生溢出,即結(jié)果超出了帶符號數(shù)所能表達的范圍,次高位向符號位進位或借位而最高位無進位

OF=0表示結(jié)果無溢出;OF中斷允許標志位(InterruptFlag)。

IF=1表示中斷開放,可以響應(yīng)可屏蔽中斷,允許接受外部從

INTR引腳發(fā)來的中斷請求;

IF=0表示關(guān)閉中斷,不接受從

INTR引腳發(fā)來的中斷請求;

STI指令設(shè)置使IF=1;

CLI指令清零使IF=0;IF方向標志位(DirectionFlag)DF=1表示數(shù)據(jù)串指令將以地址遞減的順序?qū)?shù)據(jù)串進行處理即從高地址到低地址處理數(shù)據(jù)串;DF=0表示數(shù)據(jù)串指令將以地址遞增的順序?qū)?shù)據(jù)串進行處理

STD指令設(shè)置使DF=1;CLD指令清零使DF=0;

DF陷阱標志位(TrapFlag)也稱單步標志位。TF=1表示8086/8088進入單步指令工作方式。在每條指令開始執(zhí)行前,CPU先測試T標志位是否為1。如果為1,那么該指令執(zhí)行后將產(chǎn)生陷阱中斷,從而執(zhí)行陷阱中斷處理程序。其作用是將指令執(zhí)行后CPU內(nèi)部寄存器的情況顯示出來,該標志通常用于程序的調(diào)試。例如,在系統(tǒng)調(diào)試軟件DEBUG中的T命令,就是利用它來進行程序的單步跟蹤。TF4)控制寄存器

②F標志寄存器

也常稱它為狀態(tài)標志寄存器,用來存放8086/8088CPU在工作過程中的狀態(tài)。狀態(tài)標志寄存器是一個16位的寄存器。8086/8088中用了9位,這些標志位的含義如下:OFDFIFTFSFZFAFPFCF1514131211109876543210OFDFIFTFSFZFAFPFCF8086/8088CPU的內(nèi)部寄存器

求運算后結(jié)果?

0010001101000101B + 0011001000011001B

OFSFZFAFPFCF151413121110987654321001010101

01011110BF標志寄存器5)段寄存器

段寄存器用來存放各個段的首地址。

8086/8088微處理器具有四個段寄存器:

CS:代碼段寄存器(CodeSegment),劃定并控制程序區(qū);

DS:數(shù)據(jù)段寄存器(DataSegment),控制數(shù)據(jù)區(qū);

SS:堆棧段寄存器(StackSegment),控制堆棧區(qū);

ES:附加段寄存器(ExtraSegment),控制數(shù)據(jù)區(qū);這些段寄存器存放的首地址與有效的地址偏移量一起可確定內(nèi)存的物理地址。8086/8088CPU的內(nèi)部寄存器CSDSSSESIP1.3.28086/8088CPU的存儲器組織

8086/8088具有20根地址線,其可尋址的內(nèi)存空間為220=1MB,內(nèi)部寄存器都只有16位,是不能尋址1MB存儲空間的。故引入了分段的概念1.分段結(jié)構(gòu)每個段具有64KB的存儲空間,1MB的存儲空間可分為16個邏輯段,各邏輯段允許在整個存儲空間浮動,且有如下幾種使用方式:各段可以不相連,即段與段之間有空閑存儲單元;各段可以連續(xù)排列,段與段之間沒有空閑存儲單元;各段可以部分重疊,段與段之間可以交叉;各段可以完全重疊,可令CS、SS、DS相等,使各段合并;對任何一個物理地址,可以唯一地被包含在一個邏輯段中,也可以在多個相互重疊的多個邏輯段中。64KB邏輯段1起點邏輯段10FFFFH64KB1FFFFH10000H64KB00000H0FFFFFH各段連續(xù)排列64KB邏輯段2起點邏輯段264KB邏輯段4、5起點邏輯段4、564KB邏輯段3起點邏輯段3各段靈活排列1MB存儲空間分段邏輯結(jié)構(gòu)圖示20000H2FFFFH64KB0F0000H64KB16個邏輯段1MB??????2.段地址、邏輯地址和物理地址物理地址:也稱絕對地址,是唯一的;邏輯地址:由段基址和偏移量兩部分組成,其表示形式——段基址:偏移量;段基址:

是段寄存器給出的16位段起始地址,來自段寄存器;偏移量:

為存儲單元相對于段起始地址的16位偏移地址EA,

偏移量通常來自指令指針寄存器IP、基址寄存器BP、堆棧指針寄存器SP和變址寄存器SI、DI;在訪問具體存儲單元時,物理地址都是通過邏輯地址運算得出,每個內(nèi)存單元的物理地址都是唯一的,同一個物理地址可以由不同的邏輯地址來構(gòu)成。加法器段寄存器的內(nèi)容×16(相當(dāng)于左移4位)變?yōu)?0位,再加上16位的偏移地址(有效偏移地址,EA),便可得到20位的物理地址。

物理地址的形成物理地址=段寄存器的內(nèi)容×10H十偏移地址邏輯地址有效偏移地址EA015段寄存器(段基址)000001520位物理地址019段基址、邏輯地址和物理地址圖例 JMP0F000H:0100HMOVAX,0D000HMOVDS,AXMOVAX,7200HMOVSS,AXMOVAX,1000HMOVES,AXCSDSSSESF000HD000H7200H1000H64K代碼段64K數(shù)據(jù)段64K堆棧段64K數(shù)據(jù)段E0FFFFFH0F0000H0D0000H

72000H

10000H00000H0F000H:0100H1.3.38086/8088CPU的引腳及其功能8086/8088CPU是具有40條引腳的雙列直插封裝集成電路芯片,從引腳功能上包括16條數(shù)據(jù)線、20條地址線和一系列控制線,為了減少芯片的引線,有許多引線具有雙重定義和功能,采用分時復(fù)用方式工作,即在不同時刻,引線的作用和引線上的信號是不相同的。

1)AD0~AD15:

地址/數(shù)據(jù)時分復(fù)用的信號線

CPU在讀寫存儲器和外設(shè)時,先輸出存儲器單元的地址或外設(shè)端口的地址,然后才讀寫數(shù)據(jù),從而地址和數(shù)據(jù)在時序上是有先后的。在CPU外部配置地址鎖存器,把16條引腳上先出現(xiàn)的地址信號鎖存起來,用鎖存器的輸出去選通存儲器的單元或外設(shè)端口,這時16條引腳就可以作為數(shù)據(jù)線進行輸入或輸出操作。

2)A16~A19/S3~S6:地址/狀態(tài)分時復(fù)用三態(tài)輸出線在8086CPU執(zhí)行指令過程中,從這4條線上送出地址的最高4位A16

~A19,且只在訪問存儲器時使用,在訪問I/O接口時不用即A16

~A19

=0。在地址信號鎖存后,這4條線輸出S3~S6狀態(tài)信號。S6始終為低,表示8086當(dāng)前與總線相連,S5指示狀態(tài)寄存器中的中斷允許標志的狀態(tài)。S4和S3用來指示CPU使用的段寄存器:

S4S300011011段寄存器ESSSCSDS

3)RESET(引腳21):

CPU的復(fù)位信號輸入端高電平有效。為使CPU完成內(nèi)部復(fù)位過程,該信號至少要在4個時鐘周期內(nèi)保持有效。復(fù)位后CPU內(nèi)部寄存器的狀態(tài):

ES、DS、SS、IP、F清零指令隊列緩沖器清零

CS置為FFFFHIF置為0(禁止中斷)復(fù)位后,RESET返回低電平時

CPU將從CS:IP的新地址即FFFF0H處重新啟動系統(tǒng)。

4)CLK(引腳19):

時鐘信號輸入端由外接時鐘信號發(fā)生器8284A提供CPU和總線控制器所需的時鐘脈沖信號。

8086/8088的標準時鐘頻率為5MHz,脈沖的占空比為1/3,即1/3周期為高電平,2/3周期為低電平。

5)

NMI(引腳17):

非屏蔽中斷輸入信號邊沿觸發(fā),正跳變有效。所謂非屏蔽是指:不管IF中斷允許標志是否置位,一旦CPU檢測到這條引腳上出現(xiàn)有效的正跳變信號,則使CPU在現(xiàn)行指令執(zhí)行結(jié)束后,進入執(zhí)行對應(yīng)中斷類型號為2的非屏蔽中斷處理程序

6)

INTR(引腳18):

可屏蔽中斷信號輸入端高電平有效。CPU在每條指令執(zhí)行的最后一個狀態(tài)采樣該信號所謂可屏蔽是指:CPU檢測到該端出現(xiàn)有效的高電平后,只有中斷允許標志IF=1,以允許中斷時才響應(yīng)該中斷。若IF=0,即使CPU檢測到該端出現(xiàn)有效的高電平,也不響應(yīng)中斷。即可以用軟件復(fù)位內(nèi)部的中斷允許位而將中斷請求信號加以屏蔽。

7)(引腳23):結(jié)束等待狀態(tài)控制信號輸入端

低電平有效??捎肳AIT指令對該引腳進行測試的輸入信號,當(dāng)CPU執(zhí)行WAIT指令時,

CPU進入等待狀態(tài)(空轉(zhuǎn))。該信號有效時,CPU結(jié)束等待狀態(tài),繼續(xù)執(zhí)行WAIT指令后的程序。該信號在每個時鐘周期的上升沿由內(nèi)部電路進行同步檢測。

CPU進入等待狀態(tài)時,允許外部中斷,中斷返回后,繼續(xù)執(zhí)行WAIT指令后的程序。

8)(引腳32):讀選通輸出信號(三態(tài))

低電乎有效。當(dāng)其有效時,表示CPU正在進行存儲器讀或I/O讀操作。DMA操作時該線為浮空

9)(引腳33):工作模式信號當(dāng)為高電平(+5V)時,表示工作在最小模式;當(dāng)為低電平(0V)時,表示工作在最大模式。10)READY(引腳22):準備就緒輸入信號高電平有效。當(dāng)CPU對存儲器或I/O進行操作時,在T3周期采樣READY信號。若其為低,表明存儲器或

I/O還未準備好數(shù)據(jù),則在T3周期后,自動插入Tw周期(等待周期)。在Tw周期中再采樣READY信號,直至READY變?yōu)橛行У母唠娖叫盘枺琓w周期才可以結(jié)束,進入T4周期,完成數(shù)據(jù)讀寫傳送。11)/S7(引腳34):高8位數(shù)據(jù)允許/狀態(tài)復(fù)用輸出線低電平有效,分時復(fù)用三態(tài)信號在總線周期T1時,8086在該引腳輸出信號,表示高8位數(shù)據(jù)D15~D8數(shù)據(jù)有效。在其它時刻輸出S7,在8086系統(tǒng)中該S7未定義。在CPU訪問存儲器時,用于選擇以字或字節(jié)方式讀寫存儲器。在CPU訪問I/O時,用于選擇I/O接口的高8位字節(jié)或低8位字節(jié)

信號和A0代碼組合,對于在總線上的存儲器和接口的數(shù)據(jù)傳輸選擇形式見教材表1-4。12)VCC:電源線(引腳40)

GND:接地端(引腳1、20)13)

8086CPU的24~31引腳給出了一組控制信號,它們的功能和含義與

8086CPU的兩種工作方式相關(guān)將在工作方式中予以介紹。1.8086CPU的引腳功能GND1AD142AD133AD124AD115AD106AD97AD88AD79AD610AD511AD412AD313AD214AD115AD01639AD1538A16/S337A17/S436A18/S535A19/S634

/S740VCCGND20

CLK19INTR18NMI1733MN

/3231HOLD()30HLDA()29()28M

/()27DT/()26()25ALE(QS0)24(QS1)2322READY21RESET8086AD142AD133AD124AD115AD106AD97AD88AD79AD610AD511AD412AD313AD214AD115AD01639AD1538A16/S337A17/S436A18/S535A19/S621RESETCLK19NMI17INTR182322READY3233MN

/34

/S7GND140VCCGND20

31HOLD()30HLDA()29()28M

/()27DT/()26()25ALE(QS0)24(QS1)1.3.48086/8088CPU的工作模式及系統(tǒng)構(gòu)成8086/8088CPU與存儲器和外設(shè)構(gòu)成一個計算機系統(tǒng)時,根據(jù)所連接的存儲器和外設(shè)的規(guī)模不同,可以組成兩種不同的工作模式,即最小工作模式和最大工作模式,也稱為兩種不同的工作組態(tài)。CPU上有MN/

輸入引線,用以決定8086/8088的兩種工作模式當(dāng)MN/

=1

時,CPU工作在最小模式之下。此時系統(tǒng)的控制總線信號直接由CPU的24~

31引線形成;當(dāng)MN/

=0

時,CPU工作在最大模式之下。此時系統(tǒng)的控制總線信號要由8086/8088CPU的

24~31引線,經(jīng)8288總線控制器轉(zhuǎn)換后共同形成,可以構(gòu)成更大規(guī)模的系統(tǒng)。1.最小工作模式

8086CPU處于最小工作模式時,系統(tǒng)中只有一個CPU,

CPU的控制總線信號直接由引腳24~31接出。最小的含義是:系統(tǒng)中的存儲器容量較小,外設(shè)端口也較少,所需的系統(tǒng)總線控制邏輯的規(guī)模較小,總線的驅(qū)動能力不高,最小工作模式適用于小規(guī)模應(yīng)用場合。一.最小工作模式2.最小工作模式系統(tǒng)構(gòu)成系統(tǒng)的地址總線由外接的

8282地址鎖存器輸出。系統(tǒng)的數(shù)據(jù)總線由

8286總線收發(fā)器驅(qū)動,以增加總線驅(qū)動能力,

8088只需一片8286。系統(tǒng)的控制總線直接給出。系統(tǒng)的時鐘脈沖由

8284A時鐘信號發(fā)生器接入,外接晶振的振蕩頻率為15MHZ,三分頻后作為8086的時鐘信號CLK。8284AREADYRESET+5VSTB地址鎖存器8282(三片)控制總線地址總線CLKRESETREADYALEA19~A16AD15~AD0HOLDHLDAINTR8086T收發(fā)器8286(兩片可選)數(shù)據(jù)總線3.8282地址鎖存器DI0DI1DI2DI3DI4DI5DI6DI7DO0DO1DO2DO3DO4DO5DO6DO7STBGNDVCCDCLK1234567811102091918171615141312Intel8282

是20條引腳雙列直插芯片,有8個帶鎖存器的單向三態(tài)緩沖器。DI0~DI7

為地址信號輸入端;DO0~DO7

:為地址信號輸出端;

:

是輸出三態(tài)控制線,低電平有效,用作鎖存器信號輸出控制。當(dāng)接高電平時,8282鎖存器輸出端處于高阻態(tài)。STB

是鎖存控制信號輸入端,高電平有效,接8086CPU的ALE地址鎖存允許信號輸出端,當(dāng)ALE有效時將

DI0~DI7

輸入的地址信號鎖存輸出,作為系統(tǒng)的地址總線。4.8286雙向數(shù)據(jù)收發(fā)器A0A1A2A3A4A5A6A7B0B1B2B3B4B5B6B7TGNDVCC1234567811102091918171615141312≥1≥1Intel8286

是20條引腳雙列直插芯片,內(nèi)部有8個雙向三態(tài)緩沖器。完成數(shù)據(jù)的接受和發(fā)送,具有放大的作用,可增加數(shù)據(jù)總線的驅(qū)動能力。A0~A7:

為數(shù)據(jù)信號輸入端;B0~B7:為數(shù)據(jù)信號輸出端;

:

是輸出三態(tài)控制線,低電平有效,當(dāng)接高電平時,8286禁止數(shù)據(jù)在兩個方向上的傳送。接8086的。

T:

是數(shù)據(jù)傳送方向控制信號,

T=1數(shù)據(jù)輸出,由A0~A7

至B0~B7

T=0數(shù)據(jù)輸入,由B0~B7

至A0~A7

T接8086的

數(shù)據(jù)收發(fā)控制端。

5.8086/8088CPU最小工作模式下的控制總線8086/8088在最小工作模式時,除了前面已介紹過的8根控制總線外,還有8根與最小工作模式相關(guān)的控制總線,對應(yīng)CPU的24~31引腳。1)(引腳28):存儲器與外設(shè)接口選擇輸出控制信號(三態(tài)),確定當(dāng)前訪問操作是存儲器還是I/O端口。8086系統(tǒng)中若該引腳輸出為高電平,則訪問存儲器;輸出為低電平,則訪問I/O端口。8088系統(tǒng)則相反。DMA操作時該引腳處于高阻態(tài)。2)(引腳29):寫控制信號輸出端(三態(tài))。低電平有效,表示CPU正處于寫存儲器或?qū)慖/O端口的狀態(tài)。3)(引腳27):數(shù)據(jù)收發(fā)控制信號輸出端

(三態(tài))。用于確定數(shù)據(jù)傳送的方向。高電平為數(shù)據(jù)輸出;低電平為數(shù)據(jù)輸入。該信號通常用于數(shù)據(jù)總線驅(qū)動器8286/8287的方向控制。8086/8088CPU最小工作模式下的控制總線4)(引腳26):數(shù)據(jù)收發(fā)允許控制信號輸出端(三態(tài)),低電平有效。該信號有效時表示數(shù)據(jù)總線上有有效的數(shù)據(jù),在每個訪問內(nèi)存或I/O接口以及中斷響應(yīng)的總線期間有效,以允許數(shù)據(jù)收發(fā)器接受或發(fā)送數(shù)據(jù)。與8286數(shù)據(jù)總線驅(qū)動器的端相接。5)ALE

(引腳25):地址鎖存允許控制信號輸出端(三態(tài)),高電平有效。在總線周期的T1狀態(tài)該信號有效,表明CPU送出有效的地址信號。接8282地址鎖存器的STB端,以鎖存總線上地址信號。6)(引腳24):中斷響應(yīng)信號輸出端,低電平有效。是CPU對外部輸入的INTR中斷請求信號的響應(yīng)。在響應(yīng)中斷時,由端送出兩個負脈沖,用作外部中斷源的中斷向量碼的讀選通信號。7)

HOLD

(引腳31):總線保持請求輸入信號,高電平有效。用于向CPU提出保持(占用)請求。當(dāng)某一部件要占用系統(tǒng)總線時(如DMA請求),可通過這條輸入線向CPU提出請求。8)

HLDA

(引腳30):總線保持請求允許控制信號輸出端,高電平有效。當(dāng)CPU收到HOLD請求信號后,若允許總線請求,則使所有三態(tài)輸出的地址信號、數(shù)據(jù)信號和控制信號變?yōu)楦咦钁B(tài),同時HLDA端輸出高電平,表示CPU現(xiàn)在已放棄對總線的控制。當(dāng)CPU檢測到HOLD信號變低后,就立即使HLDA變低,同時恢復(fù)對總線的控制。性能100中斷響應(yīng)101讀I/O端口110寫I/O端口111暫停000取指001讀存儲器010寫存儲器011無作用9)8088系統(tǒng)中狀態(tài)輸出線它與

和信號一起決定最小模式下現(xiàn)行總線周期的狀態(tài)。不同電平所表示的操作情況見右表所示。

8086/8088CPU最小工作模式下的控制總線二.最大工作模式1.最大工作模式8086CPU處于最大工作模式時,系統(tǒng)中可包含兩個或兩個以上CPU,8086稱為主處理器,其他的稱為協(xié)處理器

8087數(shù)學(xué)協(xié)處理器,8089輸入輸出協(xié)處理器

CPU的控制總線信號由引腳24~31經(jīng)8288總線控制器轉(zhuǎn)換后接出。最大的含義是:構(gòu)成的計算機系統(tǒng)規(guī)模較大,存儲器容量較大,外設(shè)端口也較多,總線的控制和驅(qū)動能力較強,構(gòu)成多處理器系統(tǒng),顯著提高系統(tǒng)的工作效率1.48086/8088CPU典型時序分析1.4.1基本概念1.4.2學(xué)習(xí)CPU時序的目的1.4.3

最小模式下的典型時序1.4.4

最大模式下的典型時序1.4.1基本概念了解微處理器的時序?qū)τ谶M一步理解微處理器執(zhí)行指令的過程、

各部件與系統(tǒng)總線的連接及硬件系統(tǒng)的調(diào)試都十分有意義。計算機的每一步工作、每一個微操作,都是由時鐘脈沖信號CLK來觸發(fā)的。方波脈沖信號是計算機運行的最小節(jié)拍。理解CPU的工作時序并運用這些概念去解決實際問題是本節(jié)的重點。計算機工作的過程通常將要完成的任務(wù)編制成程序;程序由若干條指令構(gòu)成,將程序存放到存儲器中;每條指令的執(zhí)行過程分三步:取指令、譯碼、執(zhí)行。

一.指令周期(InstructionCycle)

執(zhí)行一條指令所需要的時間稱為指令周期。不同的指令,其執(zhí)行時間是不相同的。從指令的長短來看,有一字節(jié)、二字節(jié)、…、六字節(jié);從完成的任務(wù)來看,CPU內(nèi)部的數(shù)據(jù)傳送速度很快,而算術(shù)邏輯運算則較慢,如16位的乘除法要200個時鐘周期。從指令的功能來看,可能要訪問存儲器或I/O接口,有時涉及中斷。可以將指令周期劃分為一個個總線周期,每個總線周期對應(yīng)一種功能。時序分析基本概念二.總線周期(BUSCyc

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論