微機原理講義_第1頁
微機原理講義_第2頁
微機原理講義_第3頁
微機原理講義_第4頁
微機原理講義_第5頁
已閱讀5頁,還剩95頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《微機原理》講義

第1頁共100頁

《微機原理》講義

第2頁共100頁

《微機原理》講義

■,*

刖百

微型計算機是電子計算機技術飛速發(fā)展的產(chǎn)物,具有體積小、重量輕、耗

電少、價格低廉、可靠性高、結構靈活等特點。

微型計算機最早的是美國IBM公司用INTEL公司的8086CPU芯片制造的

IBM-PC機,現(xiàn)在已經(jīng)由低檔的8位機8080、8086、8088,發(fā)展到16位的80286,

32位的80386、80486、PENTUIM、PENTUIMIKPENTUIMIH等高檔機型。主機

的內存容量也由最初的48K字節(jié)增加到640K、2M、…、128M甚至更大。處理速

度也越來越快,工作穩(wěn)定性顯著提高。

當前,微型機技術正往兩個方向發(fā)展,一個是高性能、多功能的方向,另一

個是價格低廉、功能轉移的方向。在不久的將來,微型機將發(fā)展成為融工作、學

習、娛樂于一體,集電腦、電視、電話于一身的綜合辦公設備和新型家用電器,

以及信息高速公路上的數(shù)字化、多媒體智能終端。未來的微機在我們工作學習和

日常生活中將會充當重要角色,它不僅會改變我們的生活方式,而且會改變我們

的文化特征,會出現(xiàn)我們今天無法想象的事物,微機必將成為人類文明之侶。

通過本課程掌握微機關鍵技術的原理和實現(xiàn)方法,使用戶深入理解、牢固掌

握、靈活運用微型機最主要的技術,從而能夠在日新月異的計算機領域更快地理

解、熟悉、掌握新的發(fā)展。

在軟件方面,本教學軟件以介紹8086指令系統(tǒng)為基礎,重點討論Intel公

司的ASM-86匯編語言程序設計;而在硬件方面則著重討論8086的體系結構、接

口技術、Intel公司的I/O配套支持器件及其應用,為用戶開發(fā)應用8086系列

微型計算機(包括IBM-PC機)打下必要的基礎。

第一章緒論

本章介紹計算機基礎知識,內容包括計算機的發(fā)展、特點、分類及應用;計

算機中常用的數(shù)制以及不同數(shù)制間的相互轉換;數(shù)據(jù)的編碼;二進制數(shù)的算術運

算和邏輯運算;數(shù)據(jù)的存貯組織等。其中涉及到不少名詞、術語及其相關概念,

必須弄懂和掌握,為我們以后學習作好必要的知識準備。

世界上第一臺計算機,是1946年2月由美國賓夕法尼亞大學研制成功的。

之后計算機獲得了突飛猛進的發(fā)展。人們依據(jù)計算機性能和當時軟硬件技術(主

要根據(jù)所使用的電子器件),將計算機的發(fā)展劃分成四個階段。每一個階段在技

術上都是一次新的突破,在性能上都是一次質的飛躍。

第二章8086的體系結構

8086是高性能的第三代微處理器,是Intel系列的16位微處理器,它是采

用HM0S工藝制造的,內部包含約29,000個晶體管。

8086有16根數(shù)據(jù)線和20根地址線,因為可用20位地址,所以可尋址的

地址空間達2"即字節(jié)。8086工作時,只要一個5V電源和一相時鐘,時鐘

頻率為5MHzo后來,Intel公司推出的8086T型微處理器時鐘頻率高達10MHz,

第3頁共100頁

《微機原理》講義

8086-2型微處理器時鐘頻率達8MHzo

幾乎在推出8086微處理器的同時,Intel公司還推出了一種準16位微處理

器8088。推出8088的主要目的是為了與當時已有的一整套Intel外圍設備接

口芯片直接兼容。8088的內部寄存器、內部運算部件以及內部操作都是按16

位設計的,但對外的數(shù)據(jù)總線只有8條。這兩種微處理器除了數(shù)據(jù)總線寬度不同

