指令系統(tǒng)3教材_第1頁
指令系統(tǒng)3教材_第2頁
指令系統(tǒng)3教材_第3頁
指令系統(tǒng)3教材_第4頁
指令系統(tǒng)3教材_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

數(shù)據(jù)傳送指令運算指令邏輯運算算術(shù)運算串操作指令控制轉(zhuǎn)移指令處理器控制指令算術(shù)運算指令邏輯運算指令加法指令減法指令乘法指令除法指令BCD碼修正指令邏輯指令移位指令運算指令加法指令1。不帶進位位的加法指令格式:ADDD,S;D+S—>D,B/WD:R,M;S:R,M,n,二者不能同時為M。例:ADDAX,BXADDAL,(2000H)

ADD[BX],ALADDBL,6HADDBYTEPTR[SI],5H注意:指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF。2。帶進位位的加法指令(用于多字節(jié)(字)加法)格式:ADCD,S;D+S+CF—>D,B/WD:R,M;S:R,M,n,二者不能同時為M。注意:指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF。3。加1指令格式:INCD;D+1—>D,B/WD:R,M注意:指令的執(zhí)行影響OF、SF、ZF、PF、AF;但不影響CF。例:ADCAX,BXADCAL,(2000H)

ADC[BX],ALADCBL,6HADCWORDPTR[DI],89H例:INCAXINCBYTEPTR[BX]例:ADDAL,BL前:AL=2EH,BL=45H后:AL=73H(01110011B)CF=0,AF=1,SF=0,ZF=0PF=0,OF=0例:INCAL前:AL=7FH,AF=0,CF=1,OF=0,SF=1,PF=0,ZF=1后:AL=80H,AF=1,CF=1,OF=1,SF=1,PF=0,ZF=0例例:設(shè)在內(nèi)存BUFFER1,BUFFER2開始的兩個存區(qū)中分別存有兩個四字節(jié)數(shù)(如下圖),現(xiàn)求這兩個數(shù)之和,并把它們的結(jié)果存入以BUFFER3為首址的存區(qū)中。解:完成本任務(wù)的程序段和該程序的逐條執(zhí)行過程可見下頁。減法指令1。不帶借位位的減法指令格式:SUBD,S;D-S—>D,B/WD:R,M;S:R,M,n,二者不能同時為M。注意:指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF。2。帶借位位的減法指令(用于多字節(jié)(字)減法)格式:SBBD,S;D-S-CF—>D,B/WD:R,M;S:R,M,n,二者不能同時為M。注意:指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF。3。減1指令格式:DECD;D-1—>D,B/WD:R,M注意:指令的執(zhí)行影響OF、SF、ZF、PF、AF;但不影響CF。例:SBBAX,BXSBBAL,(3456H)

SBB[BX],ALSBBBL,6HSBBWORDPTR[BX],09H例:DECAXDECBYTEPTR[BX]例:SUBCX,DXSUBDL,(2000H)

SUB[SI],CHSUBAL,6HSUBBYTEPTR[BP+5H],89H減法指令之二4。求補指令格式:NEGD;0-D—>D,B/WD:R,M注意:指令的執(zhí)行影響OF、SF、ZF、PF、AF、CF。5。比較指令格式:CMPD,S;D-S,B/WD:R,M;S:R,M,n,二者不能同時為M。注意:1。差不送到D;2。指令的執(zhí)行影響CF、OF、SF、ZF、PF、AF;3。D,S的大小判斷方法與D,S是否是有無符號數(shù)有關(guān)。例:NEGWORDPTR[BX]例:

NEGAL

前:AL=10001011B后:AL=01110101BCF=AF=1,SF=ZF=PF=OF=0例:ADDAL,0JNSL1NEGALORAL,80HL1:例:AL、BL中有兩無符號數(shù),比較其大小。

CMPAL,BLJNCABOVEBELOW:例:AL、BL中有兩有符號數(shù),比較其大小。

CMPAL,BLJNOL1JSGREATLITTLE:

.。L1:JSLITTLEGREAT:D<SD>SD>SD<SOF⊕SF001本例中有的標(biāo)志位是錯誤的ADDAX,1237HCMP43H,ALADDAX,BXDECDSINC(5678H)SUB(DX),1234HADD(SI),(3456H)判斷下列指令的對錯:MOVAL,37HADDAL,0E9HINCALADCAL,99HAL=37HAL=20H,CF=AF=1,SF=ZF=PF=OF=0AL=21H,CF=PF=1,AF=SF=ZF=OF=0AL=0BBH,SF=PF=1,CF=AF=ZF=OF=0AL=0BBH,SF=1,CF=AF=ZF=PF=OF=0例:說明下例程序段各條指令執(zhí)行后,AL的內(nèi)容及對標(biāo)志的影響。乘法(Multiplication)指令1。無符號數(shù)的乘法指令格式:MULS;B:AL*S—>AX,W:AX*S—>DX、AXS:R,M注意:當(dāng)乘積的高字(字節(jié))為零時,CF=OF=0,否則CF=OF=1。ALAXSSAHALDXAX2。有符號數(shù)的乘法指令格式:IMULS;B:AL*S—>AX,W:AX*S—>DX、AXS:R,M注意:當(dāng)乘積的高字(字節(jié))為零(或全1)時,CF=OF=0,否則CF=OF=1。例:MULBL

前:AL=00000011B,BL=00000010B后:AH=00000000B,AL=00000110B,OF=CF=0例:IMULBYTEPTR(1000H)

前:AL=00000111B,(1000H)=11111101B后:AH=11111111B,AL=11101011B,OF=CF=0例:設(shè)在字變量A1,A2中分別存有兩個16位無符號二進制數(shù),現(xiàn)在要求它們的積,并將積存入以BUFFER為偏移地址的連續(xù)存區(qū)中。下面是完成此過程的程序段:

