微機(jī)原理-2指令課件_第1頁
微機(jī)原理-2指令課件_第2頁
微機(jī)原理-2指令課件_第3頁
微機(jī)原理-2指令課件_第4頁
微機(jī)原理-2指令課件_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章80X86指令系統(tǒng)8086指令具有如下特點(diǎn):ⅰ、指令格式靈活;ⅱ、尋址功能強(qiáng);ⅲ、具有多種數(shù)據(jù)處理能力;ⅳ、具有支持多處理器結(jié)構(gòu)的指令。介紹幾個術(shù)語:·機(jī)器指令(機(jī)器碼)----二進(jìn)制編碼的指令,計算機(jī)僅識別機(jī)器指令。

·指令操作碼----操作數(shù)----指出指令的操作性質(zhì),如加、減、乘、除…;指出參與操作的數(shù),或該數(shù)存放的地址,或程序轉(zhuǎn)移的地址。

·地址源地址------目的地址—有效地址---參與操作的數(shù)所存放的存儲單元的地址;2.18086/8088指令系統(tǒng)一、8086/8088指令格式采用變字長的指令格式,由1~6個字節(jié)組成。

見教材P87操作結(jié)果所存放的存儲單元地址;處理器根據(jù)指令給出的信息,求出存放操作數(shù)的存儲單元地址。二、8086/8088指令系統(tǒng)的尋址方式1、操作數(shù)的種類操作數(shù)數(shù)據(jù)操作數(shù)地址操作數(shù)2、8086/8088指令系統(tǒng)的尋址方式1)數(shù)據(jù)尋址方式①立即尋址方式

指令中所用的8位或16位數(shù)就放在指令本身的最后一個或兩個字節(jié)中。如: MOVAL,80HMOVAX,1090H

⒋基址加變址尋址----操作數(shù)在存儲器中EA=+[SI][DI][BX][BP]

⒌相對的基址加變址尋址----操作數(shù)在存儲器中EA=⒊寄存器相對尋址----操作數(shù)在存儲器中EA=[SI][DI][BX][BP]+816disp[BX][BP]+[SI][DI]+816disp說明:存儲器尋址方式中,默認(rèn)的段寄存器為DS,若寄存器為BP,則默然的段寄存器為SS,可用段前綴修改段寄存器。④I/O端口尋址方式直接尋址

間接尋址——I/O端口地址≤255

——I/O端口地址為0~655352)地址尋址方式段內(nèi)

段間在轉(zhuǎn)移指令中介紹例:初始DS=4120HSS=2400HBX=0200HDI=1000H

執(zhí)行指令MOVAH,[BX+DI+1234H]

EA=?物理地址=?若指令改為MOVAH,[BP+DI+1234H]BP=0450H

EA=?物理地址=?

指令名稱

助記符

功能

傳送

Movmem/reg,mem/regMem/regmem/reg中8/16數(shù)據(jù)

Movreg,data

Reg將8/16位立即數(shù)

Movseg,reg/mem

Seg寄存器/存儲器內(nèi)容

Movreg/mem,seg

寄存器/存儲器seg

Movmem/reg,data

寄存器/存儲器立即數(shù)1、通用數(shù)據(jù)傳送指令(1)最基本的傳送指令-----MOV一、數(shù)據(jù)傳送指令2-28086指令系統(tǒng)格式:MOVDST,SRC其中:reg----寄存器;mem/reg----存儲器/寄存器;seg----段寄存器;dada----8/16位立即數(shù)mem:可由直接尋址、寄存器間址、寄存器相對尋址、基址加變址、相對的基址加變趾尋址說明:1、mov指令可傳送8/16位數(shù)據(jù),數(shù)據(jù)形式由寄存器或立即數(shù)形式?jīng)Q定;(通常源、目的操作數(shù)之間至少有一個為寄存器)2、存儲器之間不能傳送;3、IP不能作源、目的寄存器,CS不能作目的寄存器;4、所有通用傳送指令(除popf、pushf)均不影響

標(biāo)志位狀態(tài)。例2:將內(nèi)存當(dāng)前段的2040H和2041H單元中的兩個字節(jié)交換。例3:在匯編語言中,某程序的數(shù)據(jù)段如下:DATASEGMENTMOVAX,DATADATA1DB14H,3BHMOVDS,AXDATA2DB2DUP(0)MOVSI,OFFSETDATA3DATA3DW3100H,01A6HMOVAL,DATA1STRINGDB‘GOOD’MOVAL,DATA1DATAENDSMOVAX,[SI]

