首页 Intel系列CPU指令速查手册++祝你学得知识

Intel系列CPU指令速查手册++祝你学得知识

举报
开通vip

Intel系列CPU指令速查手册++祝你学得知识Intel系列CPU指令速查手册 指令名称 指令形式 机器码 标志位 (设置/测试) 说    明 应用举例 ES: ES: 26   ES段跨越前缀   CS: CS: 2E   CS段跨越前缀   SS: SS: 36   SS段跨越前缀   DS: DS: 3E   DS段跨越前缀   FS: FS: 64   FS段跨越前缀   GS: GS: 65   GS段跨越前缀   Opsize: Opsize: ...

Intel系列CPU指令速查手册++祝你学得知识
Intel系列CPU指令速查手册 指令名称 指令形式 机器码 标志位 (设置/测试) 说    明 应用举例 ES: ES: 26   ES段跨越前缀   CS: CS: 2E   CS段跨越前缀   SS: SS: 36   SS段跨越前缀   DS: DS: 3E   DS段跨越前缀   FS: FS: 64   FS段跨越前缀   GS: GS: 65   GS段跨越前缀   Opsize: Opsize: 66   操作数类型跨越前缀   Address: Address: 67   地址类型跨越前缀   AAA 37 设置 AF CF 加法后的ASCII码调整AL AAA AAD AAD D5 0A 或 D5 ib 设置 SF ZF PF 除法前的ASCII码调整AX AAD AAM AAM D4 0A 或 D4 ib 设置 PF SF ZF 乘法后的ASCII码调整AX AAM AAS AAS 3F 设置 AF CF 减法后的ASCII码调整AL AAS ADC ADC AL, imm8 14 ib 设置 AF CF OF SF PF ZF 带进位加法 ADC AL, 1F ADC AX, imm16 15 iw ADC AX, 4F80 ADC EAX, imm32 15 id ADC EAX, 00004F80 ADC r/m8, imm8 80 /2 ib ADC BYTE Ptr [006387EA], 39 ADC r/m16,imm16 81 /2 iw ADC WORD Ptr [006387EA], 1039 ADC r/m32,imm32 81 /2 id ADC DWORD Ptr [006387EA], 00001039 ADC r/m16,imm8 83 /2 ib ADC WORD Ptr [006387EA], 39 ADC r/m32,imm8 83 /2 ib ADC DWORD Ptr [006387EA], 39 ADC r/m8,r8 10 /r ADC [006387EA], AL ADC r/m16,r16 11 /r ADC [006387EA], AX ADC r/m32,r32 11 / r ADC [006387EA], EAX ADC r8,r/m8 12 /r ADC AL, [006387EA] ADC r16,r/m16 13 /r ADC AX, [006387EA] ADC r32,r/m32 13 /r ADC EAX, [006387EA] ADD ADD AL, imm8 04 ib 设置 AF CF OF SF PF ZF 加法 ADD AL, 1F ADD AX, imm16 05 iw ADD AX, 4F80 ADD EAX, imm32 05 id ADD EAX, 00004F80 ADD r/m8, imm8 80 /0 ib ADD BYTE Ptr [006387EA], 39 ADD r/m16,imm16 81 /0 iw ADD WORD Ptr [006387EA], 1039 ADD r/m32,imm32 81 /0 id ADD DWORD Ptr [006387EA], 00001039 ADD r/m16,imm8 83 /0 ib ADD WORD Ptr [006387EA], 39 ADD r/m32,imm8 83 /0 ib ADD DWORD Ptr [006387EA], 39 ADD r/m8,r8 00 /r ADD [006387EA], AL ADD r/m16,r16 01 /r ADD [006387EA], AX ADD r/m32,r32 01 / r ADD [006387EA], EAX ADD r8,r/m8 02 /r ADD AL, [006387EA] ADD r16,r/m16 03 /r ADD AX, [006387EA] ADD r32,r/m32 03 /r ADD EAX, [006387EA] AND AND AL, imm8 24 ib 设置 CF OF PF SF ZF 逻辑与 AND AL, 1F AND AX, imm16 25 iw AND AX, 4F80 AND EAX, imm32 25 id AND EAX, 00004F80 AND r/m8, imm8 80 /4 ib AND BYTE Ptr [006387EA], 39 AND r/m16,imm16 81 /4 iw AND WORD Ptr [006387EA], 1039 AND r/m32,imm32 81 /4 id AND DWORD Ptr [006387EA], 00001039 AND r/m16,imm8 83 /4 ib AND WORD Ptr [006387EA], 39 AND r/m32,imm8 83 /4 ib AND DWORD Ptr [006387EA], 39 AND r/m8,r8 20 /r AND BYTE Ptr [006387EA], AL AND r/m16,r16 21 /r AND WORD Ptr [006387EA], AX AND r/m32,r32 21 /r AND DWORD Ptr [006387EA], EAX AND r8,r/m8 22 /r AND AL, [006387EA] AND r16,r/m16 23 /r AND AX, [006387EA] AND r32,r/m32 23 /r AND EAX, [006387EA] ARPL ARPL r/m16,r16 63 /r 设置 ZF 调整请求特权级 (286+ PM) ARPL AX, BX ;如果AX的RPL小于BX的RPL,则改为BX的RPL,且ZF置1,否则ZF清0 BOUND r16,m16&16 62 /r 不影响标志位 越界检查 (80188+) BOUND AX, [006387EA] ;如果AX不在[006387EA]及[006387EA+2]的值中间,则产生异常5 BOUND r32,m32&32 BOUND EAX, [006387EA] ;如果EAX不在[006387EA]及[006387EA+4]的值中间,则产生异常5 BSF BSF r16,r/m16 0F BC 设置 ZF 从低到高扫描目标,查找对应为1的位 (386+) BSF AX, BX ;把BX由低到高第一个1的位置送AX,如全0则ZF置1,否则ZF清0 BSF r32,r/m32 BSF EAX, EBX ;把EBX由低到高第一个1的位置送EAX,如全0则ZF置1,否则ZF清0 BSR BSR r16,r/m16 0F BD 设置 ZF 从高到低扫描目标,查找对应为1的位 (386+) BSR AX, BX ;把BX由高到低第一个1的位置送AX,如全0则ZF置1,否则ZF清0 BSR r32,r/m32 BSR EAX, EBX ;把EBX由高到低第一个1的位置送EAX,如全0则ZF置1,否则ZF清0 BSWAP BSWAP reg32 0F C8+rd 不影响标志位 32位寄存器高低字节交换(486+) BSWAP EAX BT BT r/m16,r16 0F A3 设置 CF 测试目标的指定位 (386+) BT AX, BX ;如果AX中BX指定的位为1,则CF置1,否则CF清0 BT r/m32,r32 0F A3 BT EAX, EBX ;如果EAX中EBX指定的位为1,则CF置1,否则CF清0 BT r/m16,imm8 0F BA /4 BT AX, 01 ;如果AX中01位为1,则CF置1,否则CF清0 BT r/m32,imm8 0F BA /4 BT EAX, 01 ;如果EAX中01位为1,则CF置1,否则CF清0 BTC BTC r/m16,r16 0F BB 设置 CF 将目标指定位取反 (386+) BTC AX, BX ;将AX中BX指定的位取反,CF存放指定位并取反位 BTC r/m32,r32 0F BB BTC EAX, EBX ;将EAX中EBX指定的位取反,CF存放指定位并取反 BTC r/m16,imm8 0F BA /7 BTC AX, 01 ;将AX中01位取反,CF存放指定位并取反 BTC r/m32,imm8 0F BA /7 BTC EAX, 01 ;将EAX中01位取反,CF存放指定位并取反 Btr Btr r/m16,r16 0F B3 设置 CF 将目标指定位清0 (386+) Btr AX, BX ;将AX中BX指定的位清0,CF存放指定位并清0 Btr r/m32,r32 0F B3 Btr EAX, EBX ;将EAX中EBX指定的位清0,CF存放指定位并清0 Btr r/m16,imm8 0F BA /6 Btr AX, 01 ;将AX中01位清0,CF存放指定位并清0 Btr r/m32,imm8 0F BA /6 Btr EAX, 01 ;将EAX中01位清0,CF存放指定位并清0 BTS BTS r/m16,r16 0F AB 设置 CF 将目标指定位置1 (386+) BTS AX, BX ;将AX中BX指定的位置1,CF存放指定位并置1 BTS r/m32,r32 0F AB BTS EAX, EBX ;将EAX中EBX指定的位置1,CF存放指定位并置1 BTS r/m16,imm8 0F BA /5 BTS AX, 01 ;将AX中01位置1,CF存放指定位并置1 BTS r/m32,imm8 0F BA /5 BTS EAX, 01 ;将EAX中01位置1,CF存放指定位并置1 CALL rel16 E8 cw 不影响标志位 子程序调用(16位相对寻址)   CALL rel32 E8 cd 子程序调用(32位相对寻址)   CALL r/m16 FF /2 子程序调用(16位间接寻址)   CALL r/m32 FF /2 子程序调用(32位间接寻址)   CALL ptr16:16 9A cd 子程序调用(直接绝对寻址)   CALL ptr16:32 9A cp 子程序调用(直接绝对寻址)   CALL m16:16 FF /3 子程序调用(间接绝对寻址)   CALL m16:32 FF /3 子程序调用(间接绝对寻址)   CBW CBW 98 不影响标志位 将AL值带符号扩展到AX CBW CDQ CDQ 99 不影响标志位 将EAX值带符号扩展到EDX:EAX CDQ CLD CLD FC 设置 DF 清除方向位(DF)标志 CLD CLI CLI FA 设置 IF 清除中断允许位(IF)标志 CLD CLTS CLTS 0F 06 不影响标志位 清除任务开关标志(TSF) CLTS CMC CMC F5 设置 CF 进位标志取反 CMC CMOVcc CMOVA r16, r/m16 0F 47 /r 高于(CF=0 and ZF=0) 条件传送指令 CMOVA AX, BX CMOVA r32, r/m32 CMOVA EAX, EBX CMOVAE r16, r/m16 0F 43 /r 高于等于(CF=0) CMOVAE AX, BX CMOVAE r32, r/m32 CMOVAE EAX, EBX CMOVB r16, r/m16 0F 42 /r 低于(CF=1) CMOVB AX, BX CMOVB r32, r/m32 CMOVB EAX, EBX CMOVBE r16, r/m16 0F 46 /r 低于等于(CF=1 or ZF=1) CMOVBE AX, BX CMOVBE r32, r/m32 CMOVBE EAX, EBX CMOVC r16, r/m16 0F 42 /r 有进位(CF=1) CMOVC AX, BX CMOVC r32, r/m32 CMOVC EAX, EBX CMOVE r16, r/m16 0F 44 /r 等于(ZF=1) CMOVE AX, BX CMOVE r32, r/m32 CMOVE EAX, EBX CMOVG r16, r/m16 0F 4F /r 大于(ZF=0 and SF=OF) CMOVG AX, BX CMOVG r32, r/m32 CMOVG EAX, EBX CMOVGE r16, r/m16 0F 4D /r 大于等于(SF=OF) CMOVGE AX, BX CMOVGE r32, r/m32 CMOVGE EAX, EBX CMOVL r16, r/m16 0F 4C /r 小于(SF<>OF) CMOVL AX, BX CMOVL r32, r/m32 CMOVL EAX, EBX CMOVLE r16, r/m16 0F 4E /r 小于等于(ZF=1 or SF<>OF) CMOVLE AX, BX CMOVLE r32, r/m32 CMOVLE EAX, EBX CMOVNA r16, r/m16 0F 46 /r 不高于(CF=1 or ZF=1) CMOVNA AX, BX CMOVNA r32, r/m32 CMOVNA EAX, EBX CMOVNAE r16, r/m16 0F 42 /r 不高等于(CF=1) CMOVNAE AX, BX CMOVNAE r32, r/m32 CMOVNAE EAX, EBX CMOVNB r16, r/m16 0F 43 /r 不低于(CF=0) CMOVNB AX, BX CMOVNB r32, r/m32 CMOVNB EAX, EBX CMOVNBE r16, r/m16 0F 47 /r 不低等于(CF=0 and ZF=0) CMOVNBE AX, BX CMOVNBE r32, r/m32 CMOVNBE EAX, EBX CMOVNC r16, r/m16 0F 43 /r 无进位(CF=0) CMOVNC AX, BX CMOVNC r32, r/m32 CMOVNC EAX, EBX CMOVNE r16, r/m16 0F 45 /r 不等于(ZF=0) CMOVNE AX, BX CMOVNE r32, r/m32 CMOVNE EAX, EBX CMOVNG r16, r/m16 0F 4E /r 不大于(ZF=1 or SF<>OF) CMOVNG AX, BX CMOVNG r32, r/m32 CMOVNG EAX, EBX CMOVNGE r16, r/m16 0F 4C /r 不大等于(SF<>OF) CMOVNGE AX, BX CMOVNGE r32, r/m32 CMOVNGE EAX, EBX CMOVNL r16, r/m16 0F 4D /r 不小于(SF=OF) CMOVNL AX, BX CMOVNL r32, r/m32 CMOVNL EAX, EBX CMOVNLE r16, r/m16 0F 4F /r 不小等于(ZF=0 and SF=OF) CMOVNLE AX, BX CMOVNLE r32, r/m32 CMOVNLE EAX, EBX CMOVNO r16, r/m16 0F 41 /r 无溢出(OF=0) CMOVNO AX, BX CMOVNO r32, r/m32 CMOVNO EAX, EBX CMOVNP r16, r/m16 0F 4B /r 非偶数(PF=0) CMOVNP AX, BX CMOVNP r32, r/m32 CMOVNP EAX, EBX CMOVNS r16, r/m16 0F 49 /r 非负数(SF=0) CMOVNS AX, BX CMOVNS r32, r/m32 CMOVNS EAX, EBX CMOVNZ r16, r/m16 0F 45 /r 非零(ZF=0) CMOVNZ AX, BX CMOVNZ r32, r/m32 CMOVNZ EAX, EBX CMOVO r16, r/m16 0F 40 /r 溢出(OF=1) CMOVO AX, BX CMOVO r32, r/m32 CMOVO EAX, EBX CMOVP r16, r/m16 0F 4A /r 偶数(PF=1) CMOVP AX, BX CMOVP r32, r/m32 CMOVP EAX, EBX CMOVPE r16, r/m16 0F 4A /r 偶数(PF=1) CMOVPE AX, BX CMOVPE r32, r/m32 CMOVPE EAX, EBX CMOVPO r16, r/m16 0F 4B /r 奇数(PF=0) CMOVPO AX, BX CMOVPO r32, r/m32 CMOVPO EAX, EBX CMOVS r16, r/m16 0F 48 /r 负数(SF=1) CMOVS AX, BX CMOVS r32, r/m32 CMOVS EAX, EBX CMOVZ r16, r/m16 0F 44 /r 为零(ZF=1) CMOVZ AX, BX CMOVZ r32, r/m32 CMOVZ EAX, EBX CMP CMP AL, imm8 3C ib 设置 AF CF OF PF SF ZF 比较大小, 然后设置标志位 CMP AL, 1F CMP AX, imm16 3D iw CMP AX, 4F80 CMP EAX, imm32 3D id CMP EAX, 00004F80 CMP r/m8, imm8 80 /7 ib CMP BYTE Ptr [006387EA], 39 CMP r/m16,imm16 81 /7 iw CMP WORD Ptr [006387EA], 1039 CMP r/m32,imm32 81 /7 id CMP DWORD Ptr [006387EA], 00001039 CMP r/m16,imm8 83 /7 ib CMP WORD Ptr [006387EA], 39 CMP r/m32,imm8 83 /7 ib CMP DWORD Ptr [006387EA], 39 CMP r/m8,r8 38 /r CMP BYTE Ptr [006387EA], AL CMP r/m16,r16 39 /r CMP WORD Ptr [006387EA], AX CMP r/m32,r32 39 / r CMP DWORD Ptr [006387EA], EAX CMP r8,r/m8 3A /r CMP AL, [006387EA] CMP r16,r/m16 3B /r CMP AX, [006387EA] CMP r32,r/m32 3B /r CMP EAX, [006387EA] CMPS CMPS m8, m8 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节 CMPS StrING1, StrING2 ;源串DS:(E)SI,目的串:ES:(E)DI CMPS m16, m16 A7 比较字符串,每次比较1个字 CMPS StrING1, StrING2 ;源串DS:(E)SI,目的串:ES:(E)DI CMPS m32, m32 A7 比较字符串,每次比较1个双字 CMPS StrING1, StrING2 ;源串DS:(E)SI,目的串:ES:(E)DI (386+) CMPSB A6 比较字符串,每次比较1个字节 CMPSB ;源串DS:(E)SI,目的串:ES:(E)DI CMPSW A7 比较字符串,每次比较1个字 CMPSW ;源串DS:(E)SI,目的串:ES:(E)DI CMPSD A7 比较字符串,每次比较1个双字 CMPSD ;源串DS:(E)SI,目的串:ES:(E)DI (386+) CMPXCHG CMPXCHG r/m8,r8 0F B0 /r 设置 AF CF OF PF SF ZF 比较交换 (486+) CMPXCHG BL,CL ;如果AL与BL相等,则CL送BL且ZF置1;否则BL送CL,且ZF清0 CMPXCHG r/m16,r16 0F B1 /r CMPXCHG BX,CX ;如果AX与BX相等,则CX送BX且ZF置1;否则BX送CX,且ZF清0 CMPXCHG r/m32,r32 0F B1 /r CMPXCHG EBX,ECX ;如果EAX与EBX相等,则ECX送EBX且ZF置1;否则EBX送ECX,且ZF清0 CMPXCHG8B CMPXCHG8B m64 0F C7 /1 m64 设置 ZF 比较交换 (486+) CMPXCHG [ESI] ;比较EDX:EAX与64位的目标,如果相等则ECX:EBX送往目标且ZF置1,否则目标送EDX:EAX且ZF清0 CPUID CPUID 0F A2 不影响标志位 CPU标识送EAX、EBX、ECX、EDX CPUID CWD CWD 99 不影响标志位 将AX带符号扩展到DX:AX CWD CWDE CWDE 98 不影响标志位 将AX带符号扩展到EAX CWDE DAA 27 设置 AF CF PF SF ZF 加法后的10进制调整AL DAA DAS DAS 2F 设置 AF CF PF SF ZF 减法后的10进制调整AL DAS DEC DEC r/m8 FE /1 设置 AF OF PF SF ZF 目标减1 DEC BYTE Ptr [00458A90] DEC r/m16 FF /1 DEC WORD Ptr [00458A90] DEC r/m32 FF /1 DEC DWORD Ptr [00458A90] DEC r16 48 +rw DEC AX DEC r32 48 +rd DEC EAX DIV DIV r/m8 F6 /6 AF CF OF PF SF ZF 未定义 无符号除法 DIV BL ;AX除以BL,商在AL中,余数在AH中 DIV r/m16 F6 /7 DIV BX ;DX:AX除以BX,商在AX中,余数在DX中 DIV r/m32 F6 /7 DIV EBX;EDX:EAX除以BX,商在EAX中,余数在EDX中 EMMS 0F 77 不影响标志位 清空MMX状态 EMMS ENTER ENTER imm16,0 C8 iw 00 不影响标志位 为子程序建立堆栈框架,imm16指定要分配的堆栈大小,另外一个操作数指明子程序的等级 (80188+) ENTER 12,0 ENTER imm16,1 C8 iw 01 ENTER 12,1 ENTER imm16,imm8 C8 iw ib DENTER 12,4 ESC ESC 0 D8h xxh 不影响标志位 处理器放弃总线 ESC 0 ESC 1 D9h xxh ESC 1 ESC 2 DAh xxh ESC 2 ESC 3 DBh xxh ESC 3 ESC 4 DCh xxh ESC 4 ESC 5 DDh xxh ESC 5 ESC 6 DEh xxh ESC 6 ESC 7 DFh xxh ESC 7 F2XM1 D9 F0 设置C1 (C0, C2, C3未定义) ST(0)←(2**ST(0) - 1) F2XM1 FABS FABS D9 E1 设置C1 (C0, C2, C3未定义) 求绝对值:ST(0)←ABS(ST(0)) FABS FADD FADD m32real D8 /0 设置C1 (C0, C2, C3未定义) 实数加法:ST(0)←ST(0)+m32real FADD REAL4 Ptr [00459AF0] FADD m64real DC /0 实数加法:ST(0)←ST(0)+m64real FADD REAL8 Ptr [00459AF0] FADD ST(0), ST(i) D8 C0+i 实数加法:ST(0)←ST(0)+ST(i) FADD ST(0), ST(1) FADD ST(i), ST(0) DC C0+i 实数加法:ST(i)←ST(i)+ST(0) FADD ST(1), ST(0) FADDP FADDP ST(i), ST(0) DE C0+i 设置C1 (C0, C2, C3未定义) 先进行实数加法:ST(i)←ST(i)+ST(0),然后进行一次出栈操作 FADDP ST(1), ST(0) FADDP DE C1 先进行实数加法:ST(0)←ST(0)+ST(1),然后进行一次出栈操作 FADDP FIADD FIADD m32int DA /0 设置C1 (C0, C2, C3未定义) 加整数:ST(0)←ST(0)+m32int FIADD DWORD Ptr [00812CD0] FIADD m16int DE /0 加整数:ST(0)←ST(0)+m16int FIADD WORD Ptr [00812CD0] FBLD FBLD m80bcd DF /4 设置C1 (C0, C2, C3未定义) 将BCD数装入ST(0),然后压栈push ST(0)   FBSTP FBSTP m80bcd DF /6 设置C1 (C0, C2, C3未定义) 将ST(0)以BCD数保存在m80bcd,然后出栈pop ST(0)   FCHS FCHS D9 E0 设置C1 (C0, C2, C3未定义) 改变ST(0)的符号位,即求负数 FCHS FCLEX FCLEX 9B DB E2 PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义) 清除浮点异常标志(检查非屏蔽浮点异常) FCLEX FNCLEX FNCLEX DB E2 PE, UE, OE, ZE, DE, IE, ES, SF, B 清0,设置C0 (C1, C2, C3未定义) 清除浮点异常标志(不检查非屏蔽浮点异常) FNCLEX FCMOVcc FCMOVB ST(0), ST(i) DA C0+i 小于(CF=1),设置C1 (C0, C2, C3未定义) 条件浮点传送指令 FCMOVB ST(0), ST(1) FCMOVE ST(0), ST(i) DA C8+i 等于(ZF=1),设置C1 (C0, C2, C3未定义) FCMOVE ST(0), ST(1) FCMOVBE ST(0), ST(i) DA D0+i 小于等于(CF=1 or ZF=1),设置C1 (C0, C2, C3未定义) FCMOVBE ST(0), ST(1) FCMOVU ST(0), ST(i) DA D8+i unordered(PF=1),设置C1 (C0, C2, C3未定义) FCMOVU ST(0), ST(1) FCMOVNB ST(0), ST(i) DB C0+i 不小于(CF=0),设置C1 (C0, C2, C3未定义) FCMOVNB ST(0), ST(1) FCMOVNE ST(0), ST(i) DB C8+i 不等于(ZF=0),设置C1 (C0, C2, C3未定义) FCMOVNE ST(0), ST(1) FCMOVNBE ST(0), ST(i) DB D0+i 不小于等于(CF=0 and ZF=0),设置C1 (C0, C2, C3未定义) FCMOVNBE ST(0), ST(1) FCMOVNU ST(0), ST(i) DB D8+i not unordered(PF=1),设置C1 (C0, C2, C3未定义) FCMOVNBE ST(0), ST(1) FCOM FCOM m32real D8 /2 设置C1,C0, C2, C3 实数比较:ST(0)-m32real,设置标志位 FCOM REAL4 Ptr [00812CD0] FCOM m64real DC /2 实数比较:ST(0)-m64real,设置标志位 FCOM REAL8 Ptr [00812CD0] FCOM ST(i) D8 D0+i 实数比较:ST(0)-ST(i),设置标志位 FCOM ST(2) FCOM D8 D1 实数比较:ST(0)-ST(1),设置标志位 FCOM FCOMP FCOMP m32real D8 /3 设置C1,C0, C2, C3 实数比较:ST(0)-m32real,设置标志位,执行一次出栈操作 FCOMP REAL4 Ptr [00812CD0] FCOMP m64real DC /3 实数比较:ST(0)-m64real,设置标志位,执行一次出栈操作 FCOMP REAL8 Ptr [00812CD0] FCOMP ST(i) D8 D8+i 实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作 FCOMP ST(2) FCOMP D8 D9 实数比较:ST(0)-ST(1),设置标志位,执行一次出栈操作 FCOMP FCOMI FCOMI ST, ST(i) DB F0+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),设置标志位 FCOMI ST, ST(1) FCOMIP FCOMIP ST, ST(i) DF F0+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),设置标志位,执行一次出栈操作 FCOMIP ST, ST(1) FUCOMI FUCOMI ST, ST(i) DB E8+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),检查ordered值,设置标志位 FCOMIP ST, ST(1) FUCOMIP FUCOMIP ST, ST(i) DF E8+i 设置ZF,PF,CF,C1 实数比较:ST(0)-ST(i),检查ordered值,设置标志位,执行一次出栈操作 FUCOMIP ST, ST(1) FCOS FCOS D9 FF 设置C1,C2 余弦函数COS,ST(0)←cosine(ST(0)) FCOS FDECSTP FDECSTP D9 F6 设置C1 (C0, C2, C3未定义) 将FPU的栈顶指针值减小1 FDECSTP FDIV FDIV m32real D8 /6 设置C1 (C0, C2, C3未定义) 实数除法:ST(0)←ST(0)/m32real FDIV REAL4 Ptr [00459AF0] FDIV m64real DC /6 实数除法:ST(0)←ST(0)/m64real FDIV REAL8 Ptr [00459AF0] FDIV ST(0), ST(i) D8 F0+i 实数除法:ST(0)←ST(0)/ST(i) FDIV ST(0), ST(1) FDIV ST(i), ST(0) DC F8+i 实数除法:ST(i)←ST(i)/ST(0) FDIV ST(1), ST(0) FDIVP FDIVP ST(i), ST(0) DE F8+i 设置C1 (C0, C2, C3未定义) 实数除法:ST(i)←ST(i)/ST(0),执行一次出栈操作 FDIVP ST(1), ST(0) FDIVP DE F9 实数除法:ST(1)←ST(1)/ST(0),执行一次出栈操作 FDIVP FIDIV FIDIV m32int DA /6 设置C1 (C0, C2, C3未定义) 除以整数:ST(0)←ST(0)/m32int FIDIV DWORD Ptr [00459AF0] FIDIV m16int DE /6 除以整数:ST(0)←ST(0)/m16int FIDIV WORD Ptr [00459AF0] FDIVR FDIVR m32real D8 /7 设置C1 (C0, C2, C3未定义) 实数除法:ST(0)←m32real/ST(0) FDIVR REAL4 Ptr [00459AF0] FDIVR m64real DC /7 实数除法:ST(0)←m64real/ST(0) FDIVR REAL8 Ptr [00459AF0] FDIVR ST(0), ST(i) D8 F8+i 实数除法:ST(0)←ST(i)/ST(0) FDIVR ST(0), ST(1) FDIVR ST(i), ST(0) DC F0+i 实数除法:ST(i)←ST(0)/ST(i) FDIVR ST(1), ST(0) FDIVRP FDIVRP ST(i), ST(0) DE F0+i 设置C1 (C0, C2, C3未定义) 实数除法:ST(i)←ST(0)/ST(i),执行一次出栈操作 FDIVRP ST(1), ST(0) FDIVRP DE F1 实数除法:ST(1)←ST(0)/ST(1),执行一次出栈操作 FDIVRP FIDIVR FIDIVR m32int DA /7 设置C1 (C0, C2, C3未定义) 被整数除:ST(0)←m32int/ST(0) FIDIVR DWORD Ptr [00459AF0] FIDIVR m16int DE /7 被整数除:ST(0)←m16int/ST(0) FIDIVR WORD Ptr [00459AF0] FFREE FFREE ST(i) DD C0+i (C0, C1,C2, C3未定义) 将与ST(i)相对应的标志位设置为空,即TAG(i)←11B FFREE ST(1) FICOM FICOM m16int DE /2 设置 C1,C0, C2, C3 和整数比较:ST(0)- m16int,设置标志 FICOM WORD Ptr [00459AF0] FICOM m32int DA /2 和整数比较:ST(0)- m32int,设置标志 FICOM DWORD Ptr [00459AF0] FICOMP FICOMP m16int DE /3 设置C1,C0, C2, C3 和整数比较:ST(0)- m16int,设置标志,执行一次出栈操作 FICOMP WORD Ptr [00459AF0] FICOMP m32int DA /3 和整数比较:ST(0)- m32int,设置标志,执行一次出栈操作 FICOMP DWORD Ptr [00459AF0] FILD FILD m16int DF /0 设置C1 (C0, C2, C3未定义) 将16位整数压栈,即装入ST(0) FILD WORD Ptr [00459AF0] FILD m32int DB /0 将32位整数压栈,即装入ST(0) FILD DWORD Ptr [00459AF0]                     FILD m64int DF /5 将64位整数压栈,即装入ST(0)       FINCSTP FINCSTP D9 F7 设置C1 (C0, C2, C3未定义) 将FPU的栈顶指针值增大1 FINCSTP FINIT FINIT 9B DB E3 设置C1 (C0, C2, C3未定义) 初始化FPU,检查非屏蔽浮点异常 FINIT FNINIT FNINIT DB E3 设置C1 (C0, C2, C3未定义) 初始化FPU,不检查非屏蔽浮点异常 FNINIT FIST FIST m16int DF /2 设置C1 (C0, C2, C3未定义) 将ST(0)以16位整数保存到m16int FIST WORD Ptr [00459AF0] FIST m32int DB /2 将ST(0)以32位整数保存到m32int FIST DWORD Ptr [00459AF0] FISTP FISTP m16int DF /3 设置C1 (C0, C2, C3未定义) 将ST(0)以16位整数保存到m16int,执行一次出栈操作 FISTP WORD Ptr [00459AF0] FISTP m32int DB /3 将ST(0)以32位整数保存到m32int,执行一次出栈操作 FISTP DWORD Ptr [00459AF0] FISTP m64int DF /7 将ST(0)以64位整数保存到m64int,执行一次出栈操作   FLD FLD m32real D9 /0 设置C1 (C0, C2, C3未定义) 将32位实数压栈,即装入ST(0) FLD REAL4 Ptr [00459AF0] FLD m64real DD /0 将64位实数压栈,即装入ST(0) FLD REAL8 Ptr [00459AF0] FLD m80real DB /5 将80位实数压栈,即装入ST(0)   FLD ST(i) D9 C0+i 将ST(i)压栈,即装入ST(0) FLD ST(7) FLD1 FLD1 D9 E8 设置C1 (C0, C2, C3未定义) 将+1.0压栈,即装入ST(0) FLD1 FLDL2T FLDL2T D9 E9 设置C1 (C0, C2, C3未定义) 将log2(10)压栈,即装入ST(0) FLDL2T FLDL2E FLDL2E D9 EA 设置C1 (C0, C2, C3未定义) 将log2(e)压栈,即装入ST(0) FLDL2E FLDPI FLDPI D9 EB 设置C1 (C0, C2, C3未定义) 将pi压栈,即装入ST(0) FLDPI FLDLG2 FLDLG2 D9 EC 设置C1 (C0, C2, C3未定义) 将log10(2)压栈,即装入ST(0) FLDLG2 FLDLN2 FLDLN2 D9 ED 设置C1 (C0, C2, C3未定义) 将loge(2)压栈,即装入ST(0) FLDLN2 FLDZ FLDZ D9 EE 设置C1 (C0, C2, C3未定义) 将+0.0压栈,即装入ST(0) FLDZ FLDCW FLDCW m2byte D9 /5 C1, C0, C2, C3 未定义 从m2byte装入FPU控制字 FLDCW BYTE Ptr [00459AF0] FLDENV FLDENV m14/28byte D9 /4 C1, C0, C2, C3 未定义 从m14/28byte装入FPU环境 FLDENV BYTE Ptr [00459AF0] FMUL FMUL m32real D8 /1 设置C1 (C0, C2, C3未定义) 实数乘法:ST(0)←ST(0)*m32real FMUL REAL4 Ptr [00459AF0] FMUL m64real DC /1 实数乘法:ST(0)←ST(0)*m64real FMUL REAL8 Ptr [00459AF0] FMUL ST(0), ST(i) D8 C8+i 实数乘法:ST(0)←ST(0)*ST(i) FMUL ST(0), ST(1) FMUL ST(i), ST(0) DC C8+i 实数乘法:ST(i)←ST(i)*ST(0) FMUL ST(1), ST(0) FMULP FMULP ST(i), ST(0) DE C8+i 设置C1 (C0, C2, C3未定义) 实数乘法:ST(i)←ST(i)*ST(0),执行一次出栈操作 FMULP ST(1), ST(0) FMULP DE C9 实数乘法:ST(1)←ST(1)*ST(0),执行一次出栈操作 FMULP FIMUL FIMUL m32int DA /1 设置C1 (C0, C2, C3未定义) 乘以整数:ST(0)←m32int*ST(0) FIMUL DWORD Ptr [00459AF0] FIMUL m16int DE /1 乘以整数:ST(0)←m16int*ST(0) FIMUL WORD Ptr [00459AF0] FNOP FNOP D9 D0 C1, C0, C2, C3 未定义 空操作(等同于NOP) FNOP FPATAN FPATAN D9 F3 设置C1 (C0, C2, C3未定义) 反正切函数arctan,ST(1)←arctan(ST(1)/ST(0)),执行一次出栈操作 FPATAN FPREM FPREM D9 F8 设置C1,C0, C2, C3 取余数,ST(0)←ST(0) MOD ST(1) FPREM FPREM1 FPREM1 D9 F5 设置C1,C0, C2, C3 取余数(使用IEEE 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 ),ST(0)←ST(0) MOD ST(1) FPREM1 FATAN FATAN D9 F2 设置C1,C2 (C0, C3未定义) 正切函数Tan,ST(0)←tangent(ST(0)),执行一次压栈1.0的操作 FATAN FRNDINT FRNDINT D9 FC 设置C1 (C0,C2,C3未定义) 取整(四舍五入,当小数部分刚好等于0.5时:如果整数部分为偶数,则“舍”;如果整数部分为奇数,则“入”),ST(0)←Round(ST(0)) FRNDINT FRSTOR FRSTOR m94/108byte DD /4 设置C0,C1,C2,C3 从m94/108byte装入FPU状态 FRSTOR BYTE Ptr [00459AF0] FSAVE FSAVE m94/108byte 9B DD /6 设置C0,C1,C2,C3 将FPU状态保存在m94/108byte中,检查非屏蔽浮点异常,然后初始化FPU FSAVE BYTE Ptr [00459AF0] FNSAVE FNSAVE m94/108byte
本文档为【Intel系列CPU指令速查手册++祝你学得知识】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_904417
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:38
分类:互联网
上传时间:2012-10-08
浏览量:35