外,其他方面幾乎完全相同。8086/8088的另一個突出特點是其多重處理的能力,

它們都能極方便的和數(shù)值數(shù)據(jù)處理器(NPX)8087,I/O處理器(I0P)8089或其

他處理器組成多處理器系統(tǒng),從而極大地提高系統(tǒng)數(shù)據(jù)吞吐能力和數(shù)據(jù)處理能

力。

2.0計算機的工作過程

了解了“程序存儲”,再去理解計算機工作過程變得十分容易。如果想叫計

算機工作,就得先把程序編出來,然后通過輸入設備送到存儲器中保存起來,

即程序存儲。下面就是執(zhí)行程序的問題了。根據(jù)馮.諾依曼的設計,計算機應能自

動執(zhí)行程序,而執(zhí)行程序又歸結為逐條執(zhí)行指令。

執(zhí)行一條指令又可分為以下四個基本操作:

①取出指令:從存儲器某個地址中取出要執(zhí)行的指令送到CPU內部的指令

寄存器暫存;

②分析指令:把保存在指令寄存器中的指令送到指令譯碼器,譯出該指令

對應的微操作;

③執(zhí)行指令:根據(jù)指令譯碼,向各個部件發(fā)出相應控制信號,完成指令規(guī)

定的各種操作;

④為執(zhí)行下一條指令作好準備,即形成下i條指令地址;

2.18086的編程結構

要掌握一個CPU的工作性能和使用方法,首先應該了解它的編程結構。所

謂編程結構,就是指從程序員和使用者的角度看到的結構,當然,這種結構與

CPU內部的物理結構和實際布局是有區(qū)別的。

在下圖中可以看到,從功能上,8086分為兩部分,即總線接口部件BIU(Bus

InterfaceUnit)和執(zhí)行部件EU(ExecutionUnit)o這兩個單元在CPU內部擔

負著不同的任務。下圖即為8086的編程結構圖。

第4頁共100頁

《微機原理》講義

逋用AHlAL

寄存器BH|BL

JCHCL

DH^DE

DI

16位

挖郭電路

8位指令隊列

緩沖器

■■h-1

=0執(zhí)行部件(EU)總線接口部件(BW)

這兩個單元并行地工作,能使大部分取指令操作與執(zhí)行指令操作重疊的進行

(即所謂“流水線”結構)。由于EU執(zhí)行的是BIU已從存儲器取出的指令,所

以在大多數(shù)情況下取指令的時間“消失了”,從而加快了程序的運行速度。

2.18086的編程結構

總線接口部件(BIU)

總線接口部件的功能是負責與存儲器、I/O端口傳送數(shù)據(jù)??偩€接口部件要

從內存取指令送到指令隊列;CPU執(zhí)行指令時,總線接口部件要配合執(zhí)行部件

從指定的內存單元或者外設端口中取數(shù)據(jù),將數(shù)據(jù)傳送給執(zhí)行部件,或者把執(zhí)

行部件的操作結果傳送到指定的內存單元或外設端口中。具體講,BIU根據(jù)執(zhí)

行部件EU算出來的16位偏移地址及16位段寄存器提供的16位地址段,通過

地址加法器產(chǎn)生20位物理地址,根據(jù)EU單元的請求,用20位物理地址對存儲

器進行讀寫操作,亦可對I/O接口進行讀寫操作。在取出指令的同時,從內存

中取下一條或幾條指令放在指令隊列中。這樣,在一般情況下CPU執(zhí)行完一條

指令,就可以立即執(zhí)行下一條指令,而不象8位機那樣讓CPU輪番地進行取指

令和執(zhí)行指令,從而提高了CPU的效率。

總線接口部件由下列各部分組成:

?4個段地址寄存器;

oCS——16位的代碼段寄存器;

oDS——16位的數(shù)據(jù)段寄存器;

第5頁共100頁

《微機原理》講義

OES——16位的擴展段寄存器;

oSS——16位的堆棧段寄存器;

?16位的指令指針寄存器IP;

?20位的地址加法器;

?6字節(jié)的指令隊列。

執(zhí)行部件EU

執(zhí)行部件的功能就是負責指令的執(zhí)行。