:寫出上述指令執(zhí)行結(jié)果(2)棧操作指令

指令名稱

助記符

功能

壓入

Pushmem/reg

sp(sp)-2((sp)+1,(sp))mem/reg內(nèi)容

Pusgseg

sp(sp)-2((sp)+1,(sp))段寄存器的內(nèi)容

彈出

Popmem/regMem/reg((sp)+1,(sp))

sp(sp)+2

Popseg

段寄存器((sp)+1,(sp))

sp(sp)+2說明:

1、棧操作為字操作,不能字節(jié)操作;

(數(shù)據(jù)存放高對高,低對低)

2、CS、IP寄存器不能參與交換。舉例:見例1

2、累加器專用指令(1)輸入/輸出指令-----8條

(放在I/O時介紹)

INAL,PORTOUTPORT,ALINAX,PORTOUTPORT,AXINAL,DXOUTDX,ALINAX,DXOUTDX,AX(2)換碼指令-----用于查表

指令名稱

助記符

功能

換碼

XLAT(XLAT轉(zhuǎn)換表(AL)將AL中的值轉(zhuǎn)換為內(nèi)存表格中的某一個值

說明:

換碼指令規(guī)定:AL中存放待變換的值,BX寄存器存放內(nèi)存表格的首址,即實(shí)現(xiàn)AL((BX)+(AL))例5初始(AL)=05H(BX)=2500H2500H開始存有一個七段碼表見P73執(zhí)行XLAT指令后AL=?3、地址傳送指令(地址目標(biāo)傳送)

指令名稱

助記符

功能

取有效地址

LEAREG,MEM

寄存器將存儲單元的有效地址

地址指針裝入DS

LDSREG,MEM寄存器將有效地址對應(yīng)的存儲單元內(nèi)容的低位字(偏移量)DS高位字(段值)

地址指針裝入ES

LESREG,MEM

寄存器將有效地址對應(yīng)存儲單元內(nèi)容的低位字(偏移量)ES高位字(段值)例6:初始2500H~2503H單元內(nèi)容為11H、22H、33H、44H執(zhí)行指令LEADI,[2500H]LDSSI,[2500H]后結(jié)果=?

二、算術(shù)運(yùn)算指令1、加法/減法指令

指令名稱

助記符

功能

加法

ADDDST,SRC

DST(SRC)+(DST)

帶進(jìn)位加

ADCDST,SRC

DST(SRC)+(DST)+CF

減法

SUBDST,SRC

DST(DST)-(SRC)

帶借位減

SBBDST,SRC

DST(DST)-(SRC)-CF

取補(bǔ)

NEGDST

DST0-(DST)

比較

CMPDST,SRC

(DST)-(SRC)說明:

指令中兩操作數(shù)可采用多種尋址方式,源操作數(shù)可立即數(shù)、寄存器、任一尋址方式的存儲單元;

以上指令執(zhí)行結(jié)果影響所有標(biāo)志;

比較指令CMP執(zhí)行結(jié)果兩操作數(shù)的值均不變,僅影響標(biāo)志位。例7:試將內(nèi)存32040H和32042H單元的兩個字相加,結(jié)果存于32044H單元。(不考慮進(jìn)位)2、加1/減1指令

指令名稱

助記符

功能

加1

INCDST

DST(DST)+1

減1

DECDST

DST(DST)-1說明:該指令執(zhí)行結(jié)果影響OF、SF、ZF、AF、PF(不影響CF)。例8:在內(nèi)存DATA1開始存有5個單字節(jié)數(shù)據(jù),試求其累加和存于RES單元。

無符號乘法

MULSRC

同IMUL,但不帶符號

帶符號除法

IDIVSRC字節(jié)運(yùn)算:

AL(AX)/(SRC)的商AH(AX)/(SRC)

的余數(shù)字運(yùn)算:

AX(DX:AX)/(SRC)的商

DX(DX:AX)/(SRC)的余數(shù)

無符號除法

DIVSRC

同IDIV,但不帶符號

AAM

乘法分離BCD數(shù)調(diào)整

字節(jié)擴(kuò)為字

CBW

將AL中的符號擴(kuò)展到AH中

字?jǐn)U為雙字

