版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
AAA未組合的十進(jìn)制加法調(diào)整指令A(yù)AA(ASCIIAdgustforAddition)
格式:AAA
功能:對(duì)兩個(gè)組合的十進(jìn)制數(shù)相加運(yùn)算(存在AL中)的結(jié)果進(jìn)行調(diào)整,產(chǎn)生一個(gè)未組合的十進(jìn)制數(shù)放在AX中.說明:
1.組合的十進(jìn)制數(shù)和未組合的十進(jìn)制數(shù):在計(jì)算中,十進(jìn)制數(shù)可用四位二進(jìn)制數(shù)編碼,稱為BCD碼.
當(dāng)一個(gè)節(jié)(8位)中存放一位BCD碼,且放在字節(jié)的低4位,高4位為時(shí)稱為未組合的BCD碼.
2.AAA的調(diào)整操作
若(AL)and0FH>9或AF=1,則調(diào)整如下:
(AL)<--(AL)+6,(AH)<--(AH)+1,AF=1,CF<--AF,(AL)<--(AL)and0FHAAD未組合十進(jìn)制數(shù)除法調(diào)整指令A(yù)AD(ASCIIAdjustforDivision)
格式:AAD
功能:在除法指令前對(duì)AX中的兩個(gè)未組合十進(jìn)制數(shù)進(jìn)行調(diào)整,以便能用DIV指令實(shí)現(xiàn)兩個(gè)未組合的十進(jìn)制數(shù)的除法運(yùn)算,其結(jié)果為未組合的十進(jìn)制數(shù),商(在AL中)和余數(shù)(在AH中).說明:
1.AAD指令是在執(zhí)行除法DIV之前使用的,以便得到二進(jìn)制結(jié)果存于AL中,然后除以O(shè)PRD,得到的商在AL中,余數(shù)在AH中.
2.示例:MOVBL,5
MOVAX,0308H
AAD;(AL)<--1EH+08H=26H,(AH)<--0
DIVBL;商=07H-->(AL),余數(shù)=03H-->(AH).AAM未組合十進(jìn)制數(shù)乘法調(diào)整指令A(yù)AM(ASCIIAdjustMULtiply)
格式:AAM
功能:對(duì)兩個(gè)未組合的十進(jìn)制數(shù)相乘后存于AX中的結(jié)果進(jìn)行調(diào)整,產(chǎn)生一個(gè)未組合的十進(jìn)制數(shù)存在AL中.說明:
1.實(shí)際上是兩個(gè)未組合的十進(jìn)制數(shù)字節(jié)相乘,一個(gè)0~9的數(shù)與另一個(gè)0~9的數(shù)相乘其積最大為81.為了得到正確的結(jié)果,應(yīng)進(jìn)行如下調(diào)整:
乘積:(AH)<--(AL)/10
(AL)<--(AL)MOD10
2.本指令應(yīng)跟在MUL指令后使用,乘積的兩位十進(jìn)制結(jié)果,高位放在AH中,低位放在AL中.AH內(nèi)容是MUL指令的結(jié)果被10除的商,即(AL)/10,而最后的AL內(nèi)容是乘積被10整除的余數(shù)(即個(gè)位數(shù)).AAS未組合十進(jìn)制減法調(diào)整指令A(yù)AS(ASCIIAdjustforSubtraction)
格式:AAS
功能:對(duì)兩個(gè)未組合十進(jìn)制數(shù)相減后存于AL中的結(jié)果進(jìn)行調(diào)整,調(diào)整后產(chǎn)生一個(gè)未組合的十進(jìn)制數(shù)數(shù)且仍存于AL中.說明:
1.本指令影響標(biāo)志位CF及AF.
2.調(diào)整操作
若(AL)and0FH>9或AF=1
則(AL)<--(AL)-6,(AH)<--(AH)-1,CF<--AF,(AL)<--(AL)and0FH,
否則(AL)<--(AL)and0FHADC帶進(jìn)位加法指令A(yù)DC(AdditionCarry)
格式:ADCOPRD1,OPRD2
功能:OPRD1<--OPRD1+OPRD2+CF說明:
1.OPRD1為任一通用寄存器或存儲(chǔ)器操作數(shù),可以是任意一個(gè)通用寄存器,而且還可以是任意一個(gè)存儲(chǔ)器操作數(shù).
OPRD2為立即數(shù),也可以是任意一個(gè)通用寄存器操作數(shù).立即數(shù)只能用于源操作數(shù).
2.OPRD1和OPRD2均為寄存器是允許的,一個(gè)為寄存器而另一個(gè)為存儲(chǔ)器也是允許的,但不允許兩個(gè)都是存儲(chǔ)器操作數(shù).
3.加法指令運(yùn)算的結(jié)果對(duì)CF、SF、OF、PF、ZF、AF都會(huì)有影響.以上標(biāo)志也稱為結(jié)果標(biāo)志.
4.該指令對(duì)標(biāo)志位的影響同ADD指令.ADD加法指令A(yù)DD(Addition)
格式:ADDOPRD1,OPRD2
功能:兩數(shù)相加說明:
1.OPRD1為任一通用寄存器或存儲(chǔ)器操作數(shù),可以是任意一個(gè)通用寄存器,而且還可以是任意一個(gè)存儲(chǔ)器操作數(shù).
OPRD2為立即數(shù),也可以是任意一個(gè)通用寄存器操作數(shù).立即數(shù)只能用于源操作數(shù).
2.OPRD1和OPRD2均為寄存器是允許的,一個(gè)為寄存器而另一個(gè)為存儲(chǔ)器也是允許的,但不允許兩個(gè)都是存儲(chǔ)器操作數(shù).
3.加法指令運(yùn)算的結(jié)果對(duì)CF、SF、OF、PF、ZF、AF都會(huì)有影響.以上標(biāo)志也稱為結(jié)果標(biāo)志.加法指令適用于無符號(hào)數(shù)或有符號(hào)數(shù)的加法運(yùn)算.AND邏輯與運(yùn)算指令A(yù)ND
格式:ANDOPRD1,OPRD2
功能:對(duì)兩個(gè)操作數(shù)實(shí)現(xiàn)按位邏輯與運(yùn)算,結(jié)果送至目的操作數(shù).本指令可以進(jìn)行字節(jié)或字的‘與’運(yùn)算,
OPRD1<--OPRD1andOPRD2.說明:
1.目的操作數(shù)OPRD1為任一通用寄存器或存儲(chǔ)器操作數(shù).源操作數(shù)OPRD2為立即數(shù),任一通用寄存器或存儲(chǔ)器操作數(shù).
2.示例:ANDAL,0FH;(AL)<--(AL)AND0FH
ANDAX,BX;(AX)<--(AX)AND(BX)
ANDDX,BUFFER[SI+BX]
ANDBETA[BX],00FFH
注意:兩數(shù)相與,有一個(gè)數(shù)假則值為假CALL過程調(diào)用指令CALL
格式:CALLOPRD
功能:過程調(diào)用指令說明:
1.其中OPRD為過程的目的地址.
2.過程調(diào)用可分為段內(nèi)調(diào)用和段間調(diào)用兩種.尋址方式也可以分為直接尋址和間接尋址兩種.
3.本指令不影響標(biāo)志位.CBW字節(jié)擴(kuò)展指令CBW(ConvertBytetoWord)
格式:CBW
功能:將字節(jié)擴(kuò)展為字,即把AL寄存器的符號(hào)位擴(kuò)展到AH中.說明:
1.兩個(gè)字節(jié)相除時(shí),先使用本指令形成一個(gè)雙字節(jié)長(zhǎng)的被除數(shù).
2.本指令不影響標(biāo)志位.
3.示例:MOVAL,25
CBW
IDIVBYTEPTRDATA1CLC處理器控制指令-標(biāo)志位操作指令
格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(NotCF)進(jìn)位標(biāo)志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止響應(yīng)外部中斷
STI;置IF=1,使CPU允許向應(yīng)外部中斷
功能:完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說明:例如串操作中的程序,經(jīng)常用CLD指令清方向標(biāo)志使DF=0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.CLD處理器控制指令-標(biāo)志位操作指令
格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(NotCF)進(jìn)位標(biāo)志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止響應(yīng)外部中斷
STI;置IF=1,使CPU允許向應(yīng)外部中斷
功能:完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說明:例如串操作中的程序,經(jīng)常用CLD指令清方向標(biāo)志使DF=0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.CLI處理器控制指令-標(biāo)志位操作指令
格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(NotCF)進(jìn)位標(biāo)志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止響應(yīng)外部中斷
STI;置IF=1,使CPU允許向應(yīng)外部中斷
功能:完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說明:例如串操作中的程序,經(jīng)常用CLD指令清方向標(biāo)志使DF=0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.CMC處理器控制指令-標(biāo)志位操作指令
格式:
CLC;置CF=0
STC;置CF=1
CMC;置CF=(NotCF)進(jìn)位標(biāo)志求反
CLD;置DF=0
STD;置DF=1
CLI;置IF=0,CPU禁止響應(yīng)外部中斷
STI;置IF=1,使CPU允許向應(yīng)外部中斷
功能:完成對(duì)標(biāo)志位的置位、復(fù)位等操作.說明:例如串操作中的程序,經(jīng)常用CLD指令清方向標(biāo)志使DF=0,在串操作指令執(zhí)行時(shí),按增量的方式修改呂指針.CMP比效指令CMP(CoMPare)
格式:CMPOPRD1,OPRD2
功能:對(duì)兩數(shù)進(jìn)行相減,進(jìn)行比較.說明:
1.OPRD1為任意通用寄存器或存儲(chǔ)器操作數(shù).
OPRD2為任意通用寄存器或存儲(chǔ)器操作數(shù),立即數(shù)也可用作源操作數(shù)OPRD2.
2.對(duì)標(biāo)志位的影響同SUB指令,完成的操作與SUB指令類似,唯一的區(qū)別是不將OPRD1-OPRD2的結(jié)果送回OPRD1,而只是比較.
3.在8088/8086指令系統(tǒng)中,專門提供了一組根據(jù)帶符號(hào)數(shù)比較大小后,實(shí)現(xiàn)條件轉(zhuǎn)移的指令.CMPS字符串比較指令
格式:CMPSOPRD1,OPRD2
CMPSB
CMPSW
功能:由SI尋址的源串中數(shù)據(jù)與由DI尋址的目的串中數(shù)據(jù)進(jìn)行比較,比較結(jié)果送標(biāo)志位,而不改變操作數(shù)本身.
同時(shí)SI,DI將自動(dòng)調(diào)整.說明:
1.其中OPRD2為源串符號(hào)地址,OPRD1為目的串符號(hào)地址.
2.本指令影響標(biāo)志位AF、CF、OF、SF、PF、ZF.本指令可用來檢查二個(gè)字符串是否相同,可以使用循環(huán)控制方法對(duì)整串進(jìn)行比較.
3.與MOVS相似,CMPS指令也可以不使用操作數(shù),此時(shí)可用指令CMPSB或CMPSW分別表示字節(jié)串比較或字串比較.CMPSB字符串比較指令
格式:CMPSOPRD1,OPRD2
CMPSB
CMPSW
功能:由SI尋址的源串中數(shù)據(jù)與由DI尋址的目的串中數(shù)據(jù)進(jìn)行比較,比較結(jié)果送標(biāo)志位,而不改變操作數(shù)本身.
同時(shí)SI,DI將自動(dòng)調(diào)整.說明:
1.其中OPRD2為源串符號(hào)地址,OPRD1為目的串符號(hào)地址.
2.本指令影響標(biāo)志位AF、CF、OF、SF、PF、ZF.本指令可用來檢查二個(gè)字符串是否相同,可以使用循環(huán)控制方法對(duì)整串進(jìn)行比較.
3.與MOVS相似,CMPS指令也可以不使用操作數(shù),此時(shí)可用指令CMPSB或CMPSW分別表示字節(jié)串比較或字串比較.CMPSW字符串比較指令
格式:CMPSOPRD1,OPRD2
CMPSB
CMPSW
功能:由SI尋址的源串中數(shù)據(jù)與由DI尋址的目的串中數(shù)據(jù)進(jìn)行比較,比較結(jié)果送標(biāo)志位,而不改變操作數(shù)本身.
同時(shí)SI,DI將自動(dòng)調(diào)整.說明:
1.其中OPRD2為源串符號(hào)地址,OPRD1為目的串符號(hào)地址.
2.本指令影響標(biāo)志位AF、CF、OF、SF、PF、ZF.本指令可用來檢查二個(gè)字符串是否相同,可以使用循環(huán)控制方法對(duì)整串進(jìn)行比較.
3.與MOVS相似,CMPS指令也可以不使用操作數(shù),此時(shí)可用指令CMPSB或CMPSW分別表示字節(jié)串比較或字串比較.CWD字?jǐn)U展指令CWD(ConvertWordtoDoubleWord)
格式:CWD
功能:將字?jǐn)U展為雙字長(zhǎng),即把AX寄存器的符號(hào)位擴(kuò)展到DX中.說明:
1.兩個(gè)字或字節(jié)相除時(shí),先用本指令形成一個(gè)雙字長(zhǎng)的的被除數(shù).
2.本指令不影響標(biāo)志位.
3.示例:在B1、B2、B3字節(jié)類型變量中,分別存有8們帶符號(hào)數(shù)a、b、c,實(shí)現(xiàn)(a*b+c)/a運(yùn)算。DAA組合的十進(jìn)制加法調(diào)整指令DAA(DecimalAdjustforAddition)
格式:DAA
功能:對(duì)AL中的兩個(gè)組合進(jìn)制數(shù)相加的結(jié)果進(jìn)行調(diào)整,調(diào)整結(jié)果仍放在AL中,進(jìn)位標(biāo)志放在CF中.說明:
1.調(diào)整操作如下
(1)若(AL)and0FH>9或AF=1,則(AL)<--(AL)+6,AF<--1,對(duì)低四位的調(diào)整.
(2)若(AL)and0F0H>90H或CF=1,則(AL)<--(AL)+60H,CF<--1.
2.示例:(AL)=18H,(BL)=06H
ADDAL,BL;(AL)<--(AL)+(BL);(AL)=1EH
DAA;(AL)DAS組合十進(jìn)制減法調(diào)整指令DAS(DecimalAdjustforSubtraction)
格式:DAS
功能:對(duì)兩個(gè)組合十進(jìn)制數(shù)相減后存于AL中的結(jié)果進(jìn)行調(diào)整,調(diào)整后產(chǎn)生一個(gè)組合的十進(jìn)制數(shù)且仍存于AL中.說明:
調(diào)整操作
若(AL)and0FH>9或AF=1,則(AL)<--(AL)-6,AF=1
若(AL)and0F0H>90H或CF=1,則(AL)<--(AL)-60,CF=1DEC減一指令DEC(Decrementby1)
格式:DECOPRD
功能:OPRD<--OPRD-1說明:
1.OPRD為寄存器或存儲(chǔ)器操作數(shù).
2.這條指令執(zhí)行結(jié)果影響AF、OF、PF、SF、ZF標(biāo)志位,但不影響CF標(biāo)志位.
3.示例DECAX
DECCL
DECWORDPTR[DI]
DECALFA[DI+BX]DIV無符號(hào)數(shù)除法指令DIV(DIVision)
格式:DIVOPRD
功能:實(shí)現(xiàn)兩個(gè)無符號(hào)二進(jìn)制數(shù)除法運(yùn)算.說明:
1.其中OPRD為任一個(gè)通用寄存器或存儲(chǔ)器操作數(shù).
2.字節(jié)相除,被除數(shù)在AX中;字相除,被除數(shù)在DX,AX中,除數(shù)在OPRD中.
字節(jié)除法:(AL)<--(AX)/OPRD,(AH)<--(AX)MODOPRD
字除法:(AX)<--(DX)(AX)/OPRD,(DX)<--(DX)(AX)MODOPRDESC處理器交權(quán)指令ESC
格式:ESCEXTOPRD,OPRD
功能:使用本指令可以實(shí)現(xiàn)協(xié)處理器出放在ESC指令代碼中的6位常數(shù),該常數(shù)指明協(xié)處理器要完成的功能.
當(dāng)源操作數(shù)為存儲(chǔ)器變量時(shí),則取出該存儲(chǔ)器操作數(shù)傳送給協(xié)處理器.說明:
1.其中EXTOPRD為外部操作碼,OPRD為源操作數(shù).
2.本指不影響標(biāo)志位.HLT處理器暫停指令HLT
格式:HLT
功能:使處理器處于暫時(shí)停機(jī)狀態(tài).說明:
1.本指令不影響標(biāo)志位.
2.由執(zhí)行HLT引起的暫停,只有RESET(復(fù)位)、NMI(非屏蔽中斷請(qǐng)求)、INTR(可屏蔽的外部中斷請(qǐng)求)信號(hào)可以使
其退出暫停狀態(tài).它可用于等待中斷的到來或多機(jī)系統(tǒng)的同步操作.IDIV帶符號(hào)數(shù)除法指定IDIV(IntergerDIVision)
格式:IDIVOPRD
功能:這實(shí)現(xiàn)兩個(gè)帶符號(hào)數(shù)的二進(jìn)制除法運(yùn)算.說明:
1.其中OPRD為任一通用寄存器或存儲(chǔ)器操作數(shù).
2.理由與IMUL相同,只有IDIV指令,才能得到符號(hào)數(shù)相除的正確結(jié)果.
3.當(dāng)被除數(shù)為8位,在進(jìn)行字節(jié)除法前,應(yīng)把AL的符號(hào)位擴(kuò)充至AH中.在16位除法時(shí),若被除數(shù)為16位,則應(yīng)將AX中的符號(hào)位擴(kuò)到DX中.IMUL帶符號(hào)數(shù)乘法指令I(lǐng)MUL(IntegerMULtiply)
格式:IMULOPRD
功能:完成兩個(gè)帶符號(hào)數(shù)的相乘說明:
1.其中OPRD為任一通用寄存器或存儲(chǔ)器操作數(shù).
2.MUL指令對(duì)帶符號(hào)相乘時(shí),不能得到正確的結(jié)果.
例如:(AL)=255
(CL)=255
MULCL
(AX)=65025
注意:這對(duì)無符號(hào)數(shù)講,結(jié)果是正確的,但對(duì)帶符號(hào)數(shù)講,相當(dāng)于(-1)*(-1)結(jié)果應(yīng)為+1,而65025對(duì)應(yīng)的帶符號(hào)數(shù)為-511,顯然是不正確的.IN輸入指令I(lǐng)N
格式:INAL,n;(AL)<--(n)
INAX,n;(AX)<--(n+1),(n)
INAL,DX;(AL)<--[(DX)]
INAX,DX;(AX)<--[(DX)+1],[(DX)]
功能:輸入指令說明:
1.其中n為8位的端口地址,當(dāng)字節(jié)輸入時(shí),將端口地址n+1的內(nèi)容送至AH中,端口地址n的內(nèi)容送AL中.
2.端口地址也可以是16位的,但必須將16位的端口地址送入DX中.當(dāng)字節(jié)尋址時(shí),由DX內(nèi)容作端口地址的內(nèi)容送至AL中;
當(dāng)輸入數(shù)據(jù)字時(shí),[(DX)+1]送AH,[(DX)]送AL中,用符號(hào):(AX)<--[(DX)+1],[(DX)]表示.INC加1指令I(lǐng)NC(INCrementby1)
格式:INCOPRD
功能:OPRD<--OPRD+1說明:
1.OPRD為寄存器或存儲(chǔ)器操作數(shù).
2.這條指令執(zhí)行結(jié)果影響AF、OF、PF、SF、ZF標(biāo)志位,但不影響CF標(biāo)志位.
3.示例:
INCSI;(SI)<--(SI)+1
INCWORDPTR[BX]
INCBYTEPTR[BX+DI]
INCCL;(CL)<--(CL)+1
注意:上述第二,三兩條指令,是對(duì)存儲(chǔ)字及存儲(chǔ)字節(jié)的內(nèi)容加1以替代原來的內(nèi)容.INT軟中斷指令I(lǐng)NT
格式:INTn其中n為軟中斷的類型號(hào).
功能:本指令將產(chǎn)生一個(gè)軟中斷,把控制轉(zhuǎn)向一個(gè)類型號(hào)為n的軟中斷,該中斷處理程序入口地址在中斷向量表的n*4地址
處的二個(gè)存儲(chǔ)器字(4個(gè)單元)中.說明:操作過程與INTO指令雷同,只需將10H改為n*4即可.所以,本指令也將影響標(biāo)志位IF及TF.INTO溢出中斷指令I(lǐng)NTO(INTerruptifOverflow)
格式:INTO
功能:本指令檢測(cè)OF標(biāo)志位,當(dāng)OF=1時(shí),說明已發(fā)生溢出,立即產(chǎn)生一個(gè)中斷類型4的中斷,當(dāng)OF=0時(shí),本指令不起作用.說明:
1.本指令影響標(biāo)志位IF及TF.
2.本指令可用于溢出處理,當(dāng)OF=1時(shí),產(chǎn)生一個(gè)類型4的軟中斷.在中斷處理程序中完成溢出的處理操作.IRET中斷返回指令I(lǐng)RET
格式:IRET
功能:用于中斷處理程序中,從中斷程序的斷點(diǎn)處返回,繼續(xù)執(zhí)行原程序.說明:
1.本指令將影響所有標(biāo)志位.
2.無論是軟中斷,還是硬中斷,本指令均可使其返回到中斷程序的斷點(diǎn)處繼續(xù)執(zhí)行原程序.JA條件轉(zhuǎn)移指令JA/JNBE
格式:JA/JNBE標(biāo)號(hào)
功能:為高于/不低于等于的轉(zhuǎn)移指令說明:
1.例如兩個(gè)符號(hào)數(shù)a,b比較時(shí),a>b(即CF=0,ZF=0)時(shí)轉(zhuǎn)移.因?yàn)閱我粯?biāo)志位CF=0,只表示a>=b.
2.JA/JNBE是同一條指令的兩種不同的助記符.
3.該指令用于無符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移JAE條件轉(zhuǎn)移指令JAE/JNB
格式:JAE/JNB標(biāo)號(hào)
功能:為高于等于/不低于的轉(zhuǎn)移指令說明:
1.JAE/JNB是同一條指令的兩種不同的助記符.
2.該指令用于無符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移.JB條件轉(zhuǎn)移指令JB/JNAE
格式:JB/JNAE標(biāo)號(hào)
功能:低于/不高于等于時(shí)轉(zhuǎn)移說明:該指令用于無符號(hào)數(shù)的條件轉(zhuǎn)移JBE條件轉(zhuǎn)移指令JBE/JNA
格式:JBE/JNA標(biāo)號(hào)
功能:低于等于/不高于時(shí)轉(zhuǎn)移說明:該指令用于無符號(hào)數(shù)的條件轉(zhuǎn)移JC條件轉(zhuǎn)移指令JC
格式:JC標(biāo)號(hào)
功能:CF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:JC為根據(jù)標(biāo)志位CF進(jìn)行轉(zhuǎn)移的指令JE條件轉(zhuǎn)移指令JE/JZ
格式:JE/JZ標(biāo)號(hào)
功能:ZF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)說明:
1.指令JE與JZ等價(jià),它們是根據(jù)標(biāo)志位ZF進(jìn)行轉(zhuǎn)移的指令
2.JE,JZ均為一條指令的兩種助記符表示方法JG條件轉(zhuǎn)移指令JG/JNLE
格式:JG/JNLE標(biāo)號(hào)
功能:大于/不小于等于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JGE條件轉(zhuǎn)移指令JGE/JNL
格式:JGE/JNL標(biāo)號(hào)
功能:大于等于/不小于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JL條件轉(zhuǎn)移指令JL/JNGE
格式:JL/JNGE標(biāo)號(hào)
功能:小于/不大于等于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JLE條件轉(zhuǎn)移指令JLE/JNG
格式:JLE/JNG標(biāo)號(hào)
功能:小于等于/不大于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JMP無條件轉(zhuǎn)移指令JMP
格式:JMPOPRD
功能:JMP指令將無條件地控制程序轉(zhuǎn)移到目的地址去執(zhí)行.當(dāng)目的地址仍在同一個(gè)代碼段內(nèi),稱為段內(nèi)轉(zhuǎn)移;當(dāng)目標(biāo)地址不在同一個(gè)代碼段內(nèi),則稱為段間轉(zhuǎn)移.這兩種情況都將產(chǎn)生不同的指令代碼,以便能正確地生成目的地址,在段內(nèi)轉(zhuǎn)移時(shí),指令只要能提供目的地址的段內(nèi)偏移量即夠了;而在段間轉(zhuǎn)移時(shí),指令應(yīng)能提供目的地址的段地址及段內(nèi)偏移地址值.說明:
1.其中OPRD為轉(zhuǎn)移的目的地址.程序轉(zhuǎn)移到目的地址所指向的指令繼續(xù)往下執(zhí)行.
2.本組指令對(duì)標(biāo)志位無影響.
3.<1>段內(nèi)直接轉(zhuǎn)移指令:JMPNEAR標(biāo)號(hào)
<2>段內(nèi)間接轉(zhuǎn)移指令:JMPOPRD
<3>段間直接轉(zhuǎn)移指令:JMPFAR標(biāo)號(hào)
<4>段間間接轉(zhuǎn)移指令:JMPOPRD其中的OPRD為存儲(chǔ)器雙字操作數(shù).段間間接轉(zhuǎn)移只能通過存儲(chǔ)器操作數(shù)來實(shí)現(xiàn).JNA條件轉(zhuǎn)移指令JBE/JNA
格式:JBE/JNA標(biāo)號(hào)
功能:低于等于/不高于時(shí)轉(zhuǎn)移說明:該指令用于無符號(hào)數(shù)的條件轉(zhuǎn)移JNAE條件轉(zhuǎn)移指令JB/JNAE
格式:JB/JNAE標(biāo)號(hào)
功能:低于/不高于等于時(shí)轉(zhuǎn)移說明:該指令用于無符號(hào)數(shù)的條件轉(zhuǎn)移JNB條件轉(zhuǎn)移指令JAE/JNB
格式:JAE/JNB標(biāo)號(hào)
功能:為高于等于/不低于的轉(zhuǎn)移指令說明:
1.JAE/JNB是同一條指令的兩種不同的助記符.
2.該指令用于無符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移.JNBE條件轉(zhuǎn)移指令JA/JNBE
格式:JA/JNBE標(biāo)號(hào)
功能:為高于/不低于等于的轉(zhuǎn)移指令說明:
1.例如兩個(gè)符號(hào)數(shù)a,b比較時(shí),a>b(即CF=0,ZF=0)時(shí)轉(zhuǎn)移.因?yàn)閱我粯?biāo)志位CF=0,只表示a>=b.
2.JA/JNBE是同一條指令的兩種不同的助記符.
3.該指令用于無符號(hào)數(shù)進(jìn)行條件轉(zhuǎn)移JNC條件轉(zhuǎn)移指令JNC
格式:JNC標(biāo)號(hào)
功能:CF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:JNC為根據(jù)標(biāo)志位CF進(jìn)行轉(zhuǎn)移的指令JNE條件轉(zhuǎn)移指令JNE/JNZ
格式:JNE/JNZ標(biāo)號(hào)
功能:ZF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:
1.指令JNE與JNZ等價(jià),它們是根據(jù)標(biāo)志位ZF進(jìn)行轉(zhuǎn)移的指令
2.JNE,JNZ均為一條指令的兩種助記符表示方法JNG條件轉(zhuǎn)移指令JLE/JNG
格式:JLE/JNG標(biāo)號(hào)
功能:小于等于/不大于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JNGE條件轉(zhuǎn)移指令JL/JNGE
格式:JL/JNGE標(biāo)號(hào)
功能:小于/不大于等于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JNL條件轉(zhuǎn)移指令JGE/JNL
格式:JGE/JNL標(biāo)號(hào)
功能:大于等于/不小于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JNLE條件轉(zhuǎn)移指令JG/JNLE
格式:JG/JNLE標(biāo)號(hào)
功能:大于/不小于等于時(shí)轉(zhuǎn)移說明:用于帶符號(hào)數(shù)的條件轉(zhuǎn)移指令JNO條件轉(zhuǎn)移指令JNO
格式:JNO標(biāo)號(hào)
功能:OF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:JNO是根椐溢出標(biāo)志位OF進(jìn)行轉(zhuǎn)移的指令JNP條件轉(zhuǎn)移指令JNP/JPO
格式:JNP/JPO標(biāo)號(hào)
功能:PF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:
1.指令JNP與JPO,它們是根據(jù)奇偶標(biāo)志位PF進(jìn)行轉(zhuǎn)移的指令
2.JNP,JPO均為一條指令的兩種助記符表示方法JNS條件轉(zhuǎn)移指令JNS
格式:JNS標(biāo)號(hào)
功能:SF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:JNS是根據(jù)符號(hào)標(biāo)志位SF進(jìn)行轉(zhuǎn)移的指令JNZ條件轉(zhuǎn)移指令JNE/JNZ
格式:JNE/JNZ標(biāo)號(hào)
功能:ZF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:
1.指令JNE與JNZ等價(jià),它們是根據(jù)標(biāo)志位ZF進(jìn)行轉(zhuǎn)移的指令
2.JNE,JNZ均為一條指令的兩種助記符表示方法JO條件轉(zhuǎn)移指令JO
格式:JO標(biāo)號(hào)
功能:OF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:JO是根椐溢出標(biāo)志位OF進(jìn)行轉(zhuǎn)移的指令JP條件轉(zhuǎn)移指令JP/JPE
格式:JP/JPE標(biāo)號(hào)
功能:PF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:
1.指令JP與JPE,它們是根據(jù)奇偶標(biāo)志位PF進(jìn)行轉(zhuǎn)移的指令
2.JP,JPE均為一條指令的兩種助記符表示方法JPE條件轉(zhuǎn)移指令JP/JPE
格式:JP/JPE標(biāo)號(hào)
功能:PF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:
1.指令JP與JPE,它們是根據(jù)奇偶標(biāo)志位PF進(jìn)行轉(zhuǎn)移的指令
2.JP,JPE均為一條指令的兩種助記符表示方法JPO條件轉(zhuǎn)移指令JNP/JPO
格式:JNP/JPO標(biāo)號(hào)
功能:PF=0,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:
1.指令JNP與JPO,它們是根據(jù)奇偶標(biāo)志位PF進(jìn)行轉(zhuǎn)移的指令
2.JNP,JPO均為一條指令的兩種助記符表示方法JS條件轉(zhuǎn)移指令JS
格式:JS標(biāo)號(hào)
功能:SF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)行說明:JS是根據(jù)符號(hào)標(biāo)志位SF進(jìn)行轉(zhuǎn)移的指令JZ條件轉(zhuǎn)移指令JE/JZ
格式:JE/JZ標(biāo)號(hào)
功能:ZF=1,轉(zhuǎn)至標(biāo)號(hào)處執(zhí)說明:
1.指令JE與JZ等價(jià),它們是根據(jù)標(biāo)志位ZF進(jìn)行轉(zhuǎn)移的指令
2.JE,JZ均為一條指令的兩種助記符表示方法LAHF標(biāo)志傳送指令LAHF
格式:LAHF
功能:取FLAG標(biāo)志寄存器低8位至AH寄存器.(AH)<--(FLAG)7~0說明:該指令不影響FLAG的原來內(nèi)容,AH只是復(fù)制了原FLAG的低8位內(nèi)容.LDS從存儲(chǔ)器取出32位地址的指令LDS
格式:LDSOPRD1,OPRD2
功能:從存儲(chǔ)器取出32位地址的指令.說明:
OPRD1為任意一個(gè)16位的寄存器.
OPRD2為32位的存儲(chǔ)器地址.
示例:LDSSI,ABCD
LDSBX,FAST[SI]
LDSDI,[BX]
注意:上面LDSDI,[BX]指令的功能是把BX所指的32位地址指針的段地址送入DS,偏移地址送入DI.LEA有效地址傳送指令LEA
格式:LEAOPRD1,OPRD2
功能:將源操作數(shù)給出的有效地址傳送到指定的的寄存器中.說明:
1.OPRD1為目的操作數(shù),可為任意一個(gè)16位的通用寄存器.
OPRD2為源操作數(shù),可為變量名、標(biāo)號(hào)或地址表達(dá)式.
示例:LEABX,DATA1
LEADX,BETA[BX+SI]
LEABXBX,[BP],[DI]
2.本指令對(duì)標(biāo)志位無影響。LES從存儲(chǔ)器取出32位地址的指令LES
格式:LESOPRD1,OPRD2
功能:從存儲(chǔ)器取出32位地址的指令.說明:
OPRD1為任意一個(gè)16位的寄存器.
OPRD2為32位的存儲(chǔ)器地址.
示例:LESSI,ABCD
LESBX,FAST[SI]
LESDI,[BX]
注意:上面LESDI,[BX]指令的功能是把BX所指的32位地址指針的段地址送入ES,偏移地址送入DI.LOCK封鎖總線指令LOCK
格式:LOCK
功能:指令是一個(gè)前綴,可放在指令的前面,告訴CPU在執(zhí)行該指令時(shí),不允許其它設(shè)備對(duì)總線進(jìn)行訪問.無可用信息!用戶可自行添加!LODS取字符串元素指令LODS
格式:LODSOPRD其中OPRD為源字符串符號(hào)地址.
功能:把SI尋址的源串的數(shù)據(jù)字節(jié)送AL或數(shù)據(jù)字送AX中去,并根據(jù)DF的值修改地址指針SI進(jìn)行自動(dòng)調(diào)整.說明:
1.本指令不影響標(biāo)志位.
2.當(dāng)不使用操作數(shù)時(shí),可用LODS(字節(jié)串)或LODSW(字串)指令.LOOP循環(huán)控制指令LOOP
格式:LOOP標(biāo)號(hào)
功能:(CX)<--(CX)-1,(CX)<>0,則轉(zhuǎn)移至標(biāo)號(hào)處循環(huán)執(zhí)行,直至(CX)=0,繼續(xù)執(zhí)行后繼指令.說明:
1.本指令是用CX寄存器作為計(jì)數(shù)器,來控制程序的循環(huán).
2.它屬于段內(nèi)SHORT短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi).LOOPE循環(huán)控制指令LOOPZ/LOOPE
格式:LOOPZ/LOOPE標(biāo)號(hào)
功能:(CX)<--(CX)-1,(CX)<>0且ZF=1時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說明:
1.本指令是用CX寄存器作為計(jì)數(shù)器,來控制程序的循環(huán).
2.它屬于段內(nèi)SHORT短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi).
3.以上兩種助記符等價(jià).LOOPNE循環(huán)控制指令LOOPNZ/LOOPNE
格式:LOOPNZ/LOOPNE標(biāo)號(hào)
功能:(CX)<--(CX)-1,(CX)<>0且ZF=0時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說明:
1.本指令是用CX寄存器作為計(jì)數(shù)器,來控制程序的循環(huán).
2.它屬于段內(nèi)SHORT短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi).
3.以上兩種助記符等價(jià).LOOPNZ循環(huán)控制指令LOOPNZ/LOOPNE
格式:LOOPNZ/LOOPNE標(biāo)號(hào)
功能:(CX)<--(CX)-1,(CX)<>0且ZF=0時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說明:
1.本指令是用CX寄存器作為計(jì)數(shù)器,來控制程序的循環(huán).
2.它屬于段內(nèi)SHORT短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi).
3.以上兩種助記符等價(jià).LOOPZ循環(huán)控制指令LOOPZ/LOOPE
格式:LOOPZ/LOOPE標(biāo)號(hào)
功能:(CX)<--(CX)-1,(CX)<>0且ZF=1時(shí),轉(zhuǎn)至標(biāo)號(hào)處循環(huán)說明:
1.本指令是用CX寄存器作為計(jì)數(shù)器,來控制程序的循環(huán).
2.它屬于段內(nèi)SHORT短類型轉(zhuǎn)移,目的地址必須距本指令在-128到+127個(gè)字節(jié)的范圍內(nèi).
3.以上兩種助記符等價(jià).MOVE數(shù)據(jù)傳送指令MOV
格式:MOVOPRD1,OPRD2
功能:本指令將一個(gè)源操作數(shù)送到目的操作數(shù)中,即OPRD1<--OPRD2.說明:
1.OPRD1為目的操作數(shù),可以是寄存器、存儲(chǔ)器、累加器.
OPRD2為源操作數(shù),可以是寄存器、存儲(chǔ)器、累加器和立即數(shù).
2.MOV指令以分為以下四種情況:
<1>寄存器與寄存器之間的數(shù)據(jù)傳送指令
<2>立即數(shù)到通用寄存器數(shù)據(jù)傳送指令
<3>寄存器與存儲(chǔ)器之間的數(shù)據(jù)傳送指令
<4>立即數(shù)到存儲(chǔ)器的數(shù)據(jù)傳送
3.本指令不影響狀態(tài)標(biāo)志位MOVS字符串傳送指令MOVS
格式:MOVSOPRD1,OPRD2
MOVSB
MOVSW
功能:OPRD1<--OPRD2.說明:
1.其中OPRD2為源串符號(hào)地址,OPRD1為目的串符號(hào)地址.
2.字節(jié)串操作:若DF=0,則作加,若DF=1,則作減.
3.對(duì)字串操作時(shí):若DF=0,則作加,若DF=1,則作減,.
4.在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為MOVSB、字串傳送格式為MOVSW.
5.本指令不影響標(biāo)志位.MOVSB字符串傳送指令MOVS
格式:MOVSOPRD1,OPRD2
MOVSB
MOVSW
功能:OPRD1<--OPRD2.說明:
1.其中OPRD2為源串符號(hào)地址,OPRD1為目的串符號(hào)地址.
2.字節(jié)串操作:若DF=0,則作加,若DF=1,則作減.
3.對(duì)字串操作時(shí):若DF=0,則作加,若DF=1,則作減,.
4.在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為MOVSB、字串傳送格式為MOVSW.
5.本指令不影響標(biāo)志位.MOVSW字符串傳送指令MOVS
格式:MOVSOPRD1,OPRD2
MOVSB
MOVSW
功能:OPRD1<--OPRD2.說明:
1.其中OPRD2為源串符號(hào)地址,OPRD1為目的串符號(hào)地址.
2.字節(jié)串操作:若DF=0,則作加,若DF=1,則作減.
3.對(duì)字串操作時(shí):若DF=0,則作加,若DF=1,則作減,.
4.在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為MOVSB、字串傳送格式為MOVSW.
5.本指令不影響標(biāo)志位.MUL無符號(hào)數(shù)乘法指令MUL(MULtiply)
格式:MULOPRD
功能:乘法操作.說明:
1.OPRD為通用寄存器或存儲(chǔ)器操作數(shù).
2.OPRD為源操作數(shù),即作乘數(shù).目的操作數(shù)是隱含的,即被乘數(shù)總是指定為累加器AX或AL的內(nèi)容.
3.16位乘法時(shí),AX中為被乘數(shù).8位乘法時(shí),AL為被乘數(shù).當(dāng)16位乘法時(shí),32位的乘積存于DX及AX中;8位乘法的16位乘積存于AX中.
4.操作過程:字節(jié)相乘:(AX)<--(AL)*OPRD,當(dāng)結(jié)果的高位字節(jié)(AH)不等于0時(shí),則CF=1、OF=1.NEG取補(bǔ)指令NEG(NEGate)
格式:NEGOPRD
功能:對(duì)操作數(shù)OPRD進(jìn)行取補(bǔ)操作,然后將結(jié)果送回OPRD.取補(bǔ)操作也叫作求補(bǔ)操作,就是求一個(gè)數(shù)的相反數(shù)的補(bǔ)碼.說明:
1.OPRD為任意通用寄存器或存儲(chǔ)器操作數(shù).
2.示例:(AL)=44H,取補(bǔ)后,(AL)=0BCH(-44H).
3.本指令影響標(biāo)志位CF、OF、SF、PF、ZF及AF.NOP空操作指令NOP
格式:NOP
功能:本指令不產(chǎn)生任何結(jié)果,僅消耗幾個(gè)時(shí)鐘周期的時(shí)間,接著執(zhí)行后續(xù)指令,常用于程序的延時(shí)等.說明:本指令不影響標(biāo)志位.NOT邏輯非運(yùn)算指令NOT
格式:NOTOPRD
功能:完成對(duì)操作數(shù)按位求反運(yùn)算(即0變1,1變0),結(jié)果關(guān)回原操作數(shù).說明:
1.其中OPRD可為任一通用寄存器或存儲(chǔ)器操作數(shù).
2.本指梳令可以進(jìn)行字或字節(jié)‘非’運(yùn)算.
3.本指令不影響標(biāo)志位.OR邏輯或指令OR
格式:OROPRD1,OPRD2
功能:OR指令完成對(duì)兩個(gè)操作數(shù)按位的‘或’運(yùn)算,結(jié)果送至目的操作數(shù)中,本指令可以進(jìn)行字節(jié)或字的‘或’運(yùn)算.
OPRD1<--OPRD1OROPRD2.說明:
1.其中OPRD1,OPRD2含義與AND指令相同,對(duì)標(biāo)志位的影響也與AND指令相同.
2.兩數(shù)相或,有一個(gè)數(shù)為真則值為真.OUT輸出指令OUT
格式:OUTn,AL;(n)<--(AL)
功能:輸出指令說明:
1.OUTn,AX;(n+1),(n)<--(AX)
OUTDX,AL;[(DX)]<--(AL)
OUTDX,AX;[(DX)+1],[(DX)]<--(AX)
2.輸入指令及輸出指令對(duì)標(biāo)志位都不影響.POP堆棧操作指令PUSH和POP
格式:PUSHOPRD
POPOPRD
功能:實(shí)現(xiàn)壓入操作的指令是PUSH指令;實(shí)現(xiàn)彈出操作的指令是POP指令.說明:
1.OPRD為16位(字)操作數(shù),可以是寄存器或存儲(chǔ)器操作數(shù).
2.POP指令的操作過程是:POPOPRD:OPRD<--((SP)),(SP)<--(SP)+2
它與壓入操作相反,是先彈出棧頂?shù)臄?shù)頂,然后再修改指針SP的內(nèi)容.
3.示例:POPAX
POPDS
POPDATA1POPALFA[BX][DI]
4.PUSH和POP指令對(duì)狀態(tài)標(biāo)志位沒有影響.POPF標(biāo)志傳送指令POPF
格式:POPF
功能:本指令的功能與PUSHF相反,在子程序調(diào)用和中斷服務(wù)程序中,往往用PUSHF指令保護(hù)FLAG的內(nèi)容,用POPF指令將保護(hù)的FLAG內(nèi)容恢復(fù).說明:如果對(duì)堆棧中的原FLAG內(nèi)容進(jìn)行修改,如對(duì)TF等標(biāo)志位進(jìn)行修改,然后再?gòu)椈貥?biāo)志位寄存器FLAG.這是通過指令修改TF標(biāo)志的唯一方法.PUSH堆棧操作指令PUSH和POP
格式:PUSHOPRD
POPOPRD
功能:實(shí)現(xiàn)壓入操作的指令是PUSH指令;實(shí)現(xiàn)彈出操作的指令是POP指令.說明:
1.OPRD為16位(字)操作數(shù),可以是寄存器或存儲(chǔ)器操作數(shù).
2.PUSH的操作過程是:(SP)<--(SP)-2,((sp))<--OPRD即先修改堆棧指針SP(壓入時(shí)為自動(dòng)減2),然后,將指定的操作數(shù)送入新的棧頂位置.
此處的((SP))<--OPRD,也可以理解為:[(SS)*16+(SP)]<--OPRD或[SS:SP]<--OPRDPUSHF標(biāo)志傳送指令PUSHF
格式:PUSHF
功能:本指令可以把標(biāo)志寄存器的內(nèi)容保存到堆棧中去
RCL循環(huán)移位指令
格式:ROLOPRD1,COUNT;不含進(jìn)位標(biāo)志位CF在循環(huán)中的左循環(huán)移位指令.
ROROPRD1,COUNT;不含進(jìn)位示志位CF在循環(huán)中的右循環(huán)移位指令.
RCLOPRD1,COUNT;帶進(jìn)位的左循環(huán)移位指令.
RCROPRD1,COUNT;帶進(jìn)位的右循環(huán)移位指令.說明:
1.本指令組只影響標(biāo)志CF、OF.OF由移入CF的內(nèi)容決定,OF取決于移位一次后符號(hào)位是否改變,如改變,則OF=1.
2.由于是循環(huán)移位,所以對(duì)字節(jié)移位8次;對(duì)字移位16次,就可恢復(fù)為原操作數(shù).由于帶CF的循環(huán)移位,可以將CF的內(nèi)容移入,
所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán).RCR循環(huán)移位指令
格式:ROLOPRD1,COUNT;不含進(jìn)位標(biāo)志位CF在循環(huán)中的左循環(huán)移位指令.
ROROPRD1,COUNT;不含進(jìn)位示志位CF在循環(huán)中的右循環(huán)移位指令.
RCLOPRD1,COUNT;帶進(jìn)位的左循環(huán)移位指令.
RCROPRD1,COUNT;帶進(jìn)位的右循環(huán)移位指令.說明:
1.本指令組只影響標(biāo)志CF、OF.OF由移入CF的內(nèi)容決定,OF取決于移位一次后符號(hào)位是否改變,如改變,則OF=1.
2.由于是循環(huán)移位,所以對(duì)字節(jié)移位8次;對(duì)字移位16次,就可恢復(fù)為原操作數(shù).由于帶CF的循環(huán)移位,可以將CF的內(nèi)容移入,所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán).
注意:以上程序中的指令SHRAL,CL如改為SARAL,CL,雖然最高4位可移入低4位,但最高位不為0,故應(yīng)加入一條指令A(yù)NDAL,0FH.否則,若最高位不為0時(shí),將得到錯(cuò)誤結(jié)果.REP重復(fù)前綴的說明
格式:REP;CX<>0重復(fù)執(zhí)行字符串指令
REPZ/REPE;CX<>0且ZF=1重復(fù)執(zhí)行字符串指令
REPNZ/REPNE;CX<>0且ZF=0重復(fù)執(zhí)行字符串指令
功能:在串操作指令前加上重復(fù)前綴,可以對(duì)字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對(duì)應(yīng)的指令代碼是不同的,所以指令的功能便具有重復(fù)處理的功能,重復(fù)的次數(shù)存放在CX寄存器中.說明:
1.REP與MOVS或STOS串操作指令相結(jié)合使用,完成一組字符的傳送或建立一組相同數(shù)據(jù)的字符串.
2.REPZ/REPE常用與CMPS串操作指令結(jié)合使用,可以完成兩組字符串的比較.
3.REPZ/REPE常與SCAS指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字.
4.REPNZ/REPNE與CMPS指令結(jié)合使用,表示當(dāng)串未結(jié)束(CX=1)且當(dāng)對(duì)應(yīng)串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.REPE重復(fù)前綴的說明
格式:REP;CX<>0重復(fù)執(zhí)行字符串指令
REPZ/REPE;CX<>0且ZF=1重復(fù)執(zhí)行字符串指令
REPNZ/REPNE;CX<>0且ZF=0重復(fù)執(zhí)行字符串指令
功能:在串操作指令前加上重復(fù)前綴,可以對(duì)字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對(duì)應(yīng)的指令代碼是不同的,所以指令的功能便具有重復(fù)處理的功能,重復(fù)的次數(shù)存放在CX寄存器中.說明:
1.REPZ/REPE常用與CMPS串操作指令結(jié)合使用,可以完成兩組字符串的比較.
2.REPZ/REPE常與SCAS指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字.
3.REPNZ/REPNE與CMPS指令結(jié)合使用,表示當(dāng)串未結(jié)束(CX=1)且當(dāng)對(duì)應(yīng)串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.
4.REPNZ/REPNE與SCAS指令結(jié)合使用,表示串未結(jié)束(CX=1)且當(dāng)關(guān)鍵字與串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串搜索指令.REPNE重復(fù)前綴的說明
格式:REP;CX<>0重復(fù)執(zhí)行字符串指令
REPZ/REPE;CX<>0且ZF=1重復(fù)執(zhí)行字符串指令
REPNZ/REPNE;CX<>0且ZF=0重復(fù)執(zhí)行字符串指令說明:
1.REPZ/REPE常用與CMPS串操作指令結(jié)合使用,可以完成兩組字符串的比較.
2.REPZ/REPE常與SCAS指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字.
3.REPNZ/REPNE與CMPS指令結(jié)合使用,表示當(dāng)串未結(jié)束(CX=1)且當(dāng)對(duì)應(yīng)串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.
4.REPNZ/REPNE與SCAS指令結(jié)合使用,表示串未結(jié)束(CX=1)且當(dāng)關(guān)鍵字與串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串搜索指令.REPNZ重復(fù)前綴的說明
格式:REP;CX<>0重復(fù)執(zhí)行字符串指令
REPZ/REPE;CX<>0且ZF=1重復(fù)執(zhí)行字符串指令
REPNZ/REPNE;CX<>0且ZF=0重復(fù)執(zhí)行字符串指令說明:
1.REPZ/REPE常用與CMPS串操作指令結(jié)合使用,可以完成兩組字符串的比較.
2.REPZ/REPE常與SCAS指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字.
3.REPNZ/REPNE與CMPS指令結(jié)合使用,表示當(dāng)串未結(jié)束(CX=1)且當(dāng)對(duì)應(yīng)串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.
4.REPNZ/REPNE與SCAS指令結(jié)合使用,表示串未結(jié)束(CX=1)且當(dāng)關(guān)鍵字與串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串搜索指令.REPZ重復(fù)前綴的說明
格式:REP;CX<>0重復(fù)執(zhí)行字符串指令
REPZ/REPE;CX<>0且ZF=1重復(fù)執(zhí)行字符串指令
REPNZ/REPNE;CX<>0且ZF=0重復(fù)執(zhí)行字符串指令
功能:在串操作指令前加上重復(fù)前綴,可以對(duì)字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對(duì)應(yīng)的指令代碼是不同的,所以指令的功能便具有重復(fù)處理的功能,重復(fù)的次數(shù)存放在CX寄存器中.說明:
1.REPZ/REPE常用與CMPS串操作指令結(jié)合使用,可以完成兩組字符串的比較.
2.REPZ/REPE常與SCAS指令結(jié)合使用,可以完成在一個(gè)字符串中搜索一個(gè)關(guān)鍵字.
3.REPNZ/REPNE與CMPS指令結(jié)合使用,表示當(dāng)串未結(jié)束(CX=1)且當(dāng)對(duì)應(yīng)串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.
4.REPNZ/REPNE與SCAS指令結(jié)合使用,表示串未結(jié)束(CX=1)且當(dāng)關(guān)鍵字與串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串搜索指令.RET返回指令RET
格式:RET
功能:當(dāng)調(diào)用的過程結(jié)束后實(shí)現(xiàn)從過程返回至原調(diào)用程序的下一條指令,本指令不影響標(biāo)志位.說明:
由于在過程定義時(shí),已指明其近(NEAR)或遠(yuǎn)(FAR)的屬性,所以RET指令根據(jù)段內(nèi)調(diào)用與段間調(diào)用,執(zhí)行不同的操作
對(duì)段內(nèi)調(diào)用:返回時(shí),由堆棧彈出一個(gè)字的返回地址的段內(nèi)偏移量至IP.
對(duì)段外調(diào)用:返回時(shí),由堆棧彈出的第一個(gè)字為返回地址的段內(nèi)偏移量,將其送入IP中,由堆棧彈出第二個(gè)字為返回地址的段基址,將其送入CS中.ROL循環(huán)移位指令
格式:ROLOPRD1,COUNT;不含進(jìn)位標(biāo)志位CF在循環(huán)中的左循環(huán)移位指令.
ROROPRD1,COUNT;不含進(jìn)位示志位CF在循環(huán)中的右循環(huán)移位指令.
RCLOPRD1,COUNT;帶進(jìn)位的左循環(huán)移位指令.
RCROPRD1,COUNT;帶進(jìn)位的右循環(huán)移位指令.說明:
1.本指令組只影響標(biāo)志CF、OF.OF由移入CF的內(nèi)容決定,OF取決于移位一次后符號(hào)位是否改變,如改變,則OF=1.
2.由于是循環(huán)移位,所以對(duì)字節(jié)移位8次;對(duì)字移位16次,就可恢復(fù)為原操作數(shù).由于帶CF的循環(huán)移位,可以將CF的內(nèi)容移入,
所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán).ROR循環(huán)移位指令
格式:
ROLOPRD1,COUNT;不含進(jìn)位標(biāo)志位CF在循環(huán)中的左循環(huán)移位指令.
ROROPRD1,COUNT;不含進(jìn)位示志位CF在循環(huán)中的右循環(huán)移位指令.
RCLOPRD1,COUNT;帶進(jìn)位的左循環(huán)移位指令.
RCROPRD1,COUNT;帶進(jìn)位的右循環(huán)移位指令.說明:
1.本指令組只影響標(biāo)志CF、OF.OF由移入CF的內(nèi)容決定,OF取決于移位一次后符號(hào)位是否改變,如改變,則OF=1.
2.由于循環(huán)移位,所以對(duì)字節(jié)移位8次;對(duì)字移位16次,可恢復(fù)為原操作數(shù).SAHF標(biāo)志傳送指令SAHF
格式:SAHF
功能:將AH存至FLAG低8位說明:本指令將用AH的內(nèi)容改寫FLAG標(biāo)志寄存器中的SF、ZF、AF、PF、和CF標(biāo)志,從而改變?cè)瓉淼臉?biāo)志位.SAL算術(shù)左移指令SAL(ShiftArithmeticLeft)
格式:SALOPRD1,COUNT
功能:其中OPRD1,COUNT與指令SHL相同.本指令與SHL的功能也完全相同,這是因?yàn)檫壿嬜笠浦噶钆c算術(shù)左移指令所要完成的操作是一樣的.說明:
1.其中OPRD1為目的操作數(shù),可以是通用寄存器或存儲(chǔ)器操作數(shù).
2.COUNT代表移位的次數(shù)(或位數(shù)).移位一次,COUNT=1;移位多于1次時(shí),COUNT=(CL),(CL)中為移位的次數(shù).SAR算術(shù)右移指令SAR
格式:SAROPRD1,COUNT
功能:本指令通常用于對(duì)帶符號(hào)數(shù)減半的運(yùn)算中,因而在每次右移時(shí),保持最高位(符號(hào)位)不變,最低位右移至CF中.說明:
1.其中OPRD1為目的操作數(shù),可以是通用寄存器或存儲(chǔ)器操作數(shù).
2.COUNT代表移位的次數(shù)(或位數(shù)).移位一次,COUNT=1;移位多于1次時(shí),COUNT=(CL),(CL)中為移位的次數(shù).SBB帶借位減去指令SBB(SuBtractionwithBorrow)
格式:SBBOPRD1,OPRD2
功能:是進(jìn)行兩個(gè)操作數(shù)的相減再減去CF進(jìn)位標(biāo)志位,即從OPRD1<--OPRD1-OPRD2-CF,其結(jié)果放在OPDR1中.說明:
示例SBBDX,CX
SBBAX,DATA1
SBBBX,2000H
SBBALFA[BX+SI],SI
SBBBETAP[DI,030AHSCAS字符串搜索指令SCAS
格式:SCASOPRD
SCASB
SCASW
功能:把AL(字節(jié)串)或AX(字串)的內(nèi)容與由DI寄存器尋址的目的串中的數(shù)據(jù)相減,結(jié)果置標(biāo)志位,但不改變?nèi)我徊僮鲾?shù)本身.
地址指針DI自動(dòng)調(diào)整.說明:
1.其中OPRD為目的串符號(hào)地址.
2.本指令影響標(biāo)志AF、CF、OF、PF、SF、ZF.該指令可查找字符串中的一個(gè)關(guān)鍵字,只需在本指令執(zhí)行前,
把關(guān)鍵字放在AL(字節(jié))或AX(字串)中,用重復(fù)前綴可在整串中查找.
指令中不使用操作數(shù)時(shí),可用指令格式SCASB,SCASW,分別表示字節(jié)串或字串搜索指令.SCASB字符串搜索指令SCAS
格式:SCASOPRD
SCASB
SCASW
功能:把AL(字節(jié)串)或AX(字串)的內(nèi)容與由DI寄存器尋址的目的串中的數(shù)據(jù)相減,結(jié)果置標(biāo)志位,但不改變?nèi)我徊僮鲾?shù)本身.
地址指針DI自動(dòng)調(diào)整.說明:
1.其中OPRD為目的串符號(hào)地址.
2.本指令影響標(biāo)志AF、CF、OF、PF、SF、ZF.該指令可查找字符串中的一個(gè)關(guān)鍵字,只需在本指令執(zhí)行前,
把關(guān)鍵字放在AL(字節(jié))或AX(字串)中,用重復(fù)前綴可在整串中查找.
指令中不使用操作數(shù)時(shí),可用指令格式SCASB,SCASW,分別表示字節(jié)串或字串搜索指令.SCASW字符串搜索指令SCAS
格式:SCASOPRD
SCASB
SCASW
功能:把AL(字節(jié)串)或AX(字串)的內(nèi)容與由DI寄存器尋址的目的串中的數(shù)據(jù)相減,結(jié)果置標(biāo)志位,但不改變?nèi)我徊僮鲾?shù)本身.
地址指針DI自動(dòng)調(diào)整.說明:
1.其中OPRD為目的串符號(hào)地址.
2.本指令影響標(biāo)志AF、CF、OF、PF、SF、ZF.該指令可查找字符串中的一個(gè)關(guān)鍵字,只需在本指令執(zhí)行前,
把關(guān)鍵字放在AL(字節(jié))或AX(字串)中,用重復(fù)前綴可在整串中查找.
指令中不使用操作數(shù)時(shí),可用指令格式SCASB,SCASW,分別表示字節(jié)串或字串搜索指令.SHL邏輯左移指令SHL(Shiftlogicalleft)
格式:SHLOPRD1,COUNT
功能:對(duì)給定的目的操作數(shù)左移COUNT次,每次移位時(shí)最高位移入標(biāo)志位CF中,最低位補(bǔ)零.說明:
1.其中OPRD1為目的操作數(shù),可以是通用寄存器或存儲(chǔ)器操作數(shù).
2.COUNT代表移位的次數(shù)(或位數(shù)).移位一次,COUNT=1;移位多于1次時(shí),COUNT=(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省教育機(jī)構(gòu)2025年度勞動(dòng)合同規(guī)范文本2篇
- 2025年金融資產(chǎn)交易居間委托服務(wù)合同2篇
- 二零二五年度法院離婚案件財(cái)產(chǎn)分割操作合同3篇
- 2025年度綠化帶病蟲害防治服務(wù)合同范本4篇
- 二零二五年度醫(yī)療設(shè)備采購(gòu)與租賃合同參考文本4篇
- 2025版模具行業(yè)市場(chǎng)調(diào)研與購(gòu)銷合同4篇
- 2025年人才招聘解決方案合同
- 2025年古玩字畫擔(dān)保協(xié)議
- 2025年寬帶網(wǎng)絡(luò)使用合同
- 2025年融資居間服務(wù)合同的比較研究
- 2025年度版權(quán)授權(quán)協(xié)議:游戲角色形象設(shè)計(jì)與授權(quán)使用3篇
- 心肺復(fù)蘇課件2024
- 《城鎮(zhèn)燃?xì)忸I(lǐng)域重大隱患判定指導(dǎo)手冊(cè)》專題培訓(xùn)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院專升本管理學(xué)真題
- 全國(guó)身份證前六位、區(qū)號(hào)、郵編-編碼大全
- 2024-2025學(xué)年福建省廈門市第一中學(xué)高一(上)適應(yīng)性訓(xùn)練物理試卷(10月)(含答案)
- 《零售學(xué)第二版教學(xué)》課件
- 廣東省珠海市香洲區(qū)2023-2024學(xué)年四年級(jí)下學(xué)期期末數(shù)學(xué)試卷
- 房地產(chǎn)行業(yè)職業(yè)生涯規(guī)劃
- 江蘇省建筑與裝飾工程計(jì)價(jià)定額(2014)電子表格版
- MOOC 數(shù)字電路與系統(tǒng)-大連理工大學(xué) 中國(guó)大學(xué)慕課答案
評(píng)論
0/150
提交評(píng)論