下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
M/
《微型計(jì)算機(jī)原理與接口技術(shù)》第5版第3章8086的尋址方式和指令系統(tǒng)本章主要內(nèi)容:
§3.18086的尋址方式
§3.2指令的機(jī)器碼表示方法*
§3.38086的指令系統(tǒng)
*本節(jié)內(nèi)容供選用指令
Instruction計(jì)算機(jī)的指令,通常包含操作碼(Opcode)和操作數(shù)(Operand)兩部分,操作碼指出操作的性質(zhì),操作數(shù)給出操作的對(duì)象。尋址方式就是指令中說明操作數(shù)所在地址的方法。指令有單操作數(shù)、雙操作數(shù)和無操作數(shù)之分。如果是雙操作數(shù),要用逗號(hào)分開,左邊的為源操作數(shù),右邊的為目的操作數(shù)。尋址方式8086的尋址方式有以下幾種:立即數(shù)尋址
可直接從指令隊(duì)列中取數(shù),指令執(zhí)行速度較快;寄存器尋址
操作數(shù)在寄存器中,執(zhí)行速度最快;存儲(chǔ)器尋址
操作數(shù)在存儲(chǔ)器中,又分幾種形式,執(zhí)行速度較慢;其它尋址如隱含尋址、I/O端口尋址、轉(zhuǎn)移類指令尋址下面主要以MOV指令(源操作數(shù))為例來說明8086的尋址方式。8088的指令與8086完全兼容,各種尋址方式也完全相同。§3.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式3.1.8其它尋址方式3.1.1立即尋址方式
(ImmediateAddressing)操作數(shù)直接包含在指令中,它是一個(gè)8位或16位的常數(shù),也叫立即數(shù)。例3.1MOVAL,26H將8位立即數(shù)26H送到AL寄存器中。例3.2MOV CX,2A50H將立即數(shù)2A50H送到CX中,指令的機(jī)器碼存放及執(zhí)行過程如圖3.1。立即尋址立即數(shù)可以送到寄存器中,還可送到一個(gè)存儲(chǔ)單元(8位)中或兩個(gè)連續(xù)的存儲(chǔ)單元(16位)中去。立即數(shù)只能作源操作數(shù),不能作目的操作數(shù)。以A~F打頭的16進(jìn)制數(shù)字出現(xiàn)在指令中時(shí),前面一定要加一個(gè)數(shù)字0。例如,將FF00H送到AX的指令必須寫成:
MOVAX,0FF00H§3.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式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ù)的長(zhǎng)度必須與目的操作數(shù)一致,否則會(huì)出錯(cuò)。例如,MOVCX,AH是錯(cuò)誤的。
雖然CX放得下AH中的8位數(shù)據(jù),但匯編程序不知道應(yīng)該將它放入CH還是CL。
以下幾種尋址方式,操作數(shù)都放在存儲(chǔ)器中,需用不同的方法求出操作數(shù)的物理地址,來獲得操作數(shù)。§3.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式3.1.8其它尋址方式3.1.3直接尋址方式
DirectAddressing1.直接尋址方式操作數(shù)的偏移地址也稱為有效地址EA(EffectiveAddress)。在直接尋址方式下,存儲(chǔ)單元的有效地址直接由指令給出,默認(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,所以將存儲(chǔ)單元中的一個(gè)字送進(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.段超越前綴如果要對(duì)代碼段、堆棧段或附加段寄存器所指出的存儲(chǔ)區(qū)進(jìn)行直接尋址,應(yīng)在指令中指定段超越前綴。例如,數(shù)據(jù)若放在附加段中,則應(yīng)在有效地址前加說明符“ES:”,計(jì)算物理地址時(shí)要用ES作基地址,而不是默認(rèn)值DS。例3.7MOVAX,ES:[500H]該指令的源操作數(shù)的物理地址=16×ES+500H。直接尋址3.符號(hào)地址允許用符號(hào)地址代替數(shù)值地址,也就是給存儲(chǔ)單元起一個(gè)名字,如AREA1,尋址時(shí)只要使用其名字,不必記住具體數(shù)值。例3.8MOV AX,AREA1指令執(zhí)行后,將從有效地址為AREA1的存儲(chǔ)單元中取出一個(gè)字送到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寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式3.1.8其它尋址方式3.1.4寄存器間接尋址方式
RegisterIndirectAddressing指令中給出的寄存器中的值不是操作數(shù)本身,而是操作數(shù)的有效地址EA。寄存器名稱外必須加方括號(hào),可用的寄存器有: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寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式3.1.8其它尋址方式3.1.5寄存器相對(duì)尋址方式
RegisterRelativeAddressing它與寄存器間接尋址十分相似,但在有效地址上還要加一個(gè)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。寄存器相對(duì)尋址上述指令也可用MOVBX,[COUNT+SI]這種形式來表示?!?.18086的尋址方式3.1.1立即尋址方式3.1.2寄存器尋址方式3.1.3直接尋址方式3.1.4寄存器間接尋址方式3.1.5寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式3.1.8其它尋址方式3.1.6基址變址尋址方式
BasedIndexedAddressing有效地址是一個(gè)基址寄存器(BX或BP)和一個(gè)變址寄存器(SI或DI)的內(nèi)容之和,兩個(gè)寄存器均由指令指定。若基址寄存器為BX時(shí),段址寄存器用DS,則:
物理地址=16×DS+BX+SI
或=16×DS+BX+DI
若基址寄存器為BP時(shí),段址寄存器應(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寄存器相對(duì)尋址方式3.1.6基址變址尋址方式3.1.7相對(duì)基址變址尋址方式3.1.8其它尋址方式3.1.7相對(duì)基址變址尋址方式
RelativeBasedIndexedAddressing有效地址是基址和變址寄存器的內(nèi)容,再加上8/16位位移量之和。當(dāng)基址寄存器為BX時(shí),用DS作段寄存器,則:
物理地址=16×DS+BX+SI+8位或16位位移量
或=16×DS+BX+DI+8位或16位位移量當(dāng)基址寄存器為BP時(shí),應(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相對(duì)基址變址尋址涉及操作數(shù)的地址時(shí),常使用方括號(hào),帶[]的地址必須遵循下列規(guī)則:(1)立即數(shù)可以出現(xiàn)在方括號(hào)內(nèi),表示直接地址,例如[2000H]。(2)只有BX、BP、SI、DI可以出現(xiàn)在[]內(nèi),既可單獨(dú)出現(xiàn),也可幾個(gè)寄存器組合(只能相加),或寄存器與常數(shù)相加,但BX和BP不允許出現(xiàn)在同個(gè)[]內(nèi),SI和DI也不能同時(shí)出現(xiàn)。(3)方括號(hào)有相加的含義,故下面幾種寫法是等價(jià)的:
6[BX][SI]/[BX+6][SI]/[BX+SI+6](4)若[]內(nèi)包含BP,則隱含使用SS提供基地址,它們的物理地址=16×SS+EA。相對(duì)基址變址尋址包含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中的一個(gè),計(jì)算物理地址時(shí),應(yīng)將上式中的SS改為相應(yīng)的段寄存器。其余情況均隱含使用DS提供基地址,它們的物理地址計(jì)算方法:
物理地址=16×DS+EA相對(duì)基址變址尋址這類操作數(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中的一個(gè)。§3.1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 星露谷物語課件
- 危重患者感染風(fēng)險(xiǎn)評(píng)估
- 2025FIGOIPPS共識(shí):慢性盆腔疼痛全球管理方案改善探索
- 2025廣東深圳市規(guī)劃和自然資源局光明管理局勞務(wù)派遣人員招聘1人考試筆試備考試題及答案解析
- 2025廣西桂林產(chǎn)業(yè)發(fā)展集團(tuán)有限公司招聘2人筆試考試備考題庫(kù)及答案解析
- 昔昔課件教學(xué)課件
- 中心供氧安全教育
- 運(yùn)動(dòng)手表創(chuàng)業(yè)介紹
- 昂科旗產(chǎn)品教學(xué)課件
- 重癥醫(yī)學(xué)科機(jī)械通氣護(hù)理要點(diǎn)介紹
- 零序CT驗(yàn)收專題知識(shí)專家講座
- 自動(dòng)控制原理課程設(shè)計(jì)報(bào)告恒溫箱
- 江西d照駕駛員理論考試
- 水利水電工程建設(shè)參建各方安全生產(chǎn)職責(zé)
- GB/T 30340-2013機(jī)動(dòng)車駕駛員培訓(xùn)機(jī)構(gòu)資格條件
- GB/T 19215.1-2003電氣安裝用電纜槽管系統(tǒng)第1部分:通用要求
- GB/T 13298-2015金屬顯微組織檢驗(yàn)方法
- 滴滴打車用戶出行習(xí)慣報(bào)告
- 核對(duì)稿-400單元開車
- 保密管理-保密教育培訓(xùn)簽到簿
- 《中藥炮制技術(shù)》 教學(xué)課件大全
評(píng)論
0/150
提交評(píng)論