CWD

將AX中的符號擴(kuò)展到DX中

AAD

除法分離BCD數(shù)調(diào)整例9:在內(nèi)存32040H開始的區(qū)域,存有5個單字節(jié)數(shù)據(jù),試求其平均值,存于32050H單元。三、位操作指令(邏輯運(yùn)算和移位指令)1、邏輯運(yùn)算指令

指令名稱

助記符

功能

邏輯與

ANDDST,SRC

DST(DST)^(SRC)

邏輯或

ORDST,SRC

DST(DST)V(SRC)

邏輯異或

XORDST,SRC

DST(DST)異或(SRC)

測試

TESTDST,SRC

(DST)^(SRC)

邏輯非

NOTDST

DST/(DST)

說明:這類指令執(zhí)行結(jié)果CF、OF=0,SF、ZF、PF反映操作結(jié)果,AF、源操作數(shù)不變。例10:將AL中的D7位置1,D6、D4、D2位置0,其余位取反。例11:將AL中的ASCII碼數(shù)據(jù)加偶校驗(yàn)。例12:閱讀下列程序段。(以下幾條指令判斷從鍵盤輸入的字符是否是‘Y’,但對輸入字符的大寫、小寫不加區(qū)別)MOVAH,1

INT21H

ANDAL,11011111B

CMPAL,’Y’

JZYES

:

YES:…

說明:1、循環(huán)指令操作結(jié)果僅影響CF、OF,移位指令操作結(jié)果影響CF、OF、PF、SF、ZF;(移若干位OF不定)

2、無論是循環(huán)還是移位,CNT可為立即數(shù)或CL,為立即數(shù)時其值只能是1,CL中存放移位或循環(huán)次數(shù)。例13:將內(nèi)存DS段的2040H和2041H兩個單元中0~9的ASCII碼轉(zhuǎn)換為壓縮的BCD碼存于2030H單元。四、串操作指令

該類指令特點(diǎn):*通過加重復(fù)前綴來實(shí)現(xiàn)串操作;*可以對字節(jié)串操作,也可以對字串操作;*所有的串操作指令都用寄存器SI對DS段中的源操作數(shù)進(jìn)行間接尋址,用DI對ES段中的目的操作數(shù)進(jìn)行間址。串操作時,地址的修改與方向標(biāo)志DF有關(guān),當(dāng)DF=1,SI和DI作自動減量修改;DF=0時,SI和DI作自動增量修改。1、重復(fù)前綴指令

指令名稱

助記符

功能

重復(fù)前綴

REP重復(fù)執(zhí)行后跟的串指令直到

CX=0

REPE/REPZ

當(dāng)相等/為0時重復(fù)

REPNE/REPNZ

當(dāng)不相等/不為0時重復(fù)2、串操作指令

指令名稱

助記符

功能

說明

串傳送MOVSB/MOVSW

(ES:DI)(DS:SI)字節(jié):SI(SI)+1,DI(DI)+1字:SI(SI)+2,DI(DI)+2DS:SI源串地址ES:DI目的串地址CX字符串長度DF=0遞增DF=1遞減五、控制轉(zhuǎn)移指令

包括4類指令,有的僅改變IP,有的同時改變IP和CS。這類指令包括轉(zhuǎn)移、循環(huán)轉(zhuǎn)移、過程調(diào)用和返回及中斷指令。1、轉(zhuǎn)移指令轉(zhuǎn)移無條件轉(zhuǎn)移條件轉(zhuǎn)移段內(nèi)段間直接轉(zhuǎn)移間接轉(zhuǎn)移直接轉(zhuǎn)移間接轉(zhuǎn)移-位移量-地址存于REG/MEM-段、偏移地址-轉(zhuǎn)移地址存于MEM(雙字)-段內(nèi)直接轉(zhuǎn)移(1)無條件轉(zhuǎn)移指令例15:比較串STR1、STR2,若相等給寄存器AX置全1,否則AX中為不相等處的地址。

指令名稱

助記符

功能段內(nèi)短程轉(zhuǎn)移JMPSHORT標(biāo)號IP(IP)+8段內(nèi)間接轉(zhuǎn)移JMPOPRIP(EA),EA為OPR有效地址段間直接轉(zhuǎn)移JMPFARPTR標(biāo)號

