• 汇编指令速查


    汇编指令速查

    指令功能
    AAA 调整加
    AAD 调整除
    AAM 调整乘
    AAS 调整减
    ADC 进位加
    ADD
    AND
    ARPL 调整优先级
    BOUND 检查数组
    BSF 位右扫描
    BSR 位左扫描
    BSWAP 交换字节
    BT 位测试
    BTC 位测试求反
    BTR 位测试清零
    BTS 位测试置一
    CALL 过程调用
    CBW 转换字节
    CDQ 转换双字
    CLC 进位清零
    CLD 方向清零
    CLI 中断清零
    CLTS 任务清除
    CMC 进位求反
    CMOVA 高于传送
    CMOVB 低于传送
    CMOVE 相等传送
    CMOVG 大于传送
    CMOVL 小于传送
    CMOVNA 不高于传送
    CMOVNB 不低于传送
    CMOVNE 不等传送
    CMOVNG 不大于传送
    CMOVNL 不小于传送
    CMOVNO 不溢出传送
    CMOVNP 非奇偶传送
    CMOVNS 非负传送
    CMOVO 溢出传送
    CMOVP 奇偶传送
    CMOVS 负号传送
    CMP 比较
    CMPSB 比较字节串
    CMPSD 比较双字串
    CMPSW 比较字串
    CMPXCHG 比较交换
    CMPXCHG486 比较交换486
    CMPXCHG8B 比较交换8字节
    CPUID CPU标识
    CWD 转换字
    CWDE 扩展字
    DAA 调整加十
    DAS 调整减十
    DEC 减一
    DIV
    ENTER 建立堆栈帧
    HLT
    IDIV 符号整除
    IMUL 符号乘法
    IN 端口输入
    INC 加一
    INSB 端口输入字节串
    INSD 端口输入双字串
    INSW 端口输入字串
    JA 高于跳转
    JB 低于跳转
    JBE 不高于跳转
    JCXZ 计数一六零跳转
    JE 相等跳转
    JECXZ 计数三二零跳转
    JG 大于跳转
    JL 小于跳转
    JMP 跳转
    JMPE 跳转扩展
    JNB 不低于跳转
    JNE 不等跳转
    JNG 不大于跳转
    JNL 不小于跳转
    JNO 不溢出跳转
    JNP 非奇偶跳转
    JNS 非负跳转
    JO 溢出跳转
    JP 奇偶跳转
    JS 负号跳转
    LAHF 加载标志低八
    LAR 加载访问权限
    LDS 加载数据段
    LEA 加载有效地址
    LEAVE 清除过程堆栈
    LES 加载附加段
    LFS 加载标志段
    LGDT 加载全局描述符
    LGS 加载全局段
    LIDT 加载中断描述符
    LMSW 加载状态字
    LOADALL 加载所有
    LOADALL286 加载所有286
    LOCK
    LODSB 加载源变址字节串
    LODSD 加载源变址双字串
    LODSW 加载源变址字串
    LOOP 计数循环
    LOOPE 相等循环
    LOOPNE 不等循环
    LOOPNZ 非零循环
    LOOPZ 为零循环
    LSL 加载段界限
    LSS 加载堆栈段
    LTR 加载任务
    MONITOR 监视
    MOV 传送
    MOVSB 传送字节串
    MOVSD 传送双字串
    MOVSW 传送字串
    MOVSX 符号传送
    MOVZX 零传送
    MUL
    MWAIT  
    NEG 求补
    NOP
    NOT
    OR
    OUT 端口输出
    OUTSB 端口输出字节串
    OUTSD 端口输出双字串
    OUTSW 端口输出字串
    POP 出栈
    POPA 全部出栈
    POPF 标志出栈
    PUSH 压栈
    PUSHA 全部压栈
    PUSHF 标志压栈
    RCL 进位循环左移
    RCR 进位循环右移
    RDMSR 读专用模式
    RDPMC 读执行监视计数
    RDSHR  
    RDTSC 读时间戳计数
    REP 重复
    REPE 相等重复
    REPNE 不等重复
    RET 过程返回
    RETF 远过程返回
    RETN 近过程返回
    ROL 循环左移
    ROR 循环右移
    RSM 恢复系统管理
    SAHF 恢复标志低八
    SAL 算术左移
    SALC  
    SAR 算术右移
    SBB 借位减
    SCASB 扫描字节串
    SCASD 扫描双字串
    SCASW 扫描字串
    SETA 高于置位
    SETB 低于置位
    SETE 相等置位
    SETG 大于置位
    SETL 小于置位
    SETNA 不高于置位
    SETNB 不低于置位
    SETNE 不等置位
    SETNG 不大于置位
    SETNL 不小于置位
    SETNO 不溢出置位
    SETNP 非奇偶置位
    SETNS 非负置位
    SETO 溢出置位
    SETP 奇偶置位
    SETS 负号置位
    SGDT 保存全局描述符
    SHL 逻辑左移
    SHLD 双精度左移
    SHR 逻辑右移
    SHRD 双精度右移
    SIDT 保存中断描述符
    SLDT 保存局部描述符
    SMI  
    SMINT  
    SMINTOLD  
    SMSW 保存状态字
    STC 进位设置
    STD 方向设置
    STI 中断设置
    STOSB 保存字节串
    STOSD 保存双字串
    STOSW 保存字串
    STR 保存任务
    SUB
    SYSCALL 系统调用
    SYSENTER 系统进入
    SYSEXIT 系统退出
    SYSRET 系统返回
    TEST 数测试
    UD0 未定义指令0
    UD1 未定义指令1
    UD2 未定义指令2
    UMOV  
    VERW 校验写
    WAIT
    WBINVD 回写无效高速缓存
    WRMSR 写专用模式
    WRSHR  
    XADD 交换加
    XBTS  
    XCHG 交换
    XLAT 换码
    XOR 异或
    XSTORE  

    http://files.cnblogs.com/findumars/ASM_Detail.pdf

    指令功能
    EMMS 媒体空MMX状态
    F2XM1 浮点栈顶绝对值
    FADD 浮点加
    FADDP 浮点加出栈
    FBLD 浮点加载十数
    FBSTP 浮点保存十数出栈
    FCHS 浮点正负求反
    FCLEX 浮点检查错误清除
    FCMOVB 浮点低于传送
    FCMOVBE 浮点不高于传送
    FCMOVE 浮点相等传送
    FCMOVNB 浮点不低于传送
    FCMOVNBE 浮点高于传送
    FCMOVNE 浮点不等传送
    FCMOVNU 浮点有序传送
    FCMOVU 浮点无序传送
    FCOM 浮点比较
    FCOMI 浮点比较加载标志
    FCOMIP 浮点比较加载标志出栈
    FCOMP 浮点比较出栈
    FCOMPP 浮点比较出栈二
    FCOS 浮点余弦
    FDECSTP 浮点栈针减一
    FDISI 浮点检查禁止中断
    FDIV 浮点除
    FDIVP 浮点除出栈
    FDIVR 浮点反除
    FDIVRP 浮点反除出栈
    FENI 浮点检查禁止中断二
    FFREE 浮点释放
    FFREEP 浮点释放出栈
    FIADD 浮点加整数
    FICOM 浮点比较整数
    FICOMP 浮点比较整数出栈
    FIDIV 浮点除整数
    FIDIVR 浮点反除
    FILD 浮点加载整数
    FIMUL 浮点乘整数
    FINCSTP 浮点栈针加一
    FINIT 浮点检查初始化
    FIST 浮点保存整数
    FISTP 浮点保存整数出栈
    FISTTP  
    FISUB 浮点减整数
    FISUBR 浮点反减整数
    FLD 浮点加载数
    FLD1 浮点加载一
    FLDCW 浮点加载控制器
    FLDENV 浮点加载环境
    FLDL2E 浮点加载L2E
    FLDL2T 浮点加载L2T
    FLDLG2 浮点加载LG2
    FLDLN2 浮点加载LN2
    FLDPI 浮点加载PI
    FLDZ 浮点加载零
    FMUL 浮点乘
    FMULP 浮点乘出栈
    FNCLEX 浮点不检查错误清除
    FNDISI 浮点不检查禁止中断
    FNENI 浮点不检查禁止中断二
    FNINIT 浮点不检查初始化
    FNOP 浮点空
    FNSAVE 浮点不检查保存状态
    FNSTCW 浮点不检查保存控制器
    FNSTENV 浮点不检查保存环境
    FNSTSW 浮点不检查保存状态器
    FPATAN 浮点部分反正切
    FPREM 浮点部分余数
    FPREM1 浮点部分余数二
    FPTAN 浮点部分正切
    FRNDINT 浮点舍入求整
    FRSTOR 浮点恢复状态
    FSAVE 浮点检查保存状态
    FSCALE 浮点比例运算
    FSETPM 浮点设置保护
    FSIN 浮点正弦
    FSINCOS 浮点正余弦
    FSQRT 浮点平方根
    FST 浮点保存
    FSTCW 浮点检查保存控制器
    FSTENV 浮点检查保存环境
    FSTP 浮点保存出栈
    FSTSW 浮点检查保存状态器
    FSUB 浮点减
    FSUBP 浮点减出栈
    FSUBR 浮点反减
    FSUBRP 浮点反减出栈
    FTST 浮点比零
    FUCOM 浮点无序比较
    FUCOMI 浮点反比加载标志
    FUCOMIP 浮点反比加载标志出栈
    FUCOMP 浮点无序比较出栈
    FUCOMPP 浮点无序比较出栈二
    FWAIT 浮点等
    FXAM 浮点检查
    FXCH 浮点交换
    FXTRACT 浮点分解
    FYL2X 浮点求L2X
    FYL2XP1 浮点求L2XP1
    MOVED 媒体双字传送
    MOVEQ 媒体四字传送
    PACKSSDW 媒体符号双字压缩
    PACKSSWB 媒体符号字压缩
    PACKUSWB 媒体无符号字压缩
    PADDB 媒体截断字节加
    PADDD 媒体截断双字加
    PADDSB 媒体符号饱和字节加
    PADDSIW  
    PADDSW 媒体符号饱和字加
    PADDUSB 媒体无符号饱和字节加
    PADDUSW 媒体无符号饱和字加
    PADDW 媒体截断字加
    PAND 媒体与
    PANDN 媒体与非
    PAVEB  
    PCMPEQB 媒体字节比等
    PCMPEQD 媒体双字比等
    PCMPEQW 媒体字比等
    PCMPGTB 媒体字节比大
    PCMPGTD 媒体双字比大
    PCMPGTW 媒体字比大
    PDISTIB  
    PMACHRIW  
    PMADDWD  
    PMAGW  
    PMULHRIW  
    PMULHRWC  
    PMULHW  
    PMVGEZB  
    PMVLZB  
    PMVNZB  
    PMVZB  
    POR 媒体或
    PSLLD 媒体双字左移
    PSLLQ 媒体四字左移
    PSLLW 媒体字左移
    PSRAD 媒体双字算术右移
    PSRAW 媒体字算术右移
    PSRLD 媒体双字右移
    PSRLQ 媒体四字右移
    PSRLW 媒体字右移
    PSUBB 媒体截断字节减
    PSUBSB 媒体符号饱和字节减
    PSUBSIW  
    PSUBSW 媒体符号饱和字减
    PSUBUSB 媒体无符号饱和字节减
    PSUBUSW 媒体无符号饱和字减
    PSUBW 媒体截断字减
    PUNPCKHBW 媒体字节高位解压
    PUNPCKHDQ 媒体双字高位解压
    PUNPCKHWD 媒体字高位解压
    PUNPCKLBW 媒体字节低位解压
    PUNPCKLDQ 媒体双字低位解压
    PUNPCKLWD 媒体字低位解压

     


    Delphi 2010 VCL、JCL 源码中用到的汇编指令(只是粗略统计):

    按名称排序使用次数按使用频率排序使用次数
    ADC 15 MOV 4053
    ADD 659 PUSH 1505
    AND 162 CMP 1372
    BSF 8 POP 1187
    BSR 7 JE 952
    BSWAP 12 CALL 847
    BT 13 JMP 771
    BTC 9 ADD 659
    BTR 10 JNE 503
    BTS 10 TEST 452
    CALL 847 SUB 400
    CDQ 6 DEC 332
    CLD 10 LEA 288
    CMP 1372 RET 280
    CPUID 3 INC 261
    CWD 1 JZ 252
    DB 241 OR 248
    DD 189 DB 241
    DEC 332 DD 189
    DIV 40 JNZ 167
    DW 63 MOVZX 166
    ELSE 2 AND 162
    END 2 FLD 154
    F2XM1 6 SHR 131
    FABS 7 JB 101
    FADD 9 JG 92
    FADDP 15 JA 86
    FBSTP 3 REP 83
    FCHS 5 JBE 81
    FCLEX 5 XCHG 79
    FCOM 7 JLE 79
    FCOMP 7 FSTP 76
    FCOMPP 3 LODSB 74
    FCOS 4 JL 72
    FDIV 11 FWAIT 72
    FDIVP 5 NEG 70
    FDIVRP 11 DW 63
    FFREE 13 LOCK 61
    FIADD 6 STOSB 58
    FIDIV 2 STOSW 54
    FILD 32 MOVSX 53
    FIMUL 4 FLDCW 52
    FINCSTP 1 FLD1 52
    FISTP 30 SHL 48
    FLD 154 JAE 48
    FLD1 52 DIV 40
    FLDCW 52 JGE 35
    FLDL2E 6 REPNE 33
    FLDLG2 2 LODSW 33
    FLDLN2 9 IMUL 32
    FLDZ 8 FMUL 32
    FMUL 32 FILD 32
    FMULP 26 JNS 31
    FNCLEX 11 FISTP 30
    FNINIT 2 FXCH 28
    FNSTCW 20 FMULP 26
    FNSTSW 6 JS 24
    FPATAN 15 SBB 22
    FPREM 3 FSTSW 22
    FPTAN 4 LOOP 20
    FRNDINT 14 FNSTCW 20
    FSCALE 8 FSTCW 18
    FSIN 3 NOT 17
    FSINCOS 7 JECXZ 17
    FSQRT 15 FYL2X 17
    FST 5 MUL 16
    FSTCW 18 JNC 16
    FSTP 76 SAHF 15
    FSTSW 22 ROR 15
    FSUB 11 FSQRT 15
    FSUBP 5 FPATAN 15
    FSUBR 2 FADDP 15
    FSUBRP 4 ADC 15
    FTST 4 FRNDINT 14
    FWAIT 72 FFREE 13
    FXAM 1 BT 13
    FXCH 28 SAR 12
    FXTRACT 1 ROL 12
    FYL2X 17 RCL 12
    FYL2XP1 1 JO 12
    HLT 1 BSWAP 12
    IMUL 32 REPE 11
    INC 261 FSUB 11
    INT 8 FNCLEX 11
    JA 86 FDIVRP 11
    JAE 48 FDIV 11
    JB 101 WAIT 10
    JBE 81 CLD 10
    JC 6 BTS 10
    JE 952 BTR 10
    JECXZ 17 SETC 9
    JG 92 FLDLN2 9
    JGE 35 FADD 9
    JL 72 BTC 9
    JLE 79 INT 8
    JMP 771 FSCALE 8
    JNA 1 FLDZ 8
    JNC 16 BSF 8
    JNE 503 PUSHFD 7
    JNG 2 FSINCOS 7
    JNL 1 FCOMP 7
    JNS 31 FCOM 7
    JNZ 167 FABS 7
    JO 12 BSR 7
    JRCXZ 2 NOP 6
    JS 24 JC 6
    JZ 252 FNSTSW 6
    LEA 288 FLDL2E 6
    LEAVE 1 FIADD 6
    LOCK 61 F2XM1 6
    LODSB 74 CDQ 6
    LODSW 33 STOSD 5
    LOOP 20 POPFD 5
    MOV 4053 FSUBP 5
    MOVSB 1 FST 5
    MOVSX 53 FDIVP 5
    MOVZX 166 FCLEX 5
    MUL 16 FCHS 5
    NEG 70 SHRD 4
    NOP 6 PUSHF 4
    NOT 17 POPF 4
    OR 248 FTST 4
    PAUSE 3 FSUBRP 4
    POP 1187 FPTAN 4
    POPF 4 FIMUL 4
    POPFD 5 FCOS 4
    PUSH 1505 RCR 3
    PUSHF 4 PAUSE 3
    PUSHFD 7 FSIN 3
    RCL 12 FPREM 3
    RCR 3 FCOMPP 3
    REP 83 FBSTP 3
    REPE 11 CPUID 3
    REPNE 33 STD 2
    RET 280 SETNZ 2
    ROL 12 SETE 2
    ROR 15 JRCXZ 2
    SAHF 15 JNG 2
    SAL 1 FSUBR 2
    SAR 12 FNINIT 2
    SBB 22 FLDLG2 2
    SETC 9 FIDIV 2
    SETE 2 END 2
    SETNC 1 ELSE 2
    SETNZ 2 STC 1
    SHL 48 SHLD 1
    SHLD 1 SETNC 1
    SHR 131 SAL 1
    SHRD 4 MOVSB 1
    STC 1 LEAVE 1
    STD 2 JNL 1
    STOSB 58 JNA 1
    STOSD 5 HLT 1
    STOSW 54 FYL2XP1 1
    SUB 400 FXTRACT 1
    TEST 452 FXAM 1
    WAIT 10 FINCSTP 1
    XCHG 79 CWD 1

  • 相关阅读:
    centos6.8安装JDK1.8
    尚硅谷 ActiveMQ
    Spring 注解版-事务实现
    nginx实现动静分离
    C/C++ 位域
    大小端模式
    C++find函数
    C++ transform
    C++ string的大小写转换
    C++ pair用法
  • 原文地址:https://www.cnblogs.com/findumars/p/3498714.html
Copyright © 2020-2023  润新知