You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

x86-64与ARM64架构下最常用CPU指令咨询

x86-64 与 ARM64 架构下最常用的 CPU 指令

确实,CPU的指令集中只有极小一部分占据了绝大多数的执行操作量——通常超过90%的指令执行周期都集中在几十种核心指令上,这些指令主要围绕数据移动、算术逻辑运算、内存访问、分支控制这几类核心操作。

x86-64 架构核心常用指令

以下是占据执行量Top级别的指令(按使用频率大致排序):

  • 数据移动类:
    • mov:寄存器与寄存器、寄存器与内存之间的数据传输,是最常用的指令之一,几乎所有程序都会大量依赖它来搬运数据。
    • push/pop:栈操作,用于函数调用时的参数传递、寄存器保存与恢复,在过程调用密集的代码中高频出现。
  • 算术逻辑运算类:
    • add/sub:整数加法与减法,基础运算的核心,广泛用于计数、偏移计算、变量更新等场景。
    • cmp:比较两个操作数,为后续的分支指令提供状态标志,是条件判断的基础。
    • and/or/xor:位运算,除了直接的位操作,还常用于快速清零寄存器(xor rax, rax)、设置特定位等场景。
  • 分支与控制类:
    • jmp:无条件跳转,用于循环、函数跳转等流程控制。
    • jne/je/jl/jg等条件跳转指令:配合cmp使用,实现if/else、循环等条件逻辑,是程序流程分支的核心。
    • call/ret:函数调用与返回,支撑程序的模块化结构,高频出现在任何包含函数调用的代码中。
  • 内存访问类:
    • lea:有效地址计算,不仅用于计算内存地址,还常被编译器用来做高效的算术运算(比如lea rax, [rbx+rcx*2]实现乘法加法组合)。

ARM64 架构核心常用指令

ARM64(AArch64)采用精简指令集(RISC),指令更规整,但同样有一批占据绝大多数执行量的核心指令:

  • 数据移动类:
    • mov:寄存器间数据传输,以及立即数加载到寄存器,是基础的数据搬运指令。
    • ldr/str:内存加载与存储,负责寄存器与内存之间的数据交互,是内存操作的核心。
  • 算术逻辑运算类:
    • add/sub:整数加法与减法,是最基础的运算指令,覆盖大量计数、变量更新场景。
    • cmp:比较操作,设置程序状态寄存器(PSR)的标志位,为条件分支提供依据。
    • and/orr/eor:位与、位或、异或操作,用于位处理、寄存器清零(eor x0, x0, x0)等场景。
  • 分支与控制类:
    • b:无条件跳转,实现循环、函数跳转等流程控制。
    • b.ne/b.eq/b.lt/b.gt等条件跳转指令:配合cmp或其他运算指令设置的标志位,实现条件分支逻辑。
    • bl/ret:带链接的跳转(函数调用)与返回,bl会将返回地址存入lr寄存器,是函数调用的核心指令。
  • 其他高频指令:
    • movz/movk:用于加载大立即数(ARM64的mov只能加载有限范围的立即数,大立即数需要通过这两个指令拼接),在初始化常量、设置地址时高频使用。

这些指令的高频率本质是因为程序的核心逻辑——无论是业务代码还是底层系统代码,都围绕数据搬运、基础运算、流程分支、内存交互展开,复杂的专用指令(比如SIMD、加密指令)只有在特定场景(如多媒体处理、加密解密)才会被大量使用,整体执行占比极低。

内容的提问来源于stack exchange,提问作者Ecir Hana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 01:20:42