MOVAX,A1

MULA2

MOVBUFFER,AX

MOVBUFFER+2,DX除法(Division)指令1。無符號數(shù)的除法指令格式:DIVS;B:AX/S(8位)=AL….AH,

W:DXAX/S(16位)=AX….DX例:DIVBXIDIVBYTEPTR(3456H)

DIVCLIDIVWORDPTR[DI]2。有符號數(shù)的除法指令格式:IDIVSS:R,M注意:標(biāo)志位無意義.ALAXS)AHALS)DXAXS*ALS*AXAHDX例:9876H/2345HMOVAX,9876HCWDMOVSI,2345HIDIVSI3。擴展指令格式:CBWCWD;AL—>AXAX—>DX、AX此指令的執(zhí)行不影響標(biāo)志位。例:設(shè)在字變量B1,B2中分別存有兩個16位帶符號二進制數(shù),計算B1/B2,并將其商和余數(shù)分別以RESULT為偏移地址的連續(xù)存區(qū)中。下面是完成此過程的程序段:

MOVAX,B1

CWD

IDIVB2

MOVRESULT,AX

MOVRESULT+2,DX十進制修正指令1。BCD加法的修正指令格式:AAA

非壓縮BCD修正指令,若AF=1或(AL)0~3>9,則(AL)0~3+6→(AL)0~3

,(AL)AND0FH→AL,AH+1=AH例:MOVAX,0207HADDAL,8HAAA注意:影響C、A,對O、P、S、Z未定義。用在ADD、ADC、INC指令后。例:AL中的數(shù)為08H,BL中的數(shù)為09H,求AL和BL兩數(shù)的和。注意:影響C、A、P、S、Z,對O未定義。用在ADD、ADC指令后。壓縮BCD修正指令,若AF=1或(AL)0~3>9,則(AL)0~3+6→AL,若CF=1或(AL)4~7>9,則(AL)4~7+6→(AL)4~7

,對AH無影響格式:DAA2。BCD減法的修正指令格式:AASDAS影響C、A,對O、P、S、Z未定義。影響C、A、P、S、Z,對O未定義。3。BCD乘法的修正指令格式:AAM根據(jù)AL中的結(jié)果改變P、S、Z,不影響A、C、O。用在MUL指令之后只用于對存放于AL中的非壓縮的BCD碼相乘結(jié)果進行調(diào)整。ah:=aldiv10al:=almod10MOVAL,07HMOVBL,09HMULBLAAM;AL=07H;BL=09H;AX=003FH;AH=06H,AL=03H,SF=0,PF=1,ZF=04。BCD除法的修正指令格式:AAD注意:1。這六條指令中只有AAD是在除法指令執(zhí)行前執(zhí)行,其余都是在運算指令后修正。2。只有AAD是對AX中的數(shù)據(jù)進行修正,其余都是對AL中的數(shù)據(jù)進行修正。al:=ah*10+alah:=0根據(jù)AL中的結(jié)果改變P、S、Z,不影響A、C、O。用在DIV指令之前。邏輯運算指令1。邏輯非指令格式:NOTD2。邏輯與指令3。邏輯或指令格式:ORD,S格式:ANDD,S4。邏輯異或指令格式:XORD,S;D:R、M,S:R、M、n,B/WD:R、M,B/W,不影響標(biāo)志位注意:影響S、Z、P,CF=OF=0,未對AF定義。利用AND可以強行使目標(biāo)操作數(shù)的某些位為零。;D:R、M,S:R、M、n,B/W注意:影響S、Z、P,CF=OF=0,未對AF定義。利用OR可以強行使目標(biāo)操作數(shù)的某些位為1。;D:R、M,S:R、M、n,B/W注意:影響S、Z、P,CF=OF=0,未對AF定義。利用XOR可以強行使目標(biāo)操作數(shù)的某些位為取反或兩數(shù)是否相等。5。測試指令格式:TESTD,S;D:R、M,S:R、M、n,B/W注意:影響S、Z、P,CF=OF=0,未對AF定義。利用TEST可以測試目標(biāo)操作數(shù)的某些位的狀態(tài)。移位指令1。邏輯算術(shù)左移指令格式:SHLD,SSALD,S2。邏輯右移指令3。算術(shù)右移指令格式:SARD,S格式:SHRD,S;D:R、M,S:1、CL,B/W;D:R、M,S:1、CL,B/W;D:R、M,S:1、CL,B/Wshl=shiftleft,sal=shiftarithmeticleftshr=shiftrightsar=shiftarithmeticright1。循環(huán)左移指令格式:ROLD,S2。循環(huán)右移指令格式:RORD,SD:R、M,S:1、CL,B/W循環(huán)指令rotateleftrotaterightD:R、M,S:1、CL,B/W4。帶進位位的循環(huán)右移指令格式:RCRD,S3。帶進位位的循環(huán)左移指令格式:RCLD,S注意:這類指令只影響CF和OF,CF為最后一次送入的值,OF僅在循環(huán)一位時有效:循環(huán)前后符號位不同時OF=1,否則OF=0。D:R、M,S:1、CL,B/WD:R、M,S:1、CL,B/WRCL=rotatethroughcarryleftrcr

=rotatethroughcarryright例:將DX,AX中的32位數(shù)向左移1位。MOVAX,09HMOVDX,09HSHLAX,1RCLDX,1程序控制轉(zhuǎn)移指令目標(biāo)地址必須在現(xiàn)行的代碼段中,并且是在以下一條指令地址為基準(zhǔn)的+127~-128的范圍內(nèi)。軟中斷指令格式:INTn

其中n為立即數(shù),表示中斷類型。

例如:INT5

溫馨提示

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

評論

0/150

提交評論