微機(jī)原理課件-5版第3章3.1-8086尋址方式_第1頁
微機(jī)原理課件-5版第3章3.1-8086尋址方式_第2頁
微機(jī)原理課件-5版第3章3.1-8086尋址方式_第3頁
微機(jī)原理課件-5版第3章3.1-8086尋址方式_第4頁
微機(jī)原理課件-5版第3章3.1-8086尋址方式_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

M/

《微型計算機(jī)原理與接口技術(shù)》第5版第3章8086的尋址方式和指令系統(tǒng)本章主要內(nèi)容:

§3.18086的尋址方式

§3.2指令的機(jī)器碼表示方法*

§3.38086的指令系統(tǒng)

*本節(jié)內(nèi)容供選用指令

Instruction計算機(jī)的指令,通常包含操作碼(Opcode)和操作數(shù)(Operand)兩部分,操作碼指出操作的性質(zhì),操作數(shù)給出操作的對象。尋址方式就是指令中說明操作數(shù)所在地址的方法。指令有單操作數(shù)、雙操作數(shù)和無操作數(shù)之分。如果是雙操作數(shù),要用逗號分開,左邊的為源操作數(shù),右邊的為目的操作數(shù)。尋址方式8086的尋址方式有以下幾種:立即數(shù)尋址

可直接從指令隊列中取數(shù),指令執(zhí)行速度較快;寄存器尋址

操作數(shù)在寄存器中,執(zhí)行速度最快;存儲器尋址

操作數(shù)在存儲器中,又分幾種形式,執(zhí)行速度較慢;其它尋址如隱含尋址、I/O端口尋址、轉(zhuǎn)移類指令尋址下面主要以MOV指令(源操作數(shù))為例來說明8086的尋址方式。8088的指令與8086完全兼容,各種尋址方式也完全相同?!?.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.1立即尋址方式

(ImmediateAddressing)操作數(shù)直接包含在指令中,它是一個8位或16位的常數(shù),也叫立即數(shù)。例3.1MOVAL,26H將8位立即數(shù)26H送到AL寄存器中。例3.2MOV CX,2A50H將立即數(shù)2A50H送到CX中,指令的機(jī)器碼存放及執(zhí)行過程如圖3.1。立即尋址立即數(shù)可以送到寄存器中,還可送到一個存儲單元(8位)中或兩個連續(xù)的存儲單元(16位)中去。立即數(shù)只能作源操作數(shù),不能作目的操作數(shù)。以A~F打頭的16進(jìn)制數(shù)字出現(xiàn)在指令中時,前面一定要加一個數(shù)字0。例如,將FF00H送到AX的指令必須寫成:

MOVAX,0FF00H§3.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.2寄存器尋址方式

(RegisterAddressing)操作數(shù)包含在寄存器中,由指令指定寄存器的名稱。16位寄存器可以是:AX、BX、CX、DX、SI、DI、SP、BP8位寄存器為:AH、AL、BH、BL、CH、CL、DH、DL例3.3MOV DX,AX設(shè)指令執(zhí)行前AX=3A68H,DX=18C7H則指令執(zhí)行后DX=3A68H,AX=3A68H(保持不變)寄存器尋址例3.4MOVCL,AH

將AH中的8位數(shù)據(jù)傳送到CL寄存器。

注意:源操作數(shù)的長度必須與目的操作數(shù)一致,否則會出錯。例如,MOVCX,AH是錯誤的。

雖然CX放得下AH中的8位數(shù)據(jù),但匯編程序不知道應(yīng)該將它放入CH還是CL。

以下幾種尋址方式,操作數(shù)都放在存儲器中,需用不同的方法求出操作數(shù)的物理地址,來獲得操作數(shù)?!?.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.3直接尋址方式

DirectAddressing1.直接尋址方式操作數(shù)的偏移地址也稱為有效地址EA(EffectiveAddress)。在直接尋址方式下,存儲單元的有效地址直接由指令給出,默認(rèn)使用的段寄存器為數(shù)據(jù)段寄存器DS。操作數(shù)的物理地址=16×DS+EA例3.5MOV AX,[2000H]指令中直接給出有效地址EA,這里EA=2000H,必須加[],表示不是立即數(shù)。設(shè)DS=3000H,則源操作數(shù)的物理地址=16×3000HH=32000H因目的操作數(shù)是16位寄存器AX,所以將存儲單元中的一個字送進(jìn)AX。若(32000H)=34H,(32001H)=12H,則執(zhí)行指令后,AX=1234H。指令執(zhí)行過程如圖3.2例3.6MOVAL,[2000H]假設(shè)條件同例3.5,指令執(zhí)行后將32000H單元中的字節(jié)送到AL,結(jié)果使AL=34H。直接尋址圖3.2指令MOVAX,[2000H]的執(zhí)行過程示意圖直接尋址2.段超越前綴如果要對代碼段、堆棧段或附加段寄存器所指出的存儲區(qū)進(jìn)行直接尋址,應(yīng)在指令中指定段超越前綴。例如,數(shù)據(jù)若放在附加段中,則應(yīng)在有效地址前加說明符“ES:”,計算物理地址時要用ES作基地址,而不是默認(rèn)值DS。例3.7MOVAX,ES:[500H]該指令的源操作數(shù)的物理地址=16×ES+500H。直接尋址3.符號地址允許用符號地址代替數(shù)值地址,也就是給存儲單元起一個名字,如AREA1,尋址時只要使用其名字,不必記住具體數(shù)值。例3.8MOV AX,AREA1指令執(zhí)行后,將從有效地址為AREA1的存儲單元中取出一個字送到AX中去。程序中事先應(yīng)用說明語句也叫做偽指令來加以說明。例3.10AREA1 DW 0867H …MOV AX,AREA1這里的DW偽指令語句用來定義變量。MOV指令執(zhí)行后將AREA1單元中內(nèi)容送到AX,結(jié)果AX=0867H。

