Intel系列CPU指令速查手册指令名称指令形式机器码标志位(设置/测试)说明应用举例ES:ES:26ES段跨越前缀CS:CS:2ECS段跨越前缀SS:SS:36SS段跨越前缀DS:DS:3EDS段跨越前缀FS:FS:64FS段跨越前缀GS:GS:65GS段跨越前缀Opsize:Opsize:66操作数类型跨越前缀Address:Address:67地址类型跨越前缀AAA37设置AFCF加法后的ASCII码调整ALAAAAADAADD50A或D5ib设置SFZFPF除法前的ASCII码调整AXAADAAMAAMD40A或D4ib设置PFSFZF乘法后的ASCII码调整AXAAMAASAAS3F设置AFCF减法后的ASCII码调整ALAASADCADCAL,imm814ib设置AFCFOFSFPFZF带进位加法ADCAL,1FADCAX,imm1615iwADCAX,4F80ADCEAX,imm3215idADCEAX,00004F80ADCr/m8,imm880/2ibADCBYTEPtr[006387EA],39ADCr/m16,imm1681/2iwADCWORDPtr[006387EA],1039ADCr/m32,imm3281/2idADCDWORDPtr[006387EA],00001039ADCr/m16,imm883/2ibADCWORDPtr[006387EA],39ADCr/m32,imm883/2ibADCDWORDPtr[006387EA],39ADCr/m8,r810/rADC[006387EA],ALADCr/m16,r1611/rADC[006387EA],AXADCr/m32,r3211/rADC[006387EA],EAXADCr8,r/m812/rADCAL,[006387EA]ADCr16,r/m1613/rADCAX,[006387EA]ADCr32,r/m3213/rADCEAX,[006387EA]ADDADDAL,imm804ib设置AFCFOFSFPFZF加法ADDAL,1FADDAX,imm1605iwADDAX,4F80ADDEAX,imm3205idADDEAX,00004F80ADDr/m8,imm880/0ibADDBYTEPtr[006387EA],39ADDr/m16,imm1681/0iwADDWORDPtr[006387EA],1039ADDr/m32,imm3281/0idADDDWORDPtr[006387EA],00001039ADDr/m16,imm883/0ibADDWORDPtr[006387EA],39ADDr/m32,imm883/0ibADDDWORDPtr[006387EA],39ADDr/m8,r800/rADD[006387EA],ALADDr/m16,r1601/rADD[006387EA],AXADDr/m32,r3201/rADD[006387EA],EAXADDr8,r/m802/rADDAL,[006387EA]ADDr16,r/m1603/rADDAX,[006387EA]ADDr32,r/m3203/rADDEAX,[006387EA]ANDANDAL,imm824ib设置CFOFPFSFZF逻辑与ANDAL,1FANDAX,imm1625iwANDAX,4F80ANDEAX,25idANDEAX,imm3200004F80ANDr/m8,imm880/4ibANDBYTEPtr[006387EA],39ANDr/m16,imm1681/4iwANDWORDPtr[006387EA],1039ANDr/m32,imm3281/4idANDDWORDPtr[006387EA],00001039ANDr/m16,imm883/4ibANDWORDPtr[006387EA],39ANDr/m32,imm883/4ibANDDWORDPtr[006387EA],39ANDr/m8,r820/rANDBYTEPtr[006387EA],ALANDr/m16,r1621/rANDWORDPtr[006387EA],AXANDr/m32,r3221/rANDDWORDPtr[006387EA],EAXANDr8,r/m822/rANDAL,[006387EA]ANDr16,r/m1623/rANDAX,[006387EA]ANDr32,r/m3223/rANDEAX,[006387EA]ARPLARPLr/m16,r1663/r设置ZF调整请求特权级(286+PM)ARPLAX,BX;如果AX的RPL小于BX的RPL,则改为BX的RPL,且ZF置1,否则ZF清0BOUNDr16,m16&1662/r不影响标志位越界检查(80188+)BOUNDAX,[006387EA];如果AX不在[006387EA]及[006387EA+2]的值中间,则产生异常5BOUNDr32,m32&32BOUNDEAX,[006387EA];如果EAX不在[006387EA]及[006387EA+4]的值中间,则产生异常5BSFBSFr16,r/m160FBC设置ZF从低到高扫描目标,查找对应为1的位(386+)BSFAX,BX;把BX由低到高第一个1的位置送AX,如全0则ZF置1,否则ZF清0BSFr32,r/m32BSFEAX,EBX;把EBX由低到高第一个1的位置送EAX,如全0则ZF置1,否则ZF清0BSRBSRr16,r/m160FBD设置ZF从高到低扫描目标,查找对应为1的位(386+)BSRAX,BX;把BX由高到低第一个1的位置送AX,如全0则ZF置1,否则ZF清0BSRr32,r/m32BSREAX,EBX;把EBX由高到低第一个1的位置送EAX,如全0则ZF置1,否则ZF清0BSWAPBSWAPreg320FC8+rd不影响标志位32位寄存器高低字节交换(486+)BSWAPEAXBTBTr/m16,r160FA3设置CF测试目标的指定位(386+)BTAX,BX;如果AX中BX指定的位为1,则CF置1,否则CF清0BTr/m32,r320FA3BTEAX,EBX;如果EAX中EBX指定的位为1,则CF置1,否则CF清0BTr/m16,imm80FBA/4BTAX,01;如果AX中01位为1,则CF置1,否则CF清0BTr/m32,imm80FBA/4BTEAX,01;如果EAX中01位为1,则CF置1,否则CF清0BTCBTCr/m16,r160FBB设置CF将目标指定位取反(386+)BTCAX,BX;将AX中BX指定的位取反,CF存放指定位并取反位BTCr/m32,r320FBBBTCEAX,EBX;将EAX中EBX指定的位取反,CF存放指定位并取反BTCr/m16,imm80FBA/7BTCAX,01;将AX中01位取反,CF存放指定位并取反BTCr/m32,imm80FBA/7BTCEAX,01;将EAX中01位取反,CF存放指定位并取反BtrBtrr/m16,r160FB3设置CF将目标指定位清0(386+)BtrAX,BX;将AX中BX指定的位清0,CF存放指定位并清0Btrr/m32,r320FB3BtrEAX,EBX;将EAX中EBX指定的位清0,CF存放指定位并清0Btrr/m16,imm80FBA/6BtrAX,01;将AX中01位清0,CF存放指定位并清0Btrr/m32,imm80FBA/6BtrEAX,01;将EAX中01位清0,CF存放指定位并清0BTSBTSr/m16,r160FAB设置CF将目标指定位置1(386+)BTSAX,BX;将AX中BX指定的位置1,CF存放指定位并置1BTSr/m32,r320FABBTSEAX,EBX;将EAX中EBX指定的位置1,CF存放指定位并置1BTSr/m16,imm80FBA/5BTSAX,01;将AX中01位置1,CF存放指定位并置1BTSr/m32,imm80FBA/5BTSEAX,01;将EAX中01位置1,CF存放指定位并置1CALLrel16E8cw不影响标志位子程序调用(16位相对寻址)CALLrel32E8cd子程序调用(32位相对寻址)CALLr/m16FF/2子程序调用(16位间接寻址)CALLr/m32FF/2子程序调用(32位间接寻址)CALLptr16:169Acd子程序调用(直接绝对寻址)CALLptr16:329Acp子程序调用(直接绝对寻址)CALLm16:16FF/3子程序调用(间接绝对寻址)CALLm16:32FF/3子程序调用(间接绝对寻址)CBWCBW98不影响标志位将AL值带符号扩展到AXCBWCDQCDQ99不影响标志位将EAX值带符号扩展到EDX:EAXCDQCLDCLDFC设置DF清除方向位(DF)标志CLDCLICLIFA设置IF清除中断允许位(IF)标志CLDCLTSCLTS0F06不影响标志位清除任务开关标志(TSF)CLTSCMCCMCF5设置CF进位标志取反CMCCMOVccCMOVAr16,r/m160F47/r高于(CF=0andZF=0)条件传送指令CMOVAAX,BXCMOVAr32,r/m32CMOVAEAX,EBXCMOVAEr16,r/m160F43/r高于等于(CF=0)CMOVAEAX,BXCMOVAEr32,r/m32CMOVAEEAX,EBXCMOVBr16,r/m160F42/r低于(CF=1)CMOVBAX,BXCMOVBr32,r/m32CMOVBEAX,EBXCMOVBEr16,r/m160F46/r低于等于(CF=1orZF=1)CMOVBEAX,BXCMOVBEr32,r/m32CMOVBEEAX,EBXCMOVCr16,r/m160F42/r有进位(CF=1)CMOVCAX,BXCMOVCr32,CMOVCEAX,EBXr/m32CMOVEr16,r/m160F44/r等于(ZF=1)CMOVEAX,BXCMOVEr32,r/m32CMOVEEAX,EBXCMOVGr16,r/m160F4F/r大于(ZF=0andSF=OF)CMOVGAX,BXCMOVGr32,r/m32CMOVGEAX,EBXCMOVGEr16,r/m160F4D/r大于等于(SF=OF)CMOVGEAX,BXCMOVGEr32,r/m32CMOVGEEAX,EBXCMOVLr16,r/m160F4C/r小于(SFOF)CMOVLAX,BXCMOVLr32,r/m32CMOVLEAX,EBXCMOVLEr16,r/m160F4E/r小于等于(ZF=1orSFOF)CMOVLEAX,BXCMOVLEr32,r/m32CMOVLEEAX,EBXCMOVNAr16,r/m160F46/r不高于(CF=1orZF=1)CMOVNAAX,BXCMOVNAr32,r/m32CMOVNAEAX,EBXCMOVNAEr16,r/m160F42/r不高等于(CF=1)CMOVNAEAX,BXCMOVNAEr32,r/m32CMOVNAEEAX,EBXCMOVNBr16,r/m160F43/r不低于(CF=0)CMOVNBAX,BXCMOVNBr32,r/m32CMOVNBEAX,EBXCMOVNBEr16,r/m160F47/r不低等于(CF=0andZF=0)CMOVNBEAX,BXCMOVNBEr32,r/m32CMOVNBEEAX,EBXCMOVNCr16,r/m160F43/r无进位(CF=0)CMOVNCAX,BXCMOVNCr32,r/m32CMOVNCEAX,EBXCMOVNEr16,0F45/r不等于(ZF=0)CMOVNEAX,BXr/m16CMOVNEr32,r/m32CMOVNEEAX,EBXCMOVNGr16,r/m160F4E/r不大于(ZF=1orSFOF)CMOVNGAX,BXCMOVNGr32,r/m32CMOVNGEAX,EBXCMOVNGEr16,r/m160F4