微機(jī)原理與接口技術(shù):第3章 3-13-2數(shù)據(jù)尋址_第1頁
微機(jī)原理與接口技術(shù):第3章 3-13-2數(shù)據(jù)尋址_第2頁
微機(jī)原理與接口技術(shù):第3章 3-13-2數(shù)據(jù)尋址_第3頁
微機(jī)原理與接口技術(shù):第3章 3-13-2數(shù)據(jù)尋址_第4頁
微機(jī)原理與接口技術(shù):第3章 3-13-2數(shù)據(jù)尋址_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1第3章

匯編語言與程序設(shè)計2主要內(nèi)容:指令系統(tǒng)的一般概念對操作數(shù)的尋址方式六大類指令的操作原理:操作碼的含義指令對操作數(shù)的要求指令執(zhí)行的結(jié)果3一、概述41.指令系統(tǒng)與程序指令:就是指示計算機(jī)進(jìn)行某一工作的命令。程序是為求解某一問題或進(jìn)行某項工作的若干條指令的有序集合。5指令格式操作碼操作數(shù)說明指令的類型與功能地址域參加操作的數(shù)據(jù)或操作結(jié)果存放的地址6指令格式:

零操作數(shù)指令:操作碼單操作數(shù)指令:操作碼操作數(shù)雙操作數(shù)指令:操作碼操作數(shù),操作數(shù)多操作數(shù)指令:三操作數(shù)及以上7指令格式:

單字節(jié)雙字節(jié)3字節(jié)4字節(jié)8指令格式操作碼[操作數(shù)],[操作數(shù)]目的操作數(shù)源操作數(shù)參加操作的數(shù)據(jù)或結(jié)果存放的地址匯編語言基本概念用二進(jìn)制代碼表示指令系統(tǒng)的語言稱為機(jī)器語言;用機(jī)器語言設(shè)計的程序稱為機(jī)器語言程序。9匯編語言基本概念用英文助記符表示指令系統(tǒng)的語言稱為匯編語言,比如用ADD、SUB、JMP表示加、減、轉(zhuǎn)移等操作。匯編語言必須轉(zhuǎn)換成機(jī)器語言,計算機(jī)才能被識別和執(zhí)行。這一轉(zhuǎn)換過程稱為匯編,由專門的匯編程序進(jìn)行。用匯編語言指令編寫的程序稱為匯編語言程序。在計算機(jī)中,一條匯編語言指令對應(yīng)于一條機(jī)器語言指令。因此,匯編語言指令實際上是機(jī)器指令的符號化表示。10匯編語言基本概念把用匯編語言編寫的程序稱為源程序。把經(jīng)匯編而生成的機(jī)器語言程序稱為目標(biāo)程序或目標(biāo)代碼。用來說明匯編過程,或?qū)R編過程進(jìn)行輔助說明的指令,稱為偽指令。11128086尋址方式在指令中,操作數(shù)或操作數(shù)的地址可用多種方式來表示,統(tǒng)稱為尋址方式。同一條指令可以有不同的尋址方式,以說明不同的操作對象。13數(shù)據(jù)類型在計算機(jī)中,二進(jìn)制數(shù)據(jù)有多種類型或用途。一種是指令處理的對象,即操作數(shù);另一種是指令字;第三種是操作數(shù)的地址。在指令中,操作數(shù)又分為兩種,一種是參加運(yùn)算或由計算機(jī)處理的對象,即數(shù)據(jù)操作數(shù),簡稱為數(shù)據(jù);另一種表示轉(zhuǎn)移指令的目標(biāo)地址,即轉(zhuǎn)移地址。1415立即數(shù):由指令直接給出寄存器數(shù)據(jù):操作數(shù)存放在寄存器中存儲器數(shù)據(jù):操作數(shù)存在存儲器中數(shù)據(jù)操作數(shù)的分類16轉(zhuǎn)移地址操作數(shù)

