




已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
匯編語言指令大全AAA未組合的十進(jìn)制加法調(diào)整指令 AAA(ASCII Adgust for Addition) 格式: AAA 功能: 對兩個(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) and 0FH9 或 AF=1,則調(diào)整如下: (AL)-(AL)+6,(AH)-(AH)+1,AF=1,CF-AF,(AL)-(AL) and 0FHAAD未組合十進(jìn)制數(shù)除法調(diào)整指令 AAD(ASCII Adjust for Division) 格式: AAD 功能: 在除法指令前對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. 示例: MOV BL,5 MOV AX,0308H AAD ;(AL)-1EH+08H=26H,(AH)(AL),余數(shù)03H-(AH).AAM未組合十進(jìn)制數(shù)乘法調(diào)整指令 AAM(ASCII Adjust MULtiply) 格式: AAM 功能: 對兩個(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è)09的數(shù)與另一個(gè)09的數(shù)相乘其積最大為81.為了得到正確的結(jié)果,應(yīng)進(jìn)行如下調(diào)整: 乘積: (AH)-(AL)/10 (AL) 9 或 AF=1 則(AL)-(AL)-6,(AH)-(AH)-1,CF-AF,(AL)-(AL) and 0FH, 否則(AL)-(AL) and 0FHADC帶進(jìn)位加法指令 ADC(Addition Carry) 格式: ADC OPRD1,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é)果對CF、SF、OF、PF、ZF、AF都會(huì)有影響.以上標(biāo)志也稱為結(jié)果標(biāo)志. 4. 該指令對標(biāo)志位的影響同ADD指令.ADD加法指令 ADD(Addition) 格式: ADD OPRD1,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é)果對CF、SF、OF、PF、ZF、AF都會(huì)有影響.以上標(biāo)志也稱為結(jié)果標(biāo)志.加法指令適用于無符號數(shù)或有符號數(shù)的加法運(yùn)算.AND邏輯與運(yùn)算指令 AND 格式: AND OPRD1,OPRD2 功能: 對兩個(gè)操作數(shù)實(shí)現(xiàn)按位邏輯與運(yùn)算,結(jié)果送至目的操作數(shù).本指令可以進(jìn)行字節(jié)或字的與運(yùn)算, OPRD1-OPRD1 and OPRD2.說明: 1. 目的操作數(shù)OPRD1為任一通用寄存器或存儲(chǔ)器操作數(shù).源操作數(shù)OPRD2為立即數(shù),任一通用寄存器或存儲(chǔ)器操作數(shù). 2. 示例: AND AL,0FH ;(AL)-(AL) AND 0FH AND AX,BX ;(AX)9 或 AF=1,則(AL)-(AL)+6,AF90H 或 CF=1,則(AL)-(AL)+60H,CF-1. 2. 示例: (AL)=18H,(BL)=06H ADD AL,BL ; (AL) 9 或 AF=1,則(AL) 90H 或 CF=1,則(AL)-(AL)-60,CF=1DEC減一指令 DEC(Decrement by 1) 格式: DEC OPRD 功能: OPRD-OPRD-1說明: 1. OPRD 為寄存器或存儲(chǔ)器操作數(shù). 2. 這條指令執(zhí)行結(jié)果影響AF、OF、PF、SF、ZF標(biāo)志位,但不影響CF標(biāo)志位. 3. 示例 DEC AX DEC CL DEC WORD PTRDI DEC ALFADI+BXDIV無符號數(shù)除法指令 DIV(DIVision) 格式: DIV OPRD 功能: 實(shí)現(xiàn)兩個(gè)無符號二進(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)MOD OPRD 字除法: (AX)-(DX)(AX)/OPRD,(DX)-(DX)(AX) MOD OPRDESC處理器交權(quán)指令 ESC 格式: ESC EXTOPRD,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(非屏蔽中斷請求)、INTR(可屏蔽的外部中斷請求)信號可以使 其退出暫停狀態(tài).它可用于等待中斷的到來或多機(jī)系統(tǒng)的同步操作.IDIV帶符號數(shù)除法指定 IDIV(Interger DIVision) 格式: IDIV OPRD 功能: 這實(shí)現(xiàn)兩個(gè)帶符號數(shù)的二進(jìn)制除法運(yùn)算.說明: 1. 其中OPRD為任一通用寄存器或存儲(chǔ)器操作數(shù). 2. 理由與IMUL相同,只有IDIV指令,才能得到符號數(shù)相除的正確結(jié)果. 3. 當(dāng)被除數(shù)為8位,在進(jìn)行字節(jié)除法前,應(yīng)把AL的符號位擴(kuò)充至AH中.在16位除法時(shí),若被除數(shù)為16位,則應(yīng)將AX中的符號位擴(kuò)到DX中.IMUL帶符號數(shù)乘法指令 IMUL(Integer MULtiply) 格式: IMUL OPRD 功能: 完成兩個(gè)帶符號數(shù)的相乘說明: 1. 其中OPRD為任一通用寄存器或存儲(chǔ)器操作數(shù). 2. MUL指令對帶符號相乘時(shí),不能得到正確的結(jié)果. 例如: (AL)=255 (CL)=255 MUL CL (AX)=65025 注意: 這對無符號數(shù)講,結(jié)果是正確的,但對帶符號數(shù)講,相當(dāng)于(-1)*(-1)結(jié)果應(yīng)為+1,而65025對應(yīng)的帶符號數(shù)為-511,顯然是不正確的.IN輸入指令 IN 格式: IN AL,n ;(AL)-(n) IN AX,n ;(AX)-(n+1),(n) IN AL,DX ;(AL)-(DX) IN AX,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中,用符號:(AX)-(DX)+1,(DX)表示.INC加1指令 INC(INCrement by 1) 格式: INC OPRD 功能: OPRD-OPRD+1說明: 1. OPRD 為寄存器或存儲(chǔ)器操作數(shù). 2. 這條指令執(zhí)行結(jié)果影響AF、OF、PF、SF、ZF標(biāo)志位,但不影響CF標(biāo)志位. 3. 示例: INC SI;(SI)-(SI)+1 INC WORD PTRBX INC BYTE PTRBX+DI INC CL;(CL)b(即CF=0,ZF=0)時(shí)轉(zhuǎn)移.因?yàn)閱我粯?biāo)志位CF=0,只表示a=b. 2. JA/JNBE是同一條指令的兩種不同的助記符. 3. 該指令用于無符號數(shù)進(jìn)行條件轉(zhuǎn)移JAE條件轉(zhuǎn)移指令JAE/JNB 格式: JAE/JNB 標(biāo)號 功能: 為高于等于/不低于的轉(zhuǎn)移指令說明: 1. JAE/JNB是同一條指令的兩種不同的助記符. 2. 該指令用于無符號數(shù)進(jìn)行條件轉(zhuǎn)移.JB條件轉(zhuǎn)移指令JB/JNAE 格式: JB/JNAE 標(biāo)號 功能: 低于/不高于等于時(shí)轉(zhuǎn)移說明: 該指令用于無符號數(shù)的條件轉(zhuǎn)移JBE條件轉(zhuǎn)移指令JBE/JNA 格式: JBE/JNA 標(biāo)號 功能: 低于等于/不高于時(shí)轉(zhuǎn)移說明: 該指令用于無符號數(shù)的條件轉(zhuǎn)移JC條件轉(zhuǎn)移指令 JC 格式: JC 標(biāo)號 功能: CF1,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: JC為根據(jù)標(biāo)志位CF進(jìn)行轉(zhuǎn)移的指令JE條件轉(zhuǎn)移指令JE/JZ 格式: JE/JZ標(biāo)號 功能: ZF1,轉(zhuǎn)至標(biā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)號 功能: 大于/不小于等于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JGE條件轉(zhuǎn)移指令JGE/JNL 格式: JGE/JNL標(biāo)號 功能: 大于等于/不小于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JL條件轉(zhuǎn)移指令JL/JNGE 格式: JL/JNGE標(biāo)號 功能: 小于/不大于等于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JLE條件轉(zhuǎn)移指令JLE/JNG 格式: JLE/JNG 標(biāo)號 功能: 小于等于/不大于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JMP無條件轉(zhuǎn)移指令JMP 格式: JMP OPRD 功能: 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. 本組指令對標(biāo)志位無影響. 3. 段內(nèi)直接轉(zhuǎn)移指令: JMP NEAR 標(biāo)號 段內(nèi)間接轉(zhuǎn)移指令: JMP OPRD 段間直接轉(zhuǎn)移指令: JMP FAR 標(biāo)號 段間間接轉(zhuǎn)移指令:JMP OPRD其中的OPRD為存儲(chǔ)器雙字操作數(shù).段間間接轉(zhuǎn)移只能通過存儲(chǔ)器操作數(shù)來實(shí)現(xiàn).JNA條件轉(zhuǎn)移指令JBE/JNA 格式: JBE/JNA 標(biāo)號 功能: 低于等于/不高于時(shí)轉(zhuǎn)移說明: 該指令用于無符號數(shù)的條件轉(zhuǎn)移JNAE條件轉(zhuǎn)移指令JB/JNAE 格式: JB/JNAE 標(biāo)號 功能: 低于/不高于等于時(shí)轉(zhuǎn)移說明: 該指令用于無符號數(shù)的條件轉(zhuǎn)移JNB條件轉(zhuǎn)移指令JAE/JNB 格式: JAE/JNB 標(biāo)號 功能: 為高于等于/不低于的轉(zhuǎn)移指令說明: 1. JAE/JNB是同一條指令的兩種不同的助記符. 2. 該指令用于無符號數(shù)進(jìn)行條件轉(zhuǎn)移.JNBE條件轉(zhuǎn)移指令JA/JNBE 格式: JA/JNBE標(biāo)號 功能: 為高于/不低于等于的轉(zhuǎn)移指令說明: 1. 例如兩個(gè)符號數(shù)a,b比較時(shí),ab(即CF=0,ZF=0)時(shí)轉(zhuǎn)移.因?yàn)閱我粯?biāo)志位CF=0,只表示a=b. 2. JA/JNBE是同一條指令的兩種不同的助記符. 3. 該指令用于無符號數(shù)進(jìn)行條件轉(zhuǎn)移JNC條件轉(zhuǎn)移指令JNC 格式: JNC標(biāo)號 功能: CF0,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: JNC為根據(jù)標(biāo)志位CF進(jìn)行轉(zhuǎn)移的指令JNE條件轉(zhuǎn)移指令JNE/JNZ 格式: JNE/JNZ 標(biāo)號 功能: ZF0,轉(zhuǎn)至標(biā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)號 功能: 小于等于/不大于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JNGE條件轉(zhuǎn)移指令JL/JNGE 格式: JL/JNGE標(biāo)號 功能: 小于/不大于等于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JNL條件轉(zhuǎn)移指令JGE/JNL 格式: JGE/JNL標(biāo)號 功能: 大于等于/不小于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JNLE條件轉(zhuǎn)移指令JG/JNLE 格式: JG/JNLE 標(biāo)號 功能: 大于/不小于等于時(shí)轉(zhuǎn)移說明: 用于帶符號數(shù)的條件轉(zhuǎn)移指令JNO條件轉(zhuǎn)移指令JNO 格式: JNO 標(biāo)號 功能: OF0,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: JNO是根椐溢出標(biāo)志位OF進(jìn)行轉(zhuǎn)移的指令JNP條件轉(zhuǎn)移指令JNP/JPO 格式: JNP/JPO 標(biāo)號 功能: PF0,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: 1. 指令JNP與JPO,它們是根據(jù)奇偶標(biāo)志位PF進(jìn)行轉(zhuǎn)移的指令 2. JNP,JPO均為一條指令的兩種助記符表示方法JNS條件轉(zhuǎn)移指令JNS 格式: JNS 標(biāo)號 功能: SF0,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: JNS是根據(jù)符號標(biāo)志位SF進(jìn)行轉(zhuǎn)移的指令JNZ條件轉(zhuǎn)移指令JNE/JNZ 格式: JNE/JNZ 標(biāo)號 功能: ZF0,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: 1. 指令JNE與JNZ等價(jià),它們是根據(jù)標(biāo)志位ZF進(jìn)行轉(zhuǎn)移的指令 2. JNE,JNZ均為一條指令的兩種助記符表示方法JO條件轉(zhuǎn)移指令JO 格式: JO 標(biāo)號 功能: OF1,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: JO是根椐溢出標(biāo)志位OF進(jìn)行轉(zhuǎn)移的指令JP條件轉(zhuǎn)移指令JP/JPE 格式: JP/JPE 標(biāo)號 功能: PF1,轉(zhuǎn)至標(biā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)號 功能: PF1,轉(zhuǎn)至標(biā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)號 功能: PF0,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: 1. 指令JNP與JPO,它們是根據(jù)奇偶標(biāo)志位PF進(jìn)行轉(zhuǎn)移的指令 2. JNP,JPO均為一條指令的兩種助記符表示方法JS條件轉(zhuǎn)移指令JS 格式: JS 標(biāo)號 功能: SF1,轉(zhuǎn)至標(biāo)號處執(zhí)行說明: JS是根據(jù)符號標(biāo)志位SF進(jìn)行轉(zhuǎn)移的指令JZ條件轉(zhuǎn)移指令JE/JZ 格式: JE/JZ標(biāo)號 功能: ZF1,轉(zhuǎn)至標(biā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)70說明: 該指令不影響FLAG的原來內(nèi)容,AH只是復(fù)制了原FLAG的低8位內(nèi)容.LDS從存儲(chǔ)器取出32位地址的指令 LDS 格式: LDS OPRD1,OPRD2 功能: 從存儲(chǔ)器取出32位地址的指令.說明: OPRD1 為任意一個(gè)16位的寄存器. OPRD2 為32位的存儲(chǔ)器地址. 示例: LDS SI,ABCD LDS BX,FASTSI LDS DI,BX 注意: 上面LDS DI,BX指令的功能是把BX所指的32位地址指針的段地址送入DS,偏移地址送入DI.LEA有效地址傳送指令 LEA 格式: LEA OPRD1,OPRD2 功能: 將源操作數(shù)給出的有效地址傳送到指定的的寄存器中.說明: 1. OPRD1 為目的操作數(shù),可為任意一個(gè)16位的通用寄存器. OPRD2 為源操作數(shù),可為變量名、標(biāo)號或地址表達(dá)式. 示例: LEA BX,DATA1 LEA DX,BETABX+SI LEA BX BX,BP,DI 2. 本指令對標(biāo)志位無影響。LES從存儲(chǔ)器取出32位地址的指令 LES 格式: LES OPRD1,OPRD2 功能: 從存儲(chǔ)器取出32位地址的指令.說明: OPRD1 為任意一個(gè)16位的寄存器. OPRD2 為32位的存儲(chǔ)器地址. 示例: LES SI,ABCD LES BX,FASTSI LES DI,BX 注意: 上面LES DI,BX指令的功能是把BX所指的32位地址指針的段地址送入ES,偏移地址送入DI.LOCK封鎖總線指令 LOCK 格式: LOCK 功能: 指令是一個(gè)前綴,可放在指令的前面,告訴CPU在執(zhí)行該指令時(shí),不允許其它設(shè)備對總線進(jìn)行訪問.無可用信息!用戶可自行添加!LODS取字符串元素指令 LODS 格式: LODS OPRD 其中OPRD為源字符串符號地址. 功能: 把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)號 功能: (CX)-(CX)-1,(CX)0,則轉(zhuǎn)移至標(biā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)號 功能: (CX)-(CX)-1,(CX)0 且ZF1時(shí),轉(zhuǎn)至標(biā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)號 功能: (CX)-(CX)-1,(CX)0 且ZF0時(shí),轉(zhuǎn)至標(biā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)號 功能: (CX)-(CX)-1,(CX)0 且ZF0時(shí),轉(zhuǎn)至標(biā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)號 功能: (CX)-(CX)-1,(CX)0 且ZF1時(shí),轉(zhuǎn)至標(biā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 格式: MOV OPRD1,OPRD2 功能: 本指令將一個(gè)源操作數(shù)送到目的操作數(shù)中,即OPRD1-OPRD2.說明: 1. OPRD1 為目的操作數(shù),可以是寄存器、存儲(chǔ)器、累加器. OPRD2 為源操作數(shù),可以是寄存器、存儲(chǔ)器、累加器和立即數(shù). 2. MOV 指令以分為以下四種情況: 寄存器與寄存器之間的數(shù)據(jù)傳送指令 立即數(shù)到通用寄存器數(shù)據(jù)傳送指令 寄存器與存儲(chǔ)器之間的數(shù)據(jù)傳送指令 立即數(shù)到存儲(chǔ)器的數(shù)據(jù)傳送 3. 本指令不影響狀態(tài)標(biāo)志位MOVS字符串傳送指令 MOVS 格式: MOVS OPRD1,OPRD2 MOVSB MOVSW 功能: OPRD1-OPRD2.說明: 1. 其中OPRD2為源串符號地址,OPRD1為目的串符號地址. 2. 字節(jié)串操作: 若DF=0,則作加, 若DF=1,則作減. 3. 對字串操作時(shí): 若DF=0,則作加,若DF=1,則作減,. 4. 在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為MOVSB、字串傳送格式為MOVSW. 5. 本指令不影響標(biāo)志位.MOVSB字符串傳送指令 MOVS 格式: MOVS OPRD1,OPRD2 MOVSB MOVSW 功能: OPRD1-OPRD2.說明: 1. 其中OPRD2為源串符號地址,OPRD1為目的串符號地址. 2. 字節(jié)串操作: 若DF=0,則作加, 若DF=1,則作減. 3. 對字串操作時(shí): 若DF=0,則作加,若DF=1,則作減,. 4. 在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為MOVSB、字串傳送格式為MOVSW. 5. 本指令不影響標(biāo)志位.MOVSW字符串傳送指令 MOVS 格式: MOVS OPRD1,OPRD2 MOVSB MOVSW 功能: OPRD1-OPRD2.說明: 1. 其中OPRD2為源串符號地址,OPRD1為目的串符號地址. 2. 字節(jié)串操作: 若DF=0,則作加, 若DF=1,則作減. 3. 對字串操作時(shí): 若DF=0,則作加,若DF=1,則作減,. 4. 在指令中不出現(xiàn)操作數(shù)時(shí),字節(jié)串傳送格式為MOVSB、字串傳送格式為MOVSW. 5. 本指令不影響標(biāo)志位.MUL無符號數(shù)乘法指令 MUL(MULtiply) 格式: MUL OPRD 功能: 乘法操作.說明: 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í),則CF1、OF1.NEG取補(bǔ)指令 NEG(NEGate) 格式: NEG OPRD 功能: 對操作數(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 格式: NOT OPRD 功能: 完成對操作數(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 格式: OR OPRD1,OPRD2 功能: OR指令完成對兩個(gè)操作數(shù)按位的或運(yùn)算,結(jié)果送至目的操作數(shù)中,本指令可以進(jìn)行字節(jié)或字的或運(yùn)算. OPRD1-OPRD1 OR OPRD2.說明: 1. 其中OPRD1,OPRD2含義與AND指令相同,對標(biāo)志位的影響也與AND指令相同. 2. 兩數(shù)相或,有一個(gè)數(shù)為真則值為真.OUT輸出指令 OUT 格式: OUT n,AL ;(n)-(AL) 功能: 輸出指令說明: 1. OUT n,AX ;(n+1),(n)-(AX) OUT DX,AL ;(DX)-(AL) OUT DX,AX ;(DX)+1,(DX)-(AX) 2. 輸入指令及輸出指令對標(biāo)志位都不影響.POP堆棧操作指令 PUSH和POP 格式: PUSH OPRD POP OPRD 功能: 實(shí)現(xiàn)壓入操作的指令是PUSH指令;實(shí)現(xiàn)彈出操作的指令是POP指令.說明: 1. OPRD為16位(字)操作數(shù),可以是寄存器或存儲(chǔ)器操作數(shù). 2. POP指令的操作過程是: POP OPRD:OPRD-(SP),(SP)-(SP)+2 它與壓入操作相反,是先彈出棧頂?shù)臄?shù)頂,然后再修改指針SP的內(nèi)容. 3. 示例: POP AX POP DS POP DATA1 POP ALFABXDI 4. PUSH和POP指令對狀態(tài)標(biāo)志位沒有影響.POPF標(biāo)志傳送指令 POPF 格式: POPF 功能: 本指令的功能與PUSHF相反,在子程序調(diào)用和中斷服務(wù)程序中,往往用PUSHF指令保護(hù)FLAG的內(nèi)容,用POPF指令將保護(hù)的FLAG內(nèi)容恢復(fù).說明: 如果對堆棧中的原FLAG內(nèi)容進(jìn)行修改,如對TF等標(biāo)志位進(jìn)行修改,然后再彈回標(biāo)志位寄存器FLAG.這是通過指令修改TF標(biāo)志的唯一方法.PUSH堆棧操作指令 PUSH和POP 格式: PUSH OPRD POP OPRD 功能: 實(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)移位指令 格式: ROL OPRD1,COUNT ;不含進(jìn)位標(biāo)志位CF在循環(huán)中的左循環(huán)移位指令. ROR OPRD1,COUNT ;不含進(jìn)位示志位CF在循環(huán)中的右循環(huán)移位指令. RCL OPRD1,COUNT ;帶進(jìn)位的左循環(huán)移位指令. RCR OPRD1,COUNT ;帶進(jìn)位的右循環(huán)移位指令.說明: 1. 本指令組只影響標(biāo)志CF、OF.OF由移入CF的內(nèi)容決定,OF取決于移位一次后符號位是否改變,如改變,則OF=1. 2. 由于是循環(huán)移位,所以對字節(jié)移位8次; 對字移位16次,就可恢復(fù)為原操作數(shù).由于帶CF的循環(huán)移位,可以將CF的內(nèi)容移入, 所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán).RCR循環(huán)移位指令 格式: ROL OPRD1,COUNT ;不含進(jìn)位標(biāo)志位CF在循環(huán)中的左循環(huán)移位指令. ROR OPRD1,COUNT ;不含進(jìn)位示志位CF在循環(huán)中的右循環(huán)移位指令. RCL OPRD1,COUNT ;帶進(jìn)位的左循環(huán)移位指令. RCR OPRD1,COUNT ;帶進(jìn)位的右循環(huán)移位指令.說明: 1. 本指令組只影響標(biāo)志CF、OF.OF由移入CF的內(nèi)容決定,OF取決于移位一次后符號位是否改變,如改變,則OF=1. 2. 由于是循環(huán)移位,所以對字節(jié)移位8次; 對字移位16次,就可恢復(fù)為原操作數(shù).由于帶CF的循環(huán)移位,可以將CF的內(nèi)容移入,所以可以利用它實(shí)現(xiàn)多字節(jié)的循環(huán). 注意: 以上程序中的指令SHR AL,CL如改為SAR AL,CL,雖然最高4位可移入低4位,但最高位不為0,故應(yīng)加入一條指令A(yù)ND AL,0FH.否則,若最高位不為0時(shí),將得到錯(cuò)誤結(jié)果.REP重復(fù)前綴的說明 格式: REP ;CX0 重復(fù)執(zhí)行字符串指令 REPZ/REPE ;CX0 且ZF1重復(fù)執(zhí)行字符串指令 REPNZ/REPNE ;CX0 且ZF0重復(fù)執(zhí)行字符串指令 功能: 在串操作指令前加上重復(fù)前綴,可以對字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對應(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)對應(yīng)串元素不相同(ZF=0)時(shí),繼續(xù)重復(fù)執(zhí)行串比較指令.REPE重復(fù)前綴的說明 格式: REP ;CX0 重復(fù)執(zhí)行字符串指令 REPZ/REPE ;CX0 且ZF1重復(fù)執(zhí)行字符串指令 REPNZ/REPNE ;CX0 且ZF0重復(fù)執(zhí)行字符串指令 功能: 在串操作指令前加上重復(fù)前綴,可以對字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對應(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)對應(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 ;CX0 重復(fù)執(zhí)行字符串指令 REPZ/REPE ;CX0 且ZF1重復(fù)執(zhí)行字符串指令 REPNZ/REPNE ;CX0 且ZF0重復(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)對應(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 ;CX0 重復(fù)執(zhí)行字符串指令 REPZ/REPE ;CX0 且ZF1重復(fù)執(zhí)行字符串指令 REPNZ/REPNE ;CX0 且ZF0重復(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)對應(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 ;CX0 重復(fù)執(zhí)行字符串指令 REPZ/REPE ;CX0 且ZF1重復(fù)執(zhí)行字符串指令 REPNZ/REPNE ;CX0 且ZF0重復(fù)執(zhí)行字符串指令 功能: 在串操作指令前加上重復(fù)前綴,可以對字符串進(jìn)重復(fù)處理.由于加上重復(fù)前綴后,對應(yīng)的指令代碼是不同的,所以指令的功能便具有重復(fù)處理的功能,重復(fù)的次數(shù)存放在CX寄存器中.說明:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 3D打印柔性包裝-洞察及研究
- 簽證計(jì)劃使用次數(shù)
- 2024年玉林北流市招聘特崗教師真題
- 六盤水市教師特設(shè)崗位計(jì)劃招聘筆試真題2024
- 2024年安慶宿松縣縣屬國有企業(yè)招聘真題
- 廣東亞視演藝職業(yè)學(xué)院《中國現(xiàn)代文學(xué)史二》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西外語外貿(mào)職業(yè)學(xué)院《期貨交易實(shí)務(wù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 昆明醫(yī)科大學(xué)《兒童生理與衛(wèi)生學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南九嶷職業(yè)技術(shù)學(xué)院《線性代數(shù)D》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄭州輕工業(yè)大學(xué)《燃?xì)夤?yīng)工程》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025至2030軍工裝備行業(yè)市場發(fā)展現(xiàn)狀及競爭形勢及有效策略與實(shí)施路徑評估報(bào)告
- 村寨垃圾收費(fèi)管理制度
- 兒科三基試題及答案
- 2025年國家開放大學(xué)國開電大《管理學(xué)基礎(chǔ)》《當(dāng)代中國政治制度》形考任務(wù)1-4及答案
- 江蘇保安證考試題及答案
- T/ZJSEE 0010-2023光伏電站晶硅組件電致發(fā)光(EL)檢測及缺陷判定方法
- 臨床助理技能試題及答案
- 臨夏州臨夏市招聘專職社區(qū)工作者考試真題2024
- 2025年廣東九年級物理中考三輪沖刺之題型過關(guān)綜合能力題 科普閱讀題(含答案)
- 2025年羊胎盤項(xiàng)目可行性研究報(bào)告
- 2025年入團(tuán)考試評委提問的常見問題及答案
評論
0/150
提交評論