工業(yè)用微型計(jì)算機(jī)第二講_第1頁(yè)
工業(yè)用微型計(jì)算機(jī)第二講_第2頁(yè)
工業(yè)用微型計(jì)算機(jī)第二講_第3頁(yè)
工業(yè)用微型計(jì)算機(jī)第二講_第4頁(yè)
工業(yè)用微型計(jì)算機(jī)第二講_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

2.3指令系統(tǒng)共分為6類92種指令。(1)數(shù)據(jù)傳送(2)算術(shù)運(yùn)算(3)邏輯運(yùn)算和移位(4)串處理(5)控制轉(zhuǎn)移類(6)處理器控制12.3.1數(shù)據(jù)傳送類指令按功能分為四組:②輸入輸出指令;①通用數(shù)據(jù)傳送指令;③目標(biāo)地址傳送指令;④標(biāo)志傳送指令;MOVPUSHPOPXCHGXLATINOUTLEALDSLESLAHFSAHFPUSHFPOPF2■指令匯編格式:MOVdest,src操作:將一個(gè)源操作數(shù)(字節(jié)或字)傳送到目標(biāo)操作數(shù)中。dest←(src)■受影響的狀態(tài)標(biāo)志位:沒有(1)MOV(move)傳送1.通用數(shù)據(jù)傳送指令;32012-06.如下指令中正確的指令是【】

A.MOVDS,1234HB.MOVBX,1234H

C.MOVIP,1234HD.MOV1234H,AX2010-07.下列四條指令中正確的是【】

A.MOVDS,0100HB.MOVAL,0100H

C.SHRAL,4D.MOVAL,AH2009-04.下列四條指令中,錯(cuò)誤的是【】

A.MOVAX,[DI]B.MOVAL,[DI+5]

C.MOVCS,AXD.MOVDS,AXBDC4SS:0000SP00000H棧頂棧底初始化時(shí)SPFFFFFH堆棧段...××H××H...12H34H......

8086/8088堆棧結(jié)構(gòu)■指令匯編格式:PUSHsrc■

指令匯編格式:POPdest5注意:

1.源操作數(shù)可以是CPU內(nèi)部的16位通用寄存器、段寄存器和內(nèi)存操作數(shù)。2.入棧操作對(duì)象必須是16位數(shù),不能是8位數(shù)。3.可以使用除立即數(shù)以外的其它尋址方式。PUSHBLPUSHDHPOPALPOPCL

■指令匯編格式:PUSHsrc■

指令匯編格式:POPdest62012-25.設(shè)SP=100H,AX=200H,當(dāng)8086執(zhí)行PUSHAX指令后,SP的值變?yōu)開_______。P572009-27.若堆棧指針SP的初值為3000H,執(zhí)行PUSHAX指令后SP的值為___________。FEH或00FEH2FFEH7(4)XLAT(translate)轉(zhuǎn)換表■指令匯編格式:XLAT操作:BX和AL內(nèi)容之和指出的內(nèi)存字節(jié)單元的內(nèi)容送到AL中。AL←(BX+AL)■受影響的狀態(tài)標(biāo)志位:沒有■說明:XLAT指令用于查表。表的開始地址即表頭地址由BX寄存器給出。AL中的原始值是要尋址的表中元素地址的位移量,規(guī)定表中第一個(gè)字節(jié)的位移量為0。這是一種特殊的基址變址尋址方式,基址寄存器為BX,變址寄存器為AL。8MOVBX,2A00HMOVAL,3XLAT■

舉例DS:2A0041H+142H+243H+344H+445H+546H+647H+748H+849H+94AH+104BH+114CH+124DH+134EH+144FH+1550H+1651H+1752H+1853H.+1954H+2055H9IN(Input)輸入指令一般格式INAL,n;BAL←[n]

INAX,n;WAX←[n+1][n]

INAL,DX;BAL←[DX]

INAX,DX;WAX←[DX+1][DX]

功能:從I/O端口輸入數(shù)據(jù)至AL或AX。注意:輸入指令允許把一個(gè)字節(jié)或一個(gè)字由一個(gè)輸入端口傳送到AL或AX中。若端口地址超過255時(shí),則用DX保存端口地址,這樣用DX作端口尋址最多可尋找64K個(gè)端口(必須用DX)。2.輸入輸出指令;10OUT(Output)輸出指令一般格式OUTn,AL;BAL→[n]