其表示方式可以在轉(zhuǎn)移指令中直接給出,也可根據(jù)某一尋址方式經(jīng)計算后求得。17立即數(shù)操作數(shù)立即數(shù)只能作為源操作數(shù)。其本身是參加操作的數(shù)據(jù),可以是8位或16位。例:MOVAX,1234HMOVBL,22H立即數(shù)無法作為目的操作數(shù);立即數(shù)可以是無符號或帶符號數(shù),其數(shù)值應(yīng)在可取值范圍內(nèi)。18寄存器操作數(shù):參加運(yùn)算的數(shù)存放在指令給出的寄存器中,可以是16位或8位。通用寄存器存放數(shù)據(jù)或偏移地址;段寄存器數(shù)據(jù)的段基地址;例:MOVAX,BXMOVDL,CH19存儲器操作數(shù)參加運(yùn)算的數(shù)存放在存儲器的某一個或某兩個單元中;表現(xiàn)形式:[],表示數(shù)據(jù)存放單元的偏移地址(或EA);立即數(shù)或寄存器20存儲器操作數(shù)例例:MOVAX,[1200H]

-表示將偏移地址為1200H和1201H兩單元的內(nèi)容送到AX中。

22H11H1200H偏移地址AHAL┇

21二、尋址方式尋址方式-如何尋找內(nèi)存操作數(shù)。在8086/8088中,地址是由兩部分組成:段基址:單元所在段的基地址,大部分情況下在數(shù)據(jù)段寄存器DS內(nèi);段內(nèi)偏移量:此單元距離段基地址的距離。段內(nèi)偏移量為適應(yīng)各種數(shù)據(jù)結(jié)構(gòu)的需要,可有幾個部分組成,不同尋址方式的構(gòu)成部分不同。即:不同尋址方式實質(zhì)上是構(gòu)成段內(nèi)的偏移量的方法不同。2223尋址方式

尋找操作數(shù)所在地址的方法(數(shù)據(jù)尋址方式)尋找轉(zhuǎn)移地址的方法(轉(zhuǎn)移地址尋址方式)本節(jié)數(shù)據(jù)尋址方式分類24251.立即數(shù)尋址指令中的源操作數(shù)是立即數(shù),即源操作數(shù)是參加操作的數(shù)據(jù)本身;操作數(shù)直接存放在指令中,緊跟在操作碼之后;例:MOVAX,1200H12H00HAHALMOV代碼段┇

高地址單元內(nèi)容放高8位,低地址單元內(nèi)容放低8位26例如指令:

MOVAL,5

MOV

AX,2790H注意:立即數(shù)可以是8位或16位;對于16位數(shù)據(jù),低字節(jié)放在低地址,高字節(jié)在高地址;立即數(shù)只能是源操作數(shù),不能是目的操作數(shù);此方式執(zhí)行時直接從隊列取立即數(shù),不另占總線周期,執(zhí)行速度很快;經(jīng)常用于給寄存器或存儲單元賦初值。27282.寄存器尋址是指令操作數(shù)域給出存放操作數(shù)的寄存器。例:MOVAX,BXAXBX例:指令執(zhí)行前:(AX)=3064H(SS)=1234H,MOVSS,AX指令執(zhí)行后:(SS)=3064H,(AX)保持不變。29指令執(zhí)行前指令執(zhí)行后操作數(shù)可以是8位或16位寄存器;也可以是段寄存器、地址指針或變址寄存器;該尋址方式可以減少指令長度;因為操作數(shù)在寄存器中,不需要訪問存儲器,運(yùn)算速度較高;常用于存、取寄存器中的數(shù)。30313.直接尋址是指令操作數(shù)域給出的是存放操作數(shù)地址的偏移量,也稱為有效地址,常用EA表示。即:操作數(shù)是存儲器操作數(shù);[]內(nèi)是用16位常數(shù)表示數(shù)據(jù)所在單元的偏移地址;

操作數(shù)在內(nèi)存中的偏移地址由指令直接給出;操作數(shù)默認(rèn)在數(shù)據(jù)段,段基地址由DS給出;32

MOVBX,[2000H]執(zhí)行前(DS)=4000H,EA=2000H,

(42000H)=1FH,(42001H)=75H。執(zhí)行后( BX)=751FH3334直接尋址例:MOVAX,[1200H]例:MOVAX,ES:[1200H]22H11H1200H偏移地址┇

數(shù)據(jù)段AHAL附加段例:MOVAX,[3100H](DS)=6000H,(63100H)=3050H,則:

(AX)=3050H35可以用符號地址來代替數(shù)值地址以表示操作數(shù)的偏移地址;MOVAX,[VALUE]符號地址出現(xiàn)在指令中時,可省略方括號;MOVAX,DATA直接尋址方式適用于存、取存儲器變量。36374.寄存器間接尋址指令操作數(shù)給出存放操作數(shù)地址偏移量的寄存器;操作數(shù)的偏移地址在形式上用“[間址寄存器]”表示。操作數(shù)的段地址根據(jù)所選擇的通用寄存器決定。BX,SI,DI或BP。段寄存器中的的基地址左移4位與16位偏移量相加,生成20位的物理地址。38設(shè)(DS)=3000H,(BX)=3000H,執(zhí)行指令

MOVAX,[BX]執(zhí)行后(AX)=2C7DH。3940寄存器間接尋址例例:設(shè)BX=1200H執(zhí)行:MOVAX,[BX]22H11H1200H偏移地址AHAL┇

1122數(shù)據(jù)段代碼段MOV41寄存器間接尋址由寄存器間接給出操作數(shù)的偏移地址;存放偏移地址的寄存器稱為間址寄存器,包括:BX,BP,SI,DI操作數(shù)的段地址(數(shù)據(jù)處于哪個段)取決于選擇哪一個間址寄存器:

BX,SI,DIBP默認(rèn)在數(shù)據(jù)段DS默認(rèn)在堆棧段SS42寄存器間接尋址寄存器間接尋址基址尋址(間址寄存器為基址寄存器BX,BP)變址尋址(間址寄存器為變址寄存器SI,DI)例:MOVBX,[DI](DS)=6000H,(DI)=2000H,

物理地址PA=62000H,假定:(62000H)=50A0H,則:(BX)=50A0H.43指令操作數(shù)域給出的是一個基址寄存器和一個偏移量,基地址與偏移量相加,作為操作數(shù)地址的偏移地址EA。段地址左移4位,與有效地址相加,生成20位物理地址。445寄存器相對尋址例如指令:MOVAX,DATA[DI]

執(zhí)行前(DS)=3000H,(DI)=2000H,

DATA=300H,執(zhí)行后(AX)=201AH。454647例:設(shè):DS=2000H,BX=0220H,DATA=05H執(zhí)行指令:MOVAX,[BX+DATA]之后AX=[20225H]例:(SS)=5000H,(BP)=3000H,COUNT=2040H,(AX)=1234H,指令執(zhí)行后:

EA=5040H,PA=55040H,假如(55040H)=5548H,則:(AX)=5548H48496基址加變址尋址操作數(shù)的偏移地址(EA)為:基址寄存器(BX/BP)的內(nèi)容+變址寄存器(SI/DI)的內(nèi)容;MOVAX,[BX][SI]或MOVAX,[BX+SI]操作數(shù)的段地址由所選擇的基址寄存器決定。例:執(zhí)行以下程序段后,AX=?MOVSI,1010HMOVBX,0202HMOVAX,[SI+BX]5051基址、變址尋址例題目分析:第3指令為基址變址尋址,存儲器操作數(shù)的偏移地址:=SI+BX=1010H+0202H=1212H因為基址寄存器為BX,故數(shù)據(jù)默認(rèn)在數(shù)據(jù)段。22H11H1212H偏移地址AHAL┇

1122數(shù)據(jù)段代碼段MOV例如指令:MOVAX,[BX][DI]或MOVAX,[BX+DI]執(zhí)行前(DS)=2100H,(BX)=0158H,(DI)=10A5H,執(zhí)行后(AX)=?52執(zhí)行指令前:(DS)=3200H,(BX)=0456H,(SI)=1094H,(334EAH)=4567H,指令執(zhí)行后:

EA=14EAH,PA=334EAH,(AX)=4567H53MOVAX,[BX][SI]547相對基址加變址尋址操作數(shù)的偏移地址=基址寄存器內(nèi)容+變址寄存器內(nèi)容+位移量。MOVAX,MASK[DI][BX]操作數(shù)的段地址由選擇的基址寄存器決定基址寄存器主要有BX、BP,變址寄存器主要有SI和DI。BX默認(rèn)DS,BP默認(rèn)SS。例:MOVAX,[BX+SI+MASK]MOVAX,[BX+MASK][SI]MOVAX,MASK[DI][BX]MOVAX,[BX]MASK[SI]MOVAX,[BX+SI]MASK5556例如指令:

MOVAX,MASK[BX][DI]MOVAX,MASK[BX+DI]MOVAX,[

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論