從編程結構圖可見,執(zhí)行部件由下列兒個部分組成:

?4個通用寄存器,即AX、BX、CX、DX;

?4個專用寄存器;

?;鶖?shù)指針寄存器BP;

o堆棧指針寄存器SP;

。源變址寄存器SI;

。目的變址寄存器DI;

?標志寄存器;

?算術邏輯單元ALU。

流水線”結構

8086首線

通用

寄存器

“去一

1執(zhí)行部件<EU>總繾接口部件CBIU)

第6頁共100頁

《微機原理》講義

總線接口部件BIU和執(zhí)行部件EU并不是同步工作的,兩者的動作管理遵循

如下原則:

1.每當8086的指令隊列中有2個空字節(jié),BIU就會自動把指令取

到指令隊列中。

2.而同時EU從指令隊列取出--條指令,并用兒個時鐘周期去分析、

執(zhí)行指令。

3.當指令隊列已滿,而且EU對BIU又無總線訪問請求時,BIU便

進入空閑狀態(tài)。

4.在執(zhí)行轉移、調用和返回指令時.,指令隊列中的原有內容被自動

清除。

在8086/8088中,EU和BIU這種并行的工作方式不僅有力地提高了工作效

率,而且這也是它們的一大特點。EU和BIU之間是通過指令隊列相互聯(lián)系的。

指令隊列可以被看成一個RAM區(qū),EU對其執(zhí)行讀操作,BIU對其執(zhí)行寫操作。

通用寄存器的用法

寄存器的隱含用法

寄存器執(zhí)行操作

AX整字乘法,整字除法,整字I/O。

字節(jié)乘法,字節(jié)除法,節(jié)字I/O。

AL

翻譯,十進制算術運算。

AH字節(jié)乘法,字節(jié)除法。

BX翻譯。

CX字符串操作,循環(huán)。

CL變量的移位和循環(huán)移位。

DX整字乘法,整字除法,間接I/O。

SP堆棧操作。

S1字符串操作。

DI字符串操作。

通用寄存器組包括AX,BX,CX,DXo主要用來保存算術或邏輯運算的操作

數(shù)、中間運算結果。它們既可以作為一個16位的寄存器使用,也可以分別作為

兩個8位的寄存器使用。

由于這些寄存器具有良好的通用性,使用十分靈活,因而稱為通用寄存器。

但在某些指令中規(guī)定了某些通用寄存器的專門用法,這樣可以縮短指令代碼長

度;或使這些寄存器的使用具有隱含的性質,以簡化指令的書寫形式(即在指

令中不必寫出使用的寄存器名稱)。通用寄存器的隱含用法如上表所示。

第7頁共100頁

《微機原理》講義

2.28086的工作模式

為了盡可能適應各種各樣的使用場合,在設計8086CPU芯片時,使它們可

以在兩種模式下工作,即最小模式和最大模式。

所謂最小模式,就是在系統(tǒng)中只有8086一個CPU,而所有的總線控制信號

都由8086直接產(chǎn)生,因此系統(tǒng)中的總線控制電路被減到最少。

而最大模式是相對最小模式而言的,此時系統(tǒng)中有兩個或多個微處理器,

其中有一個是主處理器8086,其它的處理器稱為協(xié)處理器,它們協(xié)助主處理器

工作。

一、最小工作模式

由圖可知,在8086的最小模式中,硬件連接上有如下兒個特點:

1.MN/MX端接+5V,決定了8086工作在最小模式。

2.有一片8234A,作為時鐘發(fā)生器。

3.有三片8282或74LS373,用來作為地址鎖存器。

4.當系統(tǒng)中所連接的存儲器和外設比較多時,需要增加系統(tǒng)數(shù)據(jù)總

線的驅動能力,這時,要用兩片8286/8287作為總線收發(fā)器。

第一周期

第8頁共100頁

《微機原理》講義

CPU輸出20位地址、ALE信號,及地址A。--Al9

第二周期

A19/S6--A16/S3,!BHE/S7輸出狀態(tài)S7--S3;同時!RD和!DEN變有效(低電平)。

第三周期

數(shù)據(jù)輸入。

第四周期