OUTn,AX;WAX→[n+1][n]

OUTDX,AL;BAL→[DX]

OUTDX,AX;WAX→[DX+1][DX]功能:將AL或AX的內(nèi)容輸出至I/O端口。注意:該指令將AL或AX中的內(nèi)容傳送到一個(gè)輸出端口。端口尋址方式與IN指令相同。112011-16.8088執(zhí)行指令OUT12,AL時(shí),數(shù)據(jù)總線傳送的內(nèi)容是【】

A.AL的值B.AX的值

C.12D.12H2010-17.執(zhí)行指令OUTDX,AL時(shí)【】

A.B.

C.D.AC12(1)LEA(loadeffectiveaddress)取有效地址■指令匯編格式:LEAreg16,mem操作:將指令中給出的存儲(chǔ)器操作數(shù)的有效地址(即地址的偏移量)送到指定的寄存器中。

reg16←mem的EA■受影響的狀態(tài)標(biāo)志位:沒有■說明:LEA指令是將源操作數(shù)地址的偏移量,即有效地址傳送到目標(biāo)操作數(shù)中。源操作數(shù)必須是一個(gè)存儲(chǔ)器操作數(shù),目標(biāo)操作數(shù)可以是任一16位通用寄存器、指針寄存器或變址寄存器。3.目標(biāo)地址傳送指令;13指令LEA與LDS,LES的比較已知:DS=09A0H,BX=0048HLEADI,[BX]LDSDI,[BX]LESDI,[BX]→執(zhí)行后:DI=0048H→執(zhí)行后:DI=003EHDS=0816H→執(zhí)行后:DI=003EHES=0816HDS=09A008H……3EH00H16H0048H0049H004AH004BH14■標(biāo)志寄存器長(zhǎng)度為16位,其中9個(gè)位有定義?!痢痢痢罯F

DFIFTFSF

ZF×AF×PF×CF1514131211109876543210標(biāo)志寄存器FR4.標(biāo)志傳送指令15●(1)LAHF指令(讀標(biāo)志指令)指令格式:LAHF指令功能:將標(biāo)志寄存器低8位→AH。●(2)SAHF(設(shè)置標(biāo)志指令)指令格式:SAHF指令功能:將AH→標(biāo)志寄存器低8位。SFZF

AFPFCF01234567AHLAHF的功能SFZF

AFPFCF01234567AHSAHF的功能16●

