【无标题】arm v8 速记
好的以下是按照键盘字母顺序QWERTYUIOP ASDFGHJKL ZXCVBNM整理的 ARMv8 (AArch64) 常用汇编指令列表。每个条目包含命令、解释和例子。---第一排Q W E R T Y U I O PQ· 无常见指令ARMv8 A64 指令集中没有以 Q 开头的通用整数指令。饱和运算指令通常以 SQ、UQ 开头属于 S/U 类别。W· WFE解释等待事件Wait For Event进入低功耗状态直到收到事件唤醒。例子WFE· WFI解释等待中断Wait For Interrupt进入低功耗状态直到收到中断唤醒。例子WFIE· EOR解释按位异或Exclusive OR。例子EOR X0, X1, X2 // X0 X1 ^ X2· ERET解释从异常返回Exception Return跳转到 ELR_ELx 保存的地址并恢复 PSTATE。例子ERETR· RET解释从子程序返回默认使用 X30 (LR) 中的地址。例子RET· REV解释字节序反转Reverse Bytes将寄存器中的字节顺序颠倒。例子REV X0, X1 // 将 X1 的字节顺序反转后存入 X0T· TST解释测试位Test执行 Rn Rm/imm 并更新 NZCV 标志不保存结果。例子TST X0, #0xFF // 测试 X0 的低 8 位是否全零· TBZ解释测试位为零则跳转Test Bit and Branch if Zero。例子TBZ X0, #3, label // 如果 X0 的第 3 位为 0跳转到 labelY· YIELD解释提示线程愿意让出 CPU 资源用于多线程环境。例子YIELDU· UBFX解释无符号位域提取Unsigned Bitfield Extract。例子UBFX X0, X1, #4, #8 // 从 X1 的第 4 位开始提取 8 位零扩展到 64 位后存入 X0· UDIV解释无符号除法Unsigned Divide。例子UDIV X0, X1, X2 // X0 X1 ÷ X2 (无符号)I· ISB解释指令同步屏障Instruction Synchronization Barrier清空流水线确保之前指令完成。例子ISBO· ORR解释按位或逻辑或。例子ORR X0, X1, X2 // X0 X1 | X2· ORN解释先或后取反OR NOT即 Rn | (~Rm)。例子ORN X0, X1, X2 // X0 X1 | (~X2)P· PRFM解释预取内存Prefetch Memory提示缓存预取数据。例子PRFM PLDL1KEEP, [X0] // 预取 X0 指向的内存到一级缓存---第二排A S D F G H J K LA· ADD解释加法运算。例子ADD X0, X1, X2 // X0 X1 X2· ADR解释将标签的地址PC 相对加载到寄存器。例子ADR X0, label // X0 label 的地址S· SUB解释减法运算。例子SUB X0, X1, X2 // X0 X1 - X2· STR解释将寄存器值存储到内存。例子STR X0, [X1] // 将 X0 的值存入 X1 指向的内存D· DMB解释数据内存屏障Data Memory Barrier确保内存访问顺序。例子DMB ISH // 内部共享域的数据内存屏障· DSB解释数据同步屏障Data Synchronization Barrier确保所有指令执行完成。例子DSB SY // 完全同步屏障F· FADD解释浮点数加法单精度或双精度。例子FADD D0, D1, D2 // D0 D1 D2 (双精度)· FMOV解释浮点寄存器间传送或浮点与通用寄存器间传送。例子FMOV X0, D0 // 将双精度浮点 D0 的位模式传送到 X0G· 无常见指令A64 指令集中没有以 G 开头的通用指令。H· 无常见指令A64 指令集中没有以 H 开头的通用指令。J· 无常见指令A64 指令集中没有以 J 开头的通用指令。K· 无常见指令A64 指令集中没有以 K 开头的通用指令。L· LDR解释从内存加载数据到寄存器。例子LDR X0, [X1] // 将 X1 指向的内存数据加载到 X0· LDP解释加载一对寄存器Load Pair。例子LDP X0, X1, [X2] // 从 X2 指向的内存加载两个 64 位值到 X0 和 X1---第三排Z X C V B N MZ· 无常见指令A64 指令集中没有以 Z 开头的通用指令。X· 无常见指令X 通常用作寄存器前缀没有以 X 开头的指令。C· CMP解释比较指令执行 Rn - Rm/imm 并更新 NZCV 标志。例子CMP X0, X1 // 比较 X0 和 X1· CSEL解释条件选择Conditional Select根据标志选择两个源之一。例子CSEL X0, X1, X2, EQ // 如果相等 (Z1)X0 X1否则 X0 X2V· 无常见整数指令浮点和 SIMD 指令通常以 F 或特定前缀开头纯 V 开头的指令不常见。B· B解释无条件跳转。例子B label // 跳转到 label· BL解释带链接的跳转调用子程序返回地址存入 X30。例子BL func // 调用 funcX30 返回地址N· NOP解释空操作No Operation占用一个周期。例子NOP· NEG解释取反Negate即 Rd -Rn。例子NEG X0, X1 // X0 -X1M· MOV解释数据传送实际是 ORR 或 ADD 的别名。例子MOV X0, X1 // X0 X1· MUL解释乘法运算。例子MUL X0, X1, X2 // X0 X1 * X2---以上列表涵盖了 ARMv8 A64 架构中按键盘字母顺序的常用指令。实际指令集非常庞大但掌握这些基础指令足以应对大部分汇编编程任务。需要更详细的信息可参考 ARM 官方文档。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2422364.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!