
ARMv8
文章平均质量分 95
TYYJ-洪伟
移动端技术主管、优快云博客专家。个人微信:tyyj89
展开
-
【ARMv8 SIMD和浮点指令编程】浮点数据转换指令——数据类型互转必备
浮点数据转换指令包括不同的浮点精度数之间的转换,还包括整型和浮点数之间的转化。在了解数据转换指令前,必须学习 IEEE 754 定义的五种舍入规则。原创 2023-12-09 07:33:58 · 1443 阅读 · 0 评论 -
【ARMv8 SIMD和浮点指令编程】浮点加减乘除指令——四则运算
浮点指令有专门的加减乘除四则运算指令,比如 FADD、FSUB、FMUL、FDIV 等。原创 2023-11-05 13:56:32 · 1071 阅读 · 0 评论 -
【ARMv8 SIMD和浮点指令编程】NEON 移动指令——精通 MOV?
移动指令主要涉及 MOV 和 MVN,它们分别是移动和求反移动。如果你认为仅仅两条指令,还是太小看设计者了!原创 2023-06-18 07:22:32 · 1073 阅读 · 0 评论 -
【ARMv8 编程】A64 系统控制和其他指令
A64 指令集包含与以下相关的指令:异常处理、系统寄存器访问、调试、提示指令,在许多系统中都有电源管理应用程序。原创 2023-05-17 07:24:13 · 1510 阅读 · 0 评论 -
【ARMv8 编程】A64 流控制指令
A64 指令集提供了许多不同种类的分支指令。对于简单的相对分支,即那些从当前地址偏移的分支,使用 B 指令。无条件简单相对分支可以从当前程序计数器位置向后或向前分支最多 128MB。有条件的简单相对分支,其中条件代码附加到 B,具有 ±1MB 的较小范围。调用子程序时,需要将返回地址存储在链接寄存器(X30)中,使用 BL 指令。这没有条件版本。BL 的行为类似于 B 指令,具有将返回地址存储在寄存器 X30 中的附加作用,返回地址是 BL 之后指令的地址。原创 2023-05-17 07:18:33 · 964 阅读 · 0 评论 -
【ARMv8 编程】A64 内存访问其他指令
A64 内存访问其他指令包括浮点和 NEON 标量加载存储指令、访问多个内存位置指令、非特权访问指令、预取内存指令、非临时加载存储对指令、内存屏障和栅栏指令、同步原语等。原创 2023-05-13 11:02:28 · 1279 阅读 · 0 评论 -
【ARMv8 编程】A64 内存访问指令——内存存储指令
在内存加载一节中实际上已经使用了内存存储指令了,内存存储指令将寄存器的值存储到内存中。还有 unscaled-offset 偏移形式,例如STUR。程序员通常不需要明确使用 STUR 形式,因为大多数汇编器可以根据使用的偏移量选择合适的版本。要存储的大小可能小于寄存器。可以通过向 STR 添加 B 或 H 后缀来指定它。在这种情况下,存储的总是寄存器的最低有效部分。原创 2023-05-02 06:47:07 · 1726 阅读 · 0 评论 -
【ARMv8 编程】A64 内存访问指令——内存加载指令
与所有先前的 ARM 处理器一样,ARMv8 架构是一种加载/存储架构。这意味着没有数据处理指令直接对内存中的数据进行操作。数据必须首先被加载到寄存器中,修改,然后存储到内存中。该程序必须指定地址、要传输的数据大小以及源或目标寄存器。有额外的加载和存储指令提供更多选项,例如非临时加载/存储、加载/存储独占和获取/释放。对于加载到整数寄存器中的指令,可以选择要加载的大小。原创 2023-04-29 07:46:38 · 2259 阅读 · 0 评论 -
【ARMv8 编程】A64 数据处理指令——位域&字节操作指令
有些指令将字节、半字或字扩展到寄存器大小,可以是 X 或 W。这些指令存在于有符号(SXTB、SXTH、SXTW)和无符号(UXTB、UXTH)变体中,并且是适当的位域操作指令。这些指令的有符号和无符号变体都将字节、半字或字(尽管只有 SXTW 对字进行操作)扩展到寄存器大小。源始终是 W 寄存器。目标寄存器是 X 或 W 寄存器,但 SXTW 除外,它必须是 X 寄存器。—— 通过重复字节的最左边的位,将寄存器 W1 的最低有效字节从 8 位符号扩展为 64 位。原创 2023-04-15 13:46:48 · 3824 阅读 · 0 评论 -
【ARMv8 编程】A64 数据处理指令——移动&比较指令
移动指令主要为 MOV 以及它的各种“变体”,而比较指令主要用来进行比较并更新条件标志,用来实现条件判断等。原创 2023-04-08 07:20:49 · 3876 阅读 · 2 评论 -
【ARMv8 编程】A64 数据处理指令——逻辑&移位指令
逻辑指令包括与、或等指令,移位指令则分为逻辑移位和算术移位指令,下面则详细展开学习。原创 2023-04-02 15:36:23 · 2858 阅读 · 0 评论 -
【ARMv8 编程】A64 数据处理指令——算术指令
加减乘除类的指令统称为算术指令(ADD、SUB、ADC、SBC、NEG、MADD、MNEG、MSUB、MUL、SMADDL、SMNEGL、SMSUBL、SMULH、SMULL、UMADDL、UMNEGL、UMSUBL、UMULH、UMULL、SDIV、UDIV)原创 2023-03-26 08:21:25 · 2237 阅读 · 0 评论 -
【ARMv8 编程】ARMv8 指令集介绍
ARMv8 架构中引入的最重要的变化之一是增加了 64 位指令集。该指令集补充了现有的 32 位指令集架构。原创 2023-02-26 15:22:02 · 2761 阅读 · 0 评论 -
【ARMv8 编程】寄存器
ARMv8 用于描述整体架构,包括 32 位执行和 64 位执行。它使用 64 位位宽寄存器,同时保持向后兼容 v7。原创 2022-08-29 08:29:03 · 2234 阅读 · 0 评论