(3)PUSHF指令(標(biāo)志進(jìn)棧)指令格式:PUSHF指令功能:將16位標(biāo)志寄存器入棧,同時(shí)修改棧指針SP?!瘢?)POPF指令(標(biāo)志出棧)指令格式:POPF指令功能:將棧頂?shù)囊粋€(gè)字送標(biāo)志寄存器,同時(shí)修改棧指針SP。注:字傳送方式16位標(biāo)志寄存器中的16位數(shù)據(jù)傳送即狀態(tài)標(biāo)志位OF、CF、AF、ZF、SF、PF的傳送及控制標(biāo)志位IF、DF、TF的傳送17指令類型助記符算術(shù)運(yùn)算加法(5)ADD,ADC,INC,AAA,DAA減法(7)SUB,SBB,DEC,NEG,CMP,AAS,DAS乘法(3)MUL,IMUL,AAM除法(3)DIV,IDIV,AAD轉(zhuǎn)換(2)CBW,CWD2.3.2算術(shù)運(yùn)算指令181.加法指令(1)ADD(addition)加法(2)ADC(additionwithcarry)帶進(jìn)位加(3)INC(incrementby1)增119(1)ADD(addition)加法■指令匯編格式:ADDdest,src操作:兩個(gè)操作數(shù)求和,結(jié)果存目標(biāo)操作數(shù)中。dest←(dest)+(src)■受影響的狀態(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF說明:dest和src不能同時(shí)為存儲(chǔ)器操作數(shù)和段寄存器。20例:ADDCL,10ADDDX,SIADDAX,MEMADD[BX],ALADD[DI],3000H21(2)ADC(additionwithcarry)帶進(jìn)位加法■指令匯編格式:ADCdest,src操作:兩個(gè)操作數(shù)相加的同時(shí),再加上CF。結(jié)果存入目標(biāo)操作數(shù)中。dest←(dest)+(src)+CF■受影響的狀態(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF■說明:ADC指令主要用于多精度數(shù)據(jù)相加。22(3)INC(incrementbyone)增1■指令匯編格式:INCdest操作:將指定的操作數(shù)加1,并將結(jié)果回送到目標(biāo)操作數(shù)中。dest←(dest)+1■dest可以是寄存器(段寄存器除外)、變量。■dest不允許是立即數(shù)?!鍪苡绊懙臓顟B(tài)標(biāo)志位:OF,SF,ZF,AF,PF■說明:INC指令不影響CF。例:INCDLINCSIINCBYTEPTR[BX][SI]INCWORDPTR[DI]23指令格式:DAA指令功能:對(duì)AL中的由兩個(gè)組合BCD碼相加所得的結(jié)果進(jìn)行調(diào)整,并將調(diào)整后的結(jié)果存于AL中。操作過程:如果AL的低4位大于9或者AF=1,則AL+6→AL,并置AF=1;如果AL的高4位大于9或者CF=1,則AL+60H→AL,并置CF=1。注意本指令使用時(shí)必須緊跟在ADD或ADC指令之后。而且,只能對(duì)AL中的結(jié)果進(jìn)行調(diào)整,因此對(duì)多字節(jié)的十進(jìn)制數(shù)運(yùn)算,只能從低字節(jié)開始逐個(gè)字節(jié)的進(jìn)行運(yùn)算和調(diào)整。(4)DAA(組合BCD碼的加法調(diào)整指令)說明:指令會(huì)影響OF、SF、ZF、AF、PF、CF。242.減法指令(1)SUB(subtract)減法(2)SBB(subtractwithborrow)帶借位減(3)DEC(decrementby1)減1(4)NEG(negate)取補(bǔ)

CMP(compare)比較

DAS(decimaladjustforsubtract)25(1)SUB(subtract)減法■指令匯編格式:SUBdest,src操作:從目標(biāo)操作數(shù)減去源操作數(shù),結(jié)果存入目標(biāo)操作數(shù)。

dest←(dest)-(src)■dest,src可以是寄存器(段寄存器除外)、變量?!鰏rc可以是立即數(shù)?!霾辉试Sdest和src同時(shí)為變量?!鍪苡绊懙臓顟B(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF例:SUBAL,98HSUBBX,CXSUBDX,WORDPTR[VAR1]SUB[BX],AXSUBWORDPTR[DI],1234H26(2)SBB(subtractwithborrow)帶借位減法■指令匯編格式:SBBdest,src操作:從目標(biāo)操作數(shù)中減去源操作數(shù)和CF,結(jié)果存入目標(biāo)操作數(shù)中。dest←(dest)-(src)-CF■dest,src可以是寄存器(段寄存器除外)、變量?!鰏rc可以是立即數(shù)。■不允許dest和src同時(shí)為變量?!鍪苡绊懙臓顟B(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF例:SBBAL,0SBBDL,CLSBBAX,[BX]SBB[1234H],ALSBBWORDPTR[1234H],56H27(3)DEC(decrementbyone)減1■指令匯編格式:DECdest操作:將指定的操作數(shù)減1,并將結(jié)果送回到目標(biāo)操作數(shù)中。

dest←(dest)-1■dest,src可以是寄存器(段寄存器除外)、變量?!鍪苡绊懙臓顟B(tài)標(biāo)志位:OF,SF,ZF,AF,PF■說明:DEC指令不影響CF。例:DECBLDECCXDECBYTEPTR[BX]DECWORDPTR[BP][DI]28(4)NEG(negate)取補(bǔ)(取負(fù))■指令匯編格式:NEGdest操作:從0中減去指令中給定的操作數(shù),最后將結(jié)果送回到給定的操作數(shù)中。dest←0-(dest)■dest可以使寄存器(段寄存器除外)、變量。■dest不允許是立即數(shù)。■受影響的狀態(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF例:NEGBHNEGAXNEGWORDPTR[SI+10]29(5)CMP(compare)比較■指令匯編格式:CMPdest,src操作:從目標(biāo)操作數(shù)中減去源操作數(shù)

(dest)-(src)■dest,src可以是寄存器(段寄存器除外)、存儲(chǔ)器變量?!鰀est,src的位數(shù)必須相同?!鲋噶畈槐A魣?zhí)行結(jié)果?!鍪苡绊懙臓顟B(tài)標(biāo)志位:OF,SF,ZF,AF,PF,CF例:CMPAL,0BHCMPCX,DICMPAX,GAMMACMPAREA2,15030分為無(wú)符號(hào)數(shù)與有符號(hào)數(shù)的比較,根據(jù)相減結(jié)果:a.無(wú)符號(hào)若ZF=1,則兩數(shù)相等若ZF=0,CF=1,則被減數(shù)小b.有符號(hào)OF=0時(shí),若SF=0,則A>B若SF=1,則A<BOF=1時(shí),若SF=1,則A>B若SF=0,則A<B31指令格式:DAS

指令功能:對(duì)AL中的由兩個(gè)組合BCD碼相減所得的結(jié)果進(jìn)行調(diào)整,并將調(diào)整后的結(jié)果存于AL中。操作過程:調(diào)整方法與DAA類似,不同的只是當(dāng)AL的低4位大于9或者AF=1,則AL-6→AL,并置AF=1;而當(dāng)AL的高4位大于9或者CF=1時(shí),則AL-60H→AL,并置CF=1。注意使用DAS指令必須緊跟在SUB或SBB指令之后。(6)DAS(組合BCD碼的減法調(diào)整指令)322012-08.設(shè)AL=1,8086執(zhí)行指令SUBAL,2后,為0的標(biāo)志是【】

A.CF B.OF

C.PFD.SF2009-05.指令CMPBL,DL運(yùn)算結(jié)果將會(huì)【】

A.影響標(biāo)志位,并把差值送BLB.不影響標(biāo)志位,但將差值送BL

C.影響標(biāo)志位,但不將差值送BLD.不影響標(biāo)志位,也不計(jì)算差值2009-11.兩數(shù)相減其結(jié)果為零;則標(biāo)志寄存器中必定為1的標(biāo)志位是【】

A.CFB.DF

C.SFD.ZFBCD33(1)CBW(convertbytetoword)將字節(jié)轉(zhuǎn)換為字(2)CWD(convertwordtodoubleword)將字轉(zhuǎn)換為雙字5.轉(zhuǎn)換指令34指令類型助記符邏輯指令邏輯運(yùn)算(5)AND,TEST,OR,XOR,NOT移位(3)SHL,SAL,SHR,SAR循環(huán)移位(4)ROL,ROR,RCL,RCR1.AND(and,logicalconjunction)邏輯與2.TEST(test,orlogicalcompare)測(cè)試3.OR(or,inclusive)邏輯或4.XOR(exclusiveor)異或5.NOT(not,orform1’scomplement)取反2.3.3邏輯運(yùn)算指令351.AND邏輯與■指令匯編格式:ANDdest,src

dest←(dest)∧(src),CF←0,OF←0●

指令會(huì)影響SF,ZF,PF;總是將OF=0,CF=0;對(duì)AF不定。2.TEST測(cè)試■指令匯編格式:TESTdest,src(dest)∧(src),CF←0,OF←0●

指令會(huì)影響SF,ZF,PF;總是將OF=0,CF=0;對(duì)AF不定。3.OR邏輯或■指令匯編格式:ORdest,srcdest←(dest)∨(src),CF←0,OF←0●

指令會(huì)影響SF,ZF,PF;總是將OF=0,CF=0;對(duì)AF不定。364.XOR異或■指令匯編格式:XORdest,srcdest←(dest)⊕(src),CF←0,OF←0●

4)指令會(huì)影響SF,ZF,PF;總是將OF=0,CF=0;對(duì)AF不定?!稣f明:XOR指令可用來使操作數(shù)中的某些位取反,某些位不變。5.NOT取反■指令匯編格式:NOTdest

dest←dest●

對(duì)標(biāo)志位影響不確定。37邏輯操作指令應(yīng)用舉例將寄存器AL的第1,3,5,7位清0,其它位不變。

ANDAL,01010101B將寄存器AL的第1,3,5,7位置1,其它位不變。

ORAL,10101010B將寄存器AL的第1,3,5,7位取反,其它位不變。

XORAL,10101010B382011-08.設(shè)AL=80H,執(zhí)行指令ORAL,AL后,被置位的標(biāo)志是【】P74

A.CFB.OF

C.SFD.ZF2010-02.指令XORAL,AL執(zhí)行后,則【】P75

A.CF=1B.SF=1

C.ZF=1D.OF=1CC39移位指令SHLdest,nSHRdest,nSALdest,nSARdest,nSHL

reg/mem,1/CL ;邏輯左移SHR

reg/mem,1/CL ;邏輯右移SAL

reg/mem,1/CL ;算術(shù)左移SARreg/mem,1/CL ;算術(shù)右移40循環(huán)移位指令ROLdest,nRORdest,nRCLdest,nRCRdest,nROL

reg/mem,1/CL ;不帶進(jìn)位循環(huán)左移ROR

reg/mem,1/CL ;不帶進(jìn)位循環(huán)右移RCL

reg/mem,1/CL ;帶進(jìn)位循環(huán)左移RCRreg/mem,1/CL ;帶進(jìn)位循環(huán)右移41指令類型助記符邏輯指令邏輯運(yùn)算(5)AND,TEST,OR,XOR,NOT移位(3)SHL,SAL,SHR,SAR循環(huán)移位(4)ROL,ROR,RCL,RCR移位循環(huán)邏輯算術(shù)不帶進(jìn)位帶進(jìn)位左右CFdest0CFdest0CFdestCFdest0CFdestCFdestCFdestCFdestSHLSALRCLROLSHRSARRCRROR422012-15.設(shè)AL=10H,指令SHRAL,1執(zhí)行后,AL的值為【】P76

A.08HB.10H

C.18HD.20H2011-24.設(shè)AL=80H,當(dāng)執(zhí)行指令SARAL,1后,AL中的內(nèi)容是

。AC0H432.串操作指令串操作指令是8086指令系統(tǒng)中比較獨(dú)特的一類指令,采用比較特殊的數(shù)據(jù)串尋址方式,在操作主存連續(xù)區(qū)域的數(shù)據(jù)時(shí),特別好用,因而常用重點(diǎn)掌握: MOVSSTOSLODS CMPSSCASREP一般了解: REPZ/REPEREPNZ/REPNE指令類型助記符串處理串操作(5)MOVS,CMPS,SCAS,LODS,STOS重復(fù)控制(3)REP,REPE,REPZ,REPNE,REPNZ44(1)MOVSB/MOVSW

數(shù)據(jù)串傳送指令(movestring)把字節(jié)或字操作數(shù)從主存的源地址傳送至目的地址MOVSB

;字節(jié)串傳送:[ES:DI]←[DS:SI] ;SI←SI±1,DI←DI±1MOVSW

;字串傳送:[ES:DI]←[DS:SI] ;SI←SI±2,DI←DI±245(2)CMPSB/CMPSW

數(shù)據(jù)串比較指令(comparestring)將主存中的源操作數(shù)減去目的操作數(shù),以便設(shè)置標(biāo)志,進(jìn)而比較兩操作數(shù)之間的關(guān)系。CMPSB

;字節(jié)串比較:[DS:SI]-[ES:DI] ;SI←SI±1,DI←DI±1CMPSW

;字串比較:[DS:SI]-[ES:DI] ;SI←SI±2,DI←DI±2■受影響的標(biāo)志位:OF,SF,ZF,AF,PF,CF46(3)SCASB/SCASW

數(shù)據(jù)串搜索指令(scanstring)將AL/AX減去目的操作數(shù),以便設(shè)置標(biāo)志,進(jìn)而比較AL/AX與操作數(shù)之間的關(guān)系。SCASB

;字節(jié)串查找:AL-[ES:DI] ;DI←DI±1SCASW

;字串查找:AX-[ES:DI] ;DI←DI±2■受影響的標(biāo)志位:OF,SF,ZF,AF,PF,CF47(4)LODSB/LODSW

取數(shù)據(jù)串元素指令(loadstring)把指定主存單元的數(shù)據(jù)傳送給AL或AXLODSB

;字節(jié)串讀?。篈L←[DS:SI] ;SI←SI±1LODSW

;字串讀?。篈X←[DS:SI] ;SI←SI±248(5)STOSB/STOSW

存數(shù)據(jù)串元素指令(storestring)把AL或AX數(shù)據(jù)傳送至目的地址STOSB

;字節(jié)串存儲(chǔ):[ES:DI]←AL ;DI←DI±1STOSW

;字串存儲(chǔ):[ES:DI]←AX ;DI←DI±249指令類型助記符控制轉(zhuǎn)移轉(zhuǎn)移無(wú)條件轉(zhuǎn)移(1)JMP條件轉(zhuǎn)移(19)JA/JNBE,JAE/JNB,JB/JNAE,JBE/JNA,JC,JCXZJE/JZ,JNS,JO,JS,JG/JNLE,JGE/JNL,JL/JNGEJLE/JNG,JNC,JNE/JNZ,JNO,JNP/JPO,JP/JPE循環(huán)控制(5)LOOP,LOOPE,LOOPZ,LOOPNE,LOOPNZ過程調(diào)用(2)CALL,RET中斷指令(3)INT,INTO,IRET2.3.5轉(zhuǎn)跳指令501.無(wú)條件轉(zhuǎn)移指令JMP■指令匯編格式:JMPtarget■受影響的狀態(tài)標(biāo)志位:無(wú)■說明:指令中的target可以是直接標(biāo)號(hào)、寄存器間接或存儲(chǔ)器間接尋址形式。JMP分為近轉(zhuǎn)跳(NearJump)和遠(yuǎn)轉(zhuǎn)跳(FarJump)兩大類51代碼段代碼段格式:JMPSHORTtarget

;IP←IP+target(8位);-128≤target≤127格式:JMPNEARPTRtarget

;IP←IP+target(16位);-32768≤target≤32767格式:JMPFARPTRtarget

;CS←target的段;IP←target的偏移

實(shí)際編程時(shí),匯編程序會(huì)根據(jù)目標(biāo)地址的屬性,自動(dòng)處理成短轉(zhuǎn)跳、近轉(zhuǎn)跳或遠(yuǎn)轉(zhuǎn)跳程序員可用操作符short、nearptr

或farptr

強(qiáng)制成為需要的轉(zhuǎn)移類型代碼段代碼段52(2)Jxx指令(條件轉(zhuǎn)移指令)指令格式及操作Jxxtarget;target:目標(biāo)地址;Jxx是短轉(zhuǎn)跳功能Jxx根據(jù)不同條件轉(zhuǎn)跳target。不同條件Jxx格式不同。說明Jxx對(duì)標(biāo)志位沒有影響。53根據(jù)利用的標(biāo)志位不同,分成三種情況:⑴判斷單個(gè)標(biāo)志位狀態(tài)⑵比較無(wú)符號(hào)數(shù)高低⑶比較有符號(hào)數(shù)大小

Jxx指令實(shí)際雖然只有16條,但卻有30個(gè)助記符采用多個(gè)助記符,目的是為了方便記憶和使用54(1)判斷單個(gè)標(biāo)志位狀態(tài)測(cè)試位指令格式轉(zhuǎn)移條件含義ZFJE/JZOPRZF=1相等/等于0JNE/JNZOPRZF=0不相等/不等于SFJSOPRSF=1是負(fù)數(shù)JNSOPRSF=0是正數(shù)PFJP/JPEOPRPF=1有偶數(shù)個(gè)“1”JNP/JPOOPRPF=0有奇數(shù)個(gè)“1”O(jiān)FJOOPROF=1有溢出JNOOPROF=0無(wú)溢出CFJCOPRCF=1有進(jìn)位/借位JNCOPRCF=0無(wú)進(jìn)位/借位55(2)比較無(wú)符號(hào)數(shù)高低指令格式轉(zhuǎn)移條件含義名稱JB/JNAE/JC標(biāo)號(hào)CF=1A<B低于(不高于或等于)JAE/JNB/JNC標(biāo)號(hào)CF=0A>=B高于或等于(不低于)JA/JNBE標(biāo)號(hào)CF=0且ZF=0A>B高于(不低于或等于)JBE/JNA標(biāo)號(hào)CF=1或ZF=1A<=B低于或等于(不高于)無(wú)符號(hào)數(shù)的大小用高(Above)、低(Below)表示,需要利用CF確定高低、利用ZF標(biāo)志確定相等(Equal)56(3)比較有符號(hào)數(shù)大小指令格式轉(zhuǎn)移條件含義名稱JG/JNLE標(biāo)號(hào)SF=OF且ZF=0A>B大于(不小于或等于)JGE/JNL標(biāo)號(hào)SF=OFA>=B大于或等于(不小于)JL/JNGE標(biāo)號(hào)SF≠OFA<B小于(不大于或等于)JLE/JNG標(biāo)號(hào)SF≠OF或ZF=1A<=B小于或等于(不大于)判斷有符號(hào)數(shù)的大(Greater)、小(Less),需要組合OF、SF標(biāo)志、并利用ZF標(biāo)志確定相等與否572.循環(huán)控制指令LOOPLOOPE/LOOPZLOOPNE/LOOPNZtarget標(biāo)識(shí)循環(huán)體入口的標(biāo)號(hào)LOOP(LOOP)循環(huán)LOOPZ/LOOPE(Loopwhilezero,orequal)當(dāng)為零或相等時(shí)循環(huán)LOONZ/LOOPNE(Loopwhilenonzero,ornotequal)當(dāng)不為零或不相等時(shí)循環(huán)58(1)LOOP重復(fù)控制指令■指令格式:LOOPtarget■功能:①CX←CX-1②若CX≠0,則使控制轉(zhuǎn)到target標(biāo)識(shí)的循環(huán)入口處,繼續(xù)下一次循環(huán),否則退出循環(huán)體,執(zhí)行后續(xù)指令。■說明1)LOOP對(duì)標(biāo)志位沒有影響;2)LOOP是短轉(zhuǎn)跳,即-128≤target≤+127.59過程(Procedure)相當(dāng)于子程序,是完成特定功能的一段程序。當(dāng)主程序(調(diào)用程序)需要執(zhí)行這個(gè)功能時(shí),采用CALL調(diào)用指令轉(zhuǎn)移到該過程(子程序)的起始處執(zhí)行。當(dāng)運(yùn)行完子程序功能后,采用RET返回指令回到主程序繼續(xù)執(zhí)行。

轉(zhuǎn)移指令有去無(wú)回過程調(diào)用需要返回,其中利用堆棧保存返回地址3.過程調(diào)用指令60■指令匯編格式:CALLproc■功能:CALL指令執(zhí)行后,CPU執(zhí)行proc?!稣f明:1)CALL對(duì)標(biāo)志位沒有影響;2)proc表示被調(diào)用過程的名稱,是一個(gè)存儲(chǔ)器操作數(shù)。(1)CALL指令61過程調(diào)用分類①段內(nèi)調(diào)用與段間調(diào)用段內(nèi)調(diào)用:通過指令指針I(yè)P的變化實(shí)現(xiàn)的。段間調(diào)用:通過IP和CS的共同變化實(shí)現(xiàn)的。②直接調(diào)用與間接調(diào)用

直接調(diào)用:子程序的入口地址直接包含在指令代碼中。間接調(diào)用:子程序的入口地址通過寄存器或存儲(chǔ)器間接得到的。62(2)RET指令

■匯編格式:RET RETpop_value;

■功能:從被調(diào)用過程返回。1)從近過程返回

RET;IP←[SP+1:SP] ;SP←SP+2

RETpop_value;IP←[SP+1:SP] ;SP←SP+2;SP←SP+pop_value632)從遠(yuǎn)過程返回

RET;IP←[SP+1:SP] ;SP←SP+2

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論