IP標(biāo)號偏移地址CS段地址段內(nèi)近程轉(zhuǎn)移

JMPNEARPTR標(biāo)號IP(IP)+16段間間接轉(zhuǎn)移JMPDWORDPTROPR

IP(EA),CS(EA+2)說明:8086匯編語言用下列方法區(qū)別轉(zhuǎn)移地址*短程轉(zhuǎn)移---標(biāo)號前加SHORT,轉(zhuǎn)移范圍:-128~+127;*近程轉(zhuǎn)移--標(biāo)號前加NEARPTR(或空),范圍:-32768~+32767;*段間轉(zhuǎn)移---標(biāo)號前加FARPTR;*

段內(nèi)間接轉(zhuǎn)移還是段間間接轉(zhuǎn)移由操作數(shù)的類型決定。例16:初始DS=2000HCS=1200HIP=0150HBX=4500H(24500H)=4500H(24502H)=32F0H分別執(zhí)行:(1)JMPBX(2)JMPWOEDPTR[BX](3)JMPDWORDPTR[BX]指令后,轉(zhuǎn)到何處?

例:JMPDONE

JMPSI

JMP2000:1000H

JMPFARPTRABC(2)條件轉(zhuǎn)移

助記符

條件說明

測試標(biāo)志

JZ/JEOPR

結(jié)果為0/相等轉(zhuǎn)移

ZF=1JNZ/JNEOPR

不為0/不相等轉(zhuǎn)移

ZF=0

JCOPR

有進(jìn)位轉(zhuǎn)移

CF=1JNCOPR

無進(jìn)位轉(zhuǎn)移

CF=0

JSOPR

結(jié)果為負(fù)轉(zhuǎn)移SF=1

JNSOPR結(jié)果為正

轉(zhuǎn)移

SF=0

JP/JPEOPR

奇偶位為1/為偶轉(zhuǎn)移PF=1

JNP/JPOOPR

奇偶位為0/為奇轉(zhuǎn)移

PF=0

JOOPR

結(jié)果溢出轉(zhuǎn)移OF=1

JNOOPR

不溢出轉(zhuǎn)移

OF=0以上十條指令是根據(jù)某一個標(biāo)志的值來決定轉(zhuǎn)移的。1*按單個標(biāo)志轉(zhuǎn)移JB/JNAEOPR

低于/不高于等于(無)轉(zhuǎn)

CF=1JAE/JNBOPR

高于等于/不低于(無)轉(zhuǎn)

CF=0JBE/JNAOPR

低于等于/不高于(無)轉(zhuǎn)

CFVZF=1JA/JNBEOPR

高于/不低于等于(無)轉(zhuǎn)CFVZF=0

JL/JNGEOPR

小于/不大于等于(有)轉(zhuǎn)

SF異或OF=1JGE/JNLOPR大于等于/不

小于(有)轉(zhuǎn)

SF異或OF=0

JG/JNLEOPR

大于/不小于等于(有)轉(zhuǎn)

(SF異或)VZF=0JLE/JNGOPR

小于等于/不大于(有)轉(zhuǎn)

(SF異或F)VZF=1

助記符

條件說明

測試標(biāo)志2*比較后轉(zhuǎn)移例17:設(shè)某學(xué)生的英語成績已存放在AL寄存器中,若低于60分,則打印F(FAIL),若高于等于85分,打印G(GOOD),在60分和84分之間打印P(PASS)。例18:試計算內(nèi)存數(shù)據(jù)塊中負(fù)數(shù)的個數(shù)。內(nèi)存分配如下:說明:所有的條件轉(zhuǎn)移指令均為段內(nèi)短程轉(zhuǎn)移,轉(zhuǎn)移范圍為:-128~+127(相對當(dāng)前IP)。

2040H:存負(fù)數(shù)個數(shù)2041H:數(shù)據(jù)塊長度2042H:a1數(shù)據(jù)塊2043H:a2:試編程。2、循環(huán)轉(zhuǎn)移指令

助記符

功能

LOOPOPR

CX(CX)-1(CX≠0)轉(zhuǎn)OPRLOOPZ/LOOPEOPR

CX(CX)-1(CX≠0)且ZF=1轉(zhuǎn)OPRLOOPNZ/LOOPNE

溫馨提示

  • 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

提交評論