您好,欢迎访问三七文档
8086汇编指令表指令名称指令形式标志位说明应用举例AAAAAAAFCF加后非压缩BCD码调整ALAXAAAAADAADSFZFPF除前非压缩BCD码调整AXBiAADAAMAAMSFZFPF乘后非压缩BCD码调整AXAAMAASAASAFCF减后非压缩BCD码调整ALAXAASADC同ADDAFCFOFSFPFZF带进位加法(CF)DST(DST)+(SRC)+(CF)ADDADDreg/mem,imm/regADDreg/memAFCFOFSFPFZF加法ADDBYTEPtr[87EAH],39ANDANDDST,SRTreg/mem--imm/reg/memPFSFZFCF=OF=0逻辑与(置0\不变)(设置CF)ANDAL,0FHANDAX,AXCALLCALLPRO不影响标志位PUSHIP(now)&IP(IP)+disp16CALLreg/memPUSHIP(now)&IP(reg/mem)CALLFARPTRPROPUSHCS-IP&CS-IP(CS-IP)PROCALLDWORDPTRmemPUSHCS-IP&IP(m)CS(m+2)CBWCBW不影响将AL值带符号扩展到AXCBWCLCCLCCF=0进位标志CF置0CLCCLDCLDDF=0方向标志DF置0(地址增量)CLDCLICLIIF=0中断标志IF置0CLDCMCCMCCF=-CF进位标志CF取反CMCCMP同ADDAFCFOFPFSFZF操作数相减但结果不回送CMPSCMPSmem,memCMPSB/WAFCFOFPFSFZF比较字符串(DS:SI)-(ES:DI)SI(SI)(+/-)1DI(DI)(+/-)1CWDCWD不影响将AX带符号扩展到DX:AXCWDCWDECWDE不影响将AX带符号扩展到EAXCWDEDAADAAAFCFPFSFZF加法后的10进制调整ALDAADASDASAFCFPFSFZF减法后的10进制调整ALDASDECDECreg/memAFOFPFSFZF(不影响CF)目标减1DECBYTEPtr[8A90H]DIVDIVr/m8AFCFOFPFSFZF无法预测无符号除法AX除以BL,商在AL中,余数在AH中DIVBLDIVr/m16DX:AX除以BX,商在AX中,余数在DX中DIVBXESCESC不影响处理器交权ESCHLTHLT不影响系统进入暂停状态HLTIDIVIDIVr/m8AFCFOFPFSFZF无法预测有符号除法AX除以BL,商在AL中,余数在AH中IDIVBLIDIVr/m16DX:AX除以BX,商在AX中,余数在DX中IDIVBXIMULIMULr/m8设置CFOFSZAP无法预测有符号乘法:AX←AL*r/m8IMULCLIMULr/m16有符号乘法:DX:AX←AX*r/m16IMULCXININAL/AX/EAX,imm8不影响标志位从imm8端口读数据到AL/AX/EAXINAL,0FFHINAL/AX/EAX,DX从DX指定的端口读数据到AL/AX/EAXINAL,DXINCINCreg/memOFSFZFAFPF(不影响CF)目标加1INCBYTEPtr[00459AF0]INTINTimm8标志位被压栈IF=0中断功能调用PUSHFLAGS-CS-IPimm8*4中断向量表查CS/IPINT21HIRETIRET弹出标志位中断返回POPIP-CS-FLAGSIRETJXX条件转移JArel8CF=ZF=0无符号数(=JNBE)JAErel8CF=0|ZF=1无符号数≥(=JNB)JBrel8CF=1&ZF=0无符号数(=JNAE)JBErel8CF=1|ZF=1无符号数≤(=JNA)JCrel8CF=1进位转移JCXZrel8CX=0转移JErel8ZF=1相等转移(=JZ)JGrel8SF=OF&ZF=0有符号数(=JNLE)JGErel8SF=OF|ZF=1有符号数≥(=JNL)JLrel8SF≠OF&ZF=0有符号数(=JNGE)JLErel8SF≠OF|ZF=1有符号数≤(=JNG)JNArel8CF=1|ZF=1无符号数≤(=JBE)不高于JNAErel8CF=1&ZF=0无符号数(=JB)不高等于JNBrel8CF=0|ZF=1无符号数≥(=JAE)不低于JNBErel8CF=ZF=0无符号数(=JA)不低等于JNCrel8CF=0无进位转移JNErel8ZF=0不相等转移(=JNZ)JNGrel8SF≠OF|ZF=1有符号数≤(=JLE)不大于JNGErel8SF≠OF&ZF=0有符号数(=JL)不大等于JNLrel8SF=OF|ZF=1有符号数≥(=JGE)不小于JNLErel8SF=OF&ZF=0有符号数(=JG)不小等于JNOrel8OF=0无溢出转移JNPrel8PF=0奇状态转移(=JPO)JNSrel8SF=0非负数转移JNZrel8ZF=0非0转移(=JNE)JOrel8OF=1溢出转移JPrel8PF=1偶状态转移(=JPE)JPErel8PF=1偶状态转移(=JP)JPOrel8PF=0奇状态转移(=JNP)JSrel8SF=1负数转移JZrel8ZF=1等于0转移(=JE)JMPJMPSHORTOPR不影响标志位IP(IP)+disp8-128B~+127B段内转移JMP[NEARPTR]OPRIP(IP)+disp16-32KB~+32KBJMPWORDPTROPRIP(OPR)JMPFARPTROPRIP(IP)opr&CS(CS)opr段间转移JMPDWORDPTROPRIP(OPR)&CS(OPR+2)LAHFLAHF不影响AH=SF:ZF:0:AF:0:PF:1:CFLAHFLDSLDSDST,SRCRegmem不影响标志位DST(SRC)DS(SRC+2)LDSDI,[BX]LSS同LDS不影响指针送寄存器和SSLES同LDS不影响指针送寄存器和ESLFS同LDS不影响指针送寄存器和FSLGS同LDS不影响指针送寄存器和GSLEALEAr16,m不影响标志位将源操作数的有效地址送r16LEASI,[BX]LEAr32,m将源操作数的有效地址送r32LEASTRINGLOCKLOCK不影响总线锁定LOCKLODSLODSmemLODSB/W不影响标志位装入串:AL/AX(DS:SI)SI(SI)(+/-)1LOOPLOOPrel8不影响CX(CX)-1---(CX)≠0,则循环LOOPELOOPZLOOPErel8不影响标志位CX(CX)-1(CX)≠0且ZF=1,则循环LOOPNELOOPNZLOOPNErel8不影响标志位CX(CX)-1(CX)≠0且ZF=0,则循环MOVMOVDST,SRCDST≠CS、IP和imm不影响标志位MOV[9AF0H],ALMOVSMOVSmem,memMOVSB/W不影响标志位字符串传送ES:DI(DS:SI)SI(SI)(+/-)1DI(DI)(+/-)1MOVSES:BYTEPTR[DI],DS:[SI]MULMULr/m8设置CFOFSZAP无法预测无符号乘法:AXAL*r/m8MULCLMULr/m16无符号乘法:DX:AXAX*r/m16MULCXNEGNEGreg/memCFOFSFZFAFPF求补:取反加一0-(DST)NEGCLNOPNOP不影响空操作NOPNOTNOTreg/mem不影响按位取反NOTCLOR同ANDPFSFZFCF=OF=0逻辑或ORAL,0FH(不变\置1)OUTOUTimm8,AL/AX/EAX不影响标志位将AL/AX/EAX输出到imm8指定端口OUT0FFH,ALOUTDX,AL/AX/EAX将AL/AX/EAX输出到DX指定的端口OUTDX,ALPOPPOPDSTDST!=imm&CS不影响标志位DST((SP)+1,(SP))SP(SP)+2POPWORDPtr[87EAH]POPFPOPF设置所有标志位从堆栈中弹出16位标志寄存器POPFPUSHPUSHSRC8086SRC!=imm不影响标志位SP--(SP)-2((SP)+1,(SP))(SRC)[SP循环]PUSHWORDPtr[87EAH]PUSHFPUSHF不影响压栈16位标志寄存器PUSHFRCL同SHL同ROL带进位循环左移RCLAL,1RCR同SHL同ROL带进位循环右移RCRAL,1ROL同SHL移一位后符号位改变则OF=1循环左移:ROLAL,1ROR同SHL同ROL循环右移:RORAL,1REPREPStringoperation不影响标志位CX=0则终止---CX(CX)-1---串操作---SI/DI增量REPZREPEREPEStringoperationAFCFOFPFSFZFCX=0||ZF=0则终止---CX(CX)-1---串比较---SI/DI增量REPNZREPNEREPNEStringoperationAFCFOFPFSFZFCX=0||ZF=1则终止---CX(CX)-1---串比较---SI/DI增量RETRET恢复压栈标志位POPIP[CS]子过程返回(Near)/(Far)RETRETimm16子过程返回后SP(SP)+imm16RET08SAHFSAHFSFZFAFPFCF(SF:ZF:0:AF:0:PF:1:CF)AHSAHFSAL同SHL移入CFOFPFSFZF算术左移:[所有移位]如果操作数符号位改变,则OF=1(CL≠1则OF无定义)SALAL,1SAR同SHL移入CFOFPFSFZF算术右移SARAL,1SHLSHLreg/mem,1SHLreg/mem,CL移入CFOFPFSFZF逻辑左移SHLAL,1SHLAL,CLSHR同SHL移入CFOFPFSFZF逻辑右移SHRAL,1SBB同SUBAFCFOFSFPFZF带借位减法(CF)DST(DST)-(SRC)-(CF)SCASSCASmemSCASB/WOFSFZFAFPFCF扫描字符串(ES:DI)-(AL/AX)DI(DI)(+/-)1STCSTCCF=1进位标志CF置1STCSTDStdDF=1方向标志DF置1(地址减量)STDSTISTIIF=1中断标志IF置1(开中断)STISTOSSTOSmemSTOSB不影响标志位存入串(ES:DI)(AL/AX)DI(DI)(+/-)1SUBSUBreg/mem,imm/regSUBreg,memAFCFOFSFPFZF减法SUBBYTEPtr[87EAH],39TEST同ANDPFSFZFCF=OF=0逻辑与测试,但是不改变目的操作数,只设置相关标志位TESTAL,1FHWAITWAIT不影响等待,检查非屏蔽浮点异常WAITXCHGXCHGOPR1,OPR2reg-reg\reg-mem不影响标志位目的操作数和源操作数的值交换操作数不允许为段寄存器XCHGAX,BXXLATXLAT[TABLE]不影响标志位LEABX,TABLE;表首址给BXMOVAL,4;待转换内容到ALAL((BX)+(AL))XLATXOR同ANDPFSFZFCF=OF=0逻辑异或XORAL,0FH(不变\反)
本文标题:8086汇编指令表
链接地址:https://www.777doc.com/doc-4378855 .html