§3.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.4寄存器間接尋址方式

RegisterIndirectAddressing指令中給出的寄存器中的值不是操作數(shù)本身,而是操作數(shù)的有效地址EA。寄存器名稱外必須加方括號,可用的寄存器有:BX、BP、SI、DI。應(yīng)遵守以下約定:約定1:如果指令中指定的寄存器是BX、SI或DI,則默認(rèn)操作數(shù)存放在數(shù)據(jù)段中,

物理地址=16×DS+BX

或=16×DS+SI

或=16×DS+DI例3.11MOVBX,[SI]設(shè)DS=1000H,SI=2000H,(12000H)=318BH,則:物理地址=16×DS+SI=10000HH=12000H指令執(zhí)行后,BX=318BH,指令執(zhí)行過程如圖3.3寄存器間接尋址約定2:如果指令中用BP進(jìn)行間接尋址,則默認(rèn)操作數(shù)在堆棧段中。例如:

MOVAX,[BP]

;操作數(shù)的物理地址

;=16×SS+BP指令中也可以指定段超越前綴。例如:MOVBX,DS:[BP]

;源操作數(shù)物理地址

;=16×DS+BPMOVAX,ES:[SI]

;源操作數(shù)物理地址

;=16×ES+SI§3.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.5寄存器相對尋址方式

RegisterRelativeAddressing它與寄存器間接尋址十分相似,但在有效地址上還要加一個8/16位的位移量。例3.12MOVBX,COUNT[SI]設(shè)DS=3000H,SI=2000H,位移量COUNT=4000H,(36000H)=5678H,則: 物理地址=16×DS+SI+COUNT =30000HHH =36000H執(zhí)行結(jié)果BX=5678H,執(zhí)行過程如圖3.4。寄存器相對尋址上述指令也可用MOVBX,[COUNT+SI]這種形式來表示?!?.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.6基址變址尋址方式

BasedIndexedAddressing有效地址是一個基址寄存器(BX或BP)和一個變址寄存器(SI或DI)的內(nèi)容之和,兩個寄存器均由指令指定。若基址寄存器為BX時,段址寄存器用DS,則:

物理地址=16×DS+BX+SI

或=16×DS+BX+DI

若基址寄存器為BP時,段址寄存器應(yīng)使用SS,則:

物理地址=16×SS+BP+SI

或=16×SS+BP+DI例3.13MOVAX,[BX][SI]設(shè)DS=3000H,BX=1200H,SI=0500H, (31700H)=ABCDH,則:物理地址=16×DS+BX+SI =30000HHH=31700H執(zhí)行結(jié)果:AX=ABCDH,指令執(zhí)行過程如圖3.5?!?.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對尋址方式3.1.6基址變址尋址方式3.1.7相對基址變址尋址方式3.1.8其它尋址方式3.1.7相對基址變址尋址方式

RelativeBasedIndexedAddressing有效地址是基址和變址寄存器的內(nèi)容,再加上8/16位位移量之和。當(dāng)基址寄存器為BX時,用DS作段寄存器,則:

物理地址=16×DS+BX+SI+8位或16位位移量

或=16×DS+BX+DI+8位或16位位移量當(dāng)基址寄存器為BP時,應(yīng)使用SS作段寄存器,則:

物理地址=16×SS+BP+SI+8位或16位位移量

或=16×SS+BP+DI+8位或16位位移量例3.14MOVAX,MASK[BX][SI]設(shè)DS=2000H,BX=1500H,SI=0300H,MASK=0200H,(21A00H)=26BFH,則:物理地址=16×DS+BX+SI+MASK=20000HHHH=21A00H執(zhí)行結(jié)果:AX=26BFH,指令執(zhí)行過程如圖3.6相對基址變址尋址涉及操作數(shù)的地址時,常使用方括號,帶[]的地址必須遵循下列規(guī)則:(1)立即數(shù)可以出現(xiàn)在方括號內(nèi),表示直接地址,例如[2000H]。(2)只有BX、BP、SI、DI可以出現(xiàn)在[]內(nèi),既可單獨出現(xiàn),也可幾個寄存器組合(只能相加),或寄存器與常數(shù)相加,但BX和BP不允許出現(xiàn)在同個[]內(nèi),SI和DI也不能同時出現(xiàn)。(3)方括號有相加的含義,故下面幾種寫法是等價的:

6[BX][SI]/[BX+6][SI]/[BX+SI+6](4)若[]內(nèi)包含BP,則隱含使用SS提供基地址,它們的物理地址=16×SS+EA。相對基址變址尋址包含BP的操作數(shù)有3種形式: DISP[BP+SI]

;EA=BP+SI+DISP DISP[BP+DI]

;EA=BP+DI+DISP DISP[BP]

;EA=BP+DISP其中,DISP表示8位或16位位移量,也可以為0。這種情況下,也允許用段超越前綴將SS修改為CS、DS或ES中的一個,計算物理地址時,應(yīng)將上式中的SS改為相應(yīng)的段寄存器。其余情況均隱含使用DS提供基地址,它們的物理地址計算方法:

物理地址=16×DS+EA相對基址變址尋址這類操作數(shù)可以有以下幾種形式:[DISP]

;EA=DISP

DISP[BX+SI]

;EA=BX+SI+DISP

DISP[BX+DI]

;EA=BX+DI+DISP

DISP[BX]

;EA=BX+DISP

DISP[SI]

;EA=SI+DISP

DISP[DI]

;EA=DI+DISP同樣,也可用段超越前綴將式中的DS修改為CS、ES或SS中的一個?!?.1

溫馨提示

  • 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

提交評論