從AD近一AD0讀入數(shù)據(jù),并使!RD信號和!DEN信號處于無效狀態(tài)。

最小方式適用于由單微處理器組成的小系統(tǒng)。在這種系統(tǒng)中,8086/8088CPU

直接產(chǎn)生所有的總線控制信號,因而省去了總線控制邏輯。

二、最大工作模式

由下圖可知,最大模式配置和最小模式配置有一個主要的差別:最大模式下

多了8288總線控制器。這是因為在最大模式系統(tǒng)中一般包含兩個或多個處理器,

這樣就要解決主處理器和協(xié)處理器之間的協(xié)調工作問題和對總線的共享控制問

題。8288總線控制器對CPU發(fā)出的控制信號進行變換組合,以得到對存儲器和

I/O端口的讀/寫信號和對8282及8286的控制信號。

在最大模式系統(tǒng)中,-一般還會有中斷優(yōu)先級管理部件,當然,在系統(tǒng)所含的

第9頁共100頁

《微機原理》講義

設備較少時,該部件也可省去。而反過來,在最小模式系統(tǒng)中,如果所含的設備

較多,也要加上中斷優(yōu)先級管理部件。

三、8086CPU的引腳信號

8086CPU采用雙列直插式的封裝形式,具有40條引腳,它采用分時復用的

地址/數(shù)據(jù)總線,所以有一部分引腳具有雙重功能。

引腳33用于確定配置方式,如該引腳接+5V,則工作于最小模式;如該引腳

接地,則工作于最大模式。這兩種CPU都有20條地址引腳,其中高4位地址引

腳(A19/S6-A116/S3)以分時轉換方式傳送地址和狀態(tài)信號。

在實際使用中,8086的一些引腳信號還可用來配合讀/寫操作,指出當前使

用的數(shù)據(jù)總線。

地—8■—Vcc(5V)

ADi4一解國一ADn

ADu——置38—Aie/Sa

ADn—*為一

ADH—i南一AB/SS

ADID1—AIP/SB

A6g—BHE/ST,

ADJ讖一MN/麗

AD?■—RD

AD&08K6也一HOLD皿匹)

AD、CPU3(>—HLDA(RQ/GT;)

AD4

AD:g—M/TO(S?)

AD?—DT/R(Si)

AD.?—DEN(S>)

ADb6S—ALE(QSD)

NM7M——iNTA(QSi)

INTR—?^8—TEST

—READY

—RESET

超6帆端號

(其引觸)

四、8086的系統(tǒng)組成

8086的存儲體結構

在組成存儲系統(tǒng)時,總是使偶地址單元的數(shù)據(jù)通過ADO—AD7傳送,而奇地

址單元的數(shù)據(jù)通過AD8—AD15傳送,顯然,并不是所有總線周期都存取總線高字

節(jié),只有存取規(guī)則字,或奇地址的字節(jié),或不規(guī)則字的低八位,進行總線高字節(jié)

傳送。

如前所述,8086的一些引腳信號還可用來配合讀/寫操作,指出當前使用的

數(shù)據(jù)總線,例如和A0,它們配合可能進行的操作見下表。而同時,為保證能

完成規(guī)定的操作要求,要將1M的存儲體分為兩個庫。

第10頁共100頁

《微機原理》講義

操作A0使用的數(shù)據(jù)線

存取規(guī)則字00AD15-AD0

傳送偶地址的

10AD7-AD0

一個字節(jié)

傳送奇地址的

01AD15-AD8

一個字節(jié)

AD15-AD8

01

(第一個總線周期)

存取非規(guī)則字

AD7-AD0

10

(第二個總線周期)

8086將1M字節(jié)存儲體分為兩個庫,每個庫的容量都是512K字節(jié)。其中和

數(shù)據(jù)總線D15—D8相連的庫全由奇地址單元組成,稱高字節(jié)庫或奇地址庫,并用

BHE信號作為庫選信號;另一個庫和數(shù)據(jù)總線的D7—D0相連,由偶地址單元組

成,稱低字節(jié)庫或偶低址庫,利用A0作為庫選信號,顯然,只需A19—A1共19

位地址用來作為兩個庫內的單元尋址(如左圖所示)。同時存儲器亦采用了分段

結構。

A19-A1

8086系統(tǒng)的存儲結構

8086存儲器的分段結構

8086CPU把1M字節(jié)的存儲器空間劃分為任意的一些存儲段,一個存儲段是

第11頁共100頁

《微機原理》講義

存儲器中可獨立尋址的一個邏輯單位,也稱邏輯段,每個段的長度為64K字節(jié)。

8086CPU中有四段寄存器:CS,DS,SS和ES,這四個段寄存器存放了CPU

當前可以尋址的四個段的基值,也即可以從這四個段寄存器規(guī)定的邏輯段中存取

指令代碼和數(shù)據(jù)。一旦這四個段寄存器的內容被設定,就規(guī)定了CPU當前可尋址

的段,如下圖所示。

CS

DS

SS

ES

當前可尋址的存儲器段

(堆棧段與附加段重登時的皆況)

8086存儲器的邏輯地址與物理地址

8086CPU中的每個存儲元在存儲體中的位置都可以使用實際地址和邏輯地

址來表示。

實際地址,也稱物理地址,規(guī)定了1M字節(jié)存儲體中某個具體單元的地址(它

是00000H至FFFFFH之間的某個地址值),它由CPU訪問存儲器時使用。而邏輯

地址在程序中使用,它由兩部分組成:段基址和偏移量。

CPU訪問存儲器時,先要形成20位的物理地址。

第12頁共100頁

《微機原理》講義

20000H

20200H

202D1H

20202H

20203H

邏輯地址與物理地址

8086存儲器20位物理地址的形成

在存儲段劃分時,段內地址連續(xù)的,段與段之間是相互獨立的。每個段的起

始地址稱段的基址,段基址必須是能被16整除的那些地址,即20位的段基址的

低四位應當是0000。由于段起始地址的低四位為0,所以可用20位的高地址的

高16位表示段的基址,稱段基值。

當CPU訪問存儲器時,根據(jù)邏輯地址,在BIU的地址加法器中形成20位的

物理地址,其方法是將段基值左移四位再加上偏移量。(如下圖所示)

150

\加法/

19彳。

妾際地址

20位物理地址的形成

2.38086的總線時序

在微機系統(tǒng)中,CPU是在時鐘信號控制下,按節(jié)拍有序地執(zhí)行指令序列。從

第13頁共100頁

A1X,XI

《微機原理》講義

取指令開始,經(jīng)過分析指令、對操作數(shù)尋址,然后執(zhí)行指令、保存操作結果,這

個過程稱為指令執(zhí)行周期。

在一個指令執(zhí)行周期中,通過總線進行一次對存儲單元或I/O端口讀或寫的

操作過程稱為總線周期。

8086系統(tǒng)總線周期由四個時鐘組成(T1-T4),需要時還要加入數(shù)量不定的

等待周期(Tw)。若在完成一個總線周期后不發(fā)生任何總線操作,則填入空閑狀

態(tài)時鐘周期(Ti);若存儲器或I/O端口在數(shù)據(jù)傳送中不能以足夠快的速度作出

響應,則在T3與T4間插入一個或若干個Two

T11-g?ay

./—、./-、./-、./~\./-、

X

X

X

till_/周V

/\%

Wh,\J

▼、一

i>*r?K'二二二二'—

1>IC.M-一----—-一—--,7、

一、讀周期的時序

一個基本的讀周期一般包含如下幾個狀態(tài):

1.T1狀態(tài)

2.M/I0信號有效,指出讀內存還是I/O;

3.地址輸出:分高4位和低16位;

4.ALE輸出地址鎖存信號;

5.BHE信號表示高8位數(shù)據(jù)總線上信息可用。

6.T2狀態(tài):地址信號消失,AD-AD。進入高阻狀態(tài)為讀入數(shù)據(jù)作準

?

7.T3狀態(tài):若存儲器和外設速度足夠快,此時CPU接收數(shù)據(jù);

8.Tw狀態(tài):在存儲器和外設速度較慢時,還要在T3之后插入一個

第14頁共100頁

《微機原理》講義

或兒個Two

9.T4狀態(tài):CPU對數(shù)據(jù)總線采樣,獲得數(shù)據(jù)。

T1T2T3Tw(l-庫T4

A

CLK*_____

M而XX_

AiivSc

____/—

-X

BHE描J_//

AL?15-_(_/__L

ALE/\

RDJ

DT/Rt

a.m?

DEH一-.,J'、.

二、寫周期的時序

一個基本的寫周期一般包含如下幾個狀態(tài):

1.T1狀態(tài)

2.M/I0信號有效,指出寫內存還是I/O;

3.地址輸出:分高4位和低16位;

4.ALE輸出地址鎖存信號;

5.BHE信號表示高8位數(shù)據(jù)總線上信息可用。

6.T2狀態(tài):CPU往ADLAD。發(fā)出數(shù)據(jù);

7.T3狀態(tài):CPU繼續(xù)提供狀態(tài)信息和數(shù)據(jù);

8.Tw狀態(tài):在存儲器和外設速度較慢時,還要在T3之后插入一個

或兒個Two

9.T4狀態(tài):CPU撤除信息。

第15頁共1oo頁

《微機原理》講義

T1T2T3Tw(l㈤T4

CLK丁、了、<__

M而_____x_

\―

____/—

-Alk/Ss

ADD-ADOy~

BHE^S?J

ALE./\

WR\_J

T-

DT/R_…/---

DEN/

_____f\_7—.

第三章匯編語言基礎

計算機語言分為面向過程、面向對象的高級語言和面向機器的匯編語言。高

級語言與數(shù)學模型有較好的對應關系,但由于未考慮硬件的能力,因而做出來的

程序在對應硬件的執(zhí)行時間和空間上有較大的缺陷,無法應用于實時性在線控制

及語言處理的場合。

匯編語言是用戶能利用計算所有特性直接控制硬件的唯一語言,它能直接使

用CPU的指令系統(tǒng)和尋址方式,從而得到占用空間少,執(zhí)行速度快的高質量程序,

對于一些需要直接控制硬件的場合,匯編語言是必不可少的。

本章的目的就是向讀者簡單介紹匯編語言的J址方式、指令系統(tǒng),程序設計

以及所用到的匯編調試工具的一些基礎知識。

3.1尋址方式

對于一條匯編語言指令來說:

第一,要指出進行什么操作,這由指令操作符來表明。

第二,要指出大多數(shù)指令涉及的操作數(shù)和操作結果送到哪里去,一般約定將

操作結果送到原來放操作數(shù)的地方。而操作數(shù)的來源問題,也就是操作數(shù)的尋址

方式問題了。

而指令系統(tǒng)中有一類指令叫轉移指令,還有一類叫調用指令,這兩類指令

涉及轉移地址或者調用地址的提供方式,一般也稱為指令地址的尋址方式。

這樣8086/8088的尋址方式可分為兩種:操作數(shù)的尋址方式和轉移地址尋

第16頁共100頁

《微機原理》講義

址方式。

一、操作數(shù)尋址方式

1.立即尋址

立即操作數(shù)可以是8位或16位,并且是指令的一部分。立即數(shù)據(jù)總是緊跟

在指令操作碼之后并和操作碼一起存放在代碼段中,因而立即數(shù)據(jù)總是和操作碼

一起被放入BIU中的指令隊列里,在指令執(zhí)行時不需再存取存儲器。

使用立即尋址的指令主要用來給寄存器賦初值,例如:

MOVAX,1234H

執(zhí)行過程如下圖所示:

2.寄存器尋址

操作數(shù)存放在指令規(guī)定的寄存器中,對于16位操作數(shù),寄存器可以是

AX,BX,CX,DX,SI,DL,SP或BP;而對8位操作數(shù),寄存器可以是

AH,AL,BH,BL,CH,CL,DH或DL。

例如:

MOVAX,BX

執(zhí)行過程如下圖所示:

AXBX

??XX

寄存器尋址

第17頁共100頁

《微機原理》講義

3.直接尋址

操作數(shù)的有效地址是指令的一部分,它與操作碼一起存放在代碼段中,但操

作數(shù)一般是在數(shù)據(jù)段中,因而這種尋址方式是以DS的內容為基準。例如:

MOVAL,DS:[2000H]

若DS=4000H,則此指令式將數(shù)據(jù)段中物理地址為42000H單元的內容傳送AL

寄存器。

執(zhí)行過程如右圖所示:

直接尋址

4.寄存器間接尋址

操作數(shù)的有效地EA存放在基址寄存器(BX或BP)或變址寄存器(DI或SI)中,

即FA((DI)

{(SD}例

如:MOVAX,[BX]

它表示操作數(shù)在數(shù)據(jù)段中,存放單元與段基址的偏以量(即有效地址)在寄

存器BX中。執(zhí)行過程如下圖所示:

第18頁共100頁

《微機原理》講義

U操

DS4000

.

BX010040000

4

0100

據(jù)

AX?????!/

40100段:

寄存器間接尋址

5.寄存器相對尋址方式

操作數(shù)的有效地址EA是8位或16位的位移量與基址寄存器BX或基址指示

器BP或某個變址寄存器(DI或SI)之和,例如:

MOVAl,[BX+5]

它是BX的內容加上8位位移量05H作為操作數(shù)存放的單元地址。如果使用

BP,則隱含地表示操作數(shù)示存放在堆棧段中。執(zhí)行過程如下圖所示:

6000

EA=2000H+05H

=2005H

62005

AX

寄存器相對尋址方式

第19頁共100頁

《微機原理》講義

6.基址變址尋址方式

有效地址EA是由基址寄存器BX(或基址指示器BP)的內容與變址寄存

器(DI或SI)的內容之和。

例如:

MOVAX,[BX+SI]

表示將BX的內容與SI的內容相加作為操作數(shù)存放單元距數(shù)據(jù)段基址的

偏移值。

執(zhí)行過程如右圖所示:

EA=2000H+06H

=2006H

AX??

基址變址尋址方式

7.相對基址變址尋址方式

操作數(shù)的有效地址是一個8位或16位的位移量和一個基址變址之和。

例如:

MOVAH,[BX+DI+1234H]

表示操作數(shù)地址是在數(shù)據(jù)段中,其在數(shù)據(jù)段的偏移量是BX的內容加上DI

的內容再加上位移量1234Ho執(zhí)行過程如下圖所示:

第20頁共100頁

《微機原理》講義

二、轉移地址的尋址方式

1.段內直接方式

段內直接尋直方式也稱為相對尋址方式,轉移的目標地址是當IP內容和一

8位或16位的位移量之和。位移量是8位時,稱為短程轉移,位移量為16位稱

為近程轉移。這種尋址方式適用于條件轉移或無條件轉移。但條件轉移只能有8

位的位移量。如下圖所示:

指令

位移量

EA=^效轉移地址

2.段內間接方式

這種方式也是在段內,即僅IP內容。其轉移的目標地址是寄存器或存儲單

元的內容,即以寄存器或存儲器單元內容來更新IP的內容。若目標地址為存儲

單元內容,則可由上述與存儲器操作書有關的尋址方式尋址。如下圖所示:

寄存器

|有效轉移地址

存儲器

|有效轉移地址

段內間接方式

3.段間直接方式

這種方式用于段間轉移,目標地址的段基值(CS)和偏移地址(IP)都是指令

第21頁共100頁

《微機原理》講義

碼的組成部分,用來更新當前CS和IP。如下圖所示:

指令CS

偏移量回II

IP

段間直接方式

4.段間間接方式

這種方式同樣用于段間轉移,只不果當前CS和IP由存儲器中連續(xù)的兩個字

更新,低位地址的字更新IP,高位地址的字更新CS,存放新IP和CS的存儲單元

地址由前述存儲器操作數(shù)的尋址方式?jīng)Q定。如右圖所示:

指令存儲器中的兩個連續(xù)字

尋址方式根據(jù)尋址方

轉移地址偏移偏

式計算的EA*

段地址

段間間接方式

8086/8088的指令系統(tǒng)按功能可以分為六類:數(shù)據(jù)傳送,算術運算,邏輯運

算與移位、字符串處理、控制轉移以及處理器控制。下面僅對數(shù)據(jù)傳送類加以介

紹:

3.2指令系統(tǒng)

一、數(shù)據(jù)傳送類

這類指令用于實現(xiàn)存儲器與寄存器、寄存器與寄存器,AL/AX與I/O端口、

立即數(shù)到寄存器或存儲器的字節(jié)或字的傳送,共有14條指令,可分為四組。

1.通用數(shù)據(jù)傳送指令

這種指令共5條,如表所示:

指令名稱操作碼(助記符)操作數(shù)例子

MOV

傳送字節(jié)或字MOV目標,源

ARRA[SI],AL

第22頁共100頁

《微機原理》講義

把字壓入堆棧PUSH源PUSHAX

把字彈出堆棧POP目標POPDX

XCHGAX,B

交換字節(jié)或字XCHG目標,源

X

XLAT

字節(jié)翻譯XLAT譯碼表

ASCIITAB

2.輸入/輸出指令

這組指令包括輸入指令IN(輸入字節(jié)或字)和輸出指令OUT(輸出字節(jié)或字)。

1.IN累加器,端口

2.OUT端口,累加器

輸入指令將端口內容輸入到AL(字節(jié))或AX(字),端口地址在64KI/O

空間之(0000H-FFFFH),若端口地址在0000H-00FFH之間,則可使用直接尋址或間

接尋址,否則只能用間接尋址,例如:

INAX,21H

MOVDX,21OH

INAL,DX

輸出址令將AX中的16位數(shù)據(jù)或AL中的8位數(shù)據(jù)輸出到輸出端口,端口地

址在0000H—FFFFH范圍內,尋址方式的規(guī)定同輸入指令,例如:

MOVDX,61H

OUTDX,AX

OUT22H,AL

3.目標地指傳送指令

這組指令包括三條指令,如表所示:

名稱操作碼操作數(shù)舉例

LEABX,

裝入有效地址LEA目標,源

[DI]

LDSBX,TAB

指針裝入DSLDS目標,源

LE[SI]

LESDI,ARRA

指針裝入ESLES目標,源

Y[BX]

這些指令跟傳送指令MOV的區(qū)別在于不是傳送變量本身,而是傳送變量的地

址。

第23頁共100頁

《微機原理》講義

4.標志位傳送指令

標志位傳送指令共有四條:LAHF(標志裝入AH),SAHF(AH內容存入標志寄

存器),PUSHF(標志壓入堆棧)和POPF(標志彈出堆棧)。這些指令都是單

字節(jié)指令,指令的操作數(shù)以隱含方式規(guī)定,是無操作數(shù)指令。

二、算術運算類

8086/8088的算術運算指令可以處理4個類型的數(shù):

1.無符號二進制數(shù);

2.帶符號的二進制數(shù);

3.無符號的組合十進制數(shù);

4.無符號的分離十進制數(shù)。

除組合十進制數(shù)(也稱組合BCD數(shù))只有加/減運算以外,其余三種類型都

可以進行加、減、乘、除運算。算術運算類指令共有20條,包括加、減、乘、

除指令,除轉移指令外,其余指令都影響標志。

三、邏輯運算與移位指令

為處理字節(jié)或字中各位的信息,8086/8088提供了兩組位處理指令:邏輯運

算指令和移位指令。

1邏輯運算指令

如下表,所有的指令都對起操作數(shù)按位進行操作,操作數(shù)可以是字節(jié)或字。

目標不能是立即數(shù);當有兩個操作數(shù)時;則兩個操作數(shù)不能同時是存儲器操作數(shù);

無論是目的操作數(shù)還是源操作數(shù)都不能是段寄存器。NOT指令性不影響任何標志

位,其它指令執(zhí)行后,總是使OF=CF=O,SF,ZF和PF根據(jù)運算結果置位或復位,

以反映操作結果的特征,而AF狀態(tài)不定。

名稱操作碼(助記符)操作數(shù)舉例

“非”NOT目標NOTAX

LL1”ANDAL,

與AND目標,源

OFOH

“或”O(jiān)R目標,源ORBL,AL

“異或”XOR目標,源XORBX,BX

“測試”TEST目標,源TESTAX,

第24頁共100頁

《微機原理》講義

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論