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

ARMv8-a逻辑指令64位立即数编码约束咨询

ARMv8-A架构逻辑指令立即数编码约束说明

一、核心约束规则

AArch64架构下,AND/ORR/EOR等逻辑指令的64位立即数必须满足可通过8位基础值循环右移偶数位后重复填充生成的要求,具体细节:

  • 以一个8位无符号值(范围0x00~0xFF)作为基础;
  • 将该基础值循环右移偶数位(移位范围0~62,步长为2);
  • 将移位后的8位值重复8次,拼接成完整的64位立即数。

示例验证

  • 符合规则的立即数:
    • 0x5555555555555555:基础值为0x55,循环右移0位后重复8次,完全匹配规则;
    • 0xFFFFFFFFFFFFFFFD:对应基础值为0xFD,循环右移0位后重复8次得到0xFDFDFDFDFDFDFDFD,符合规则;若你实际使用的是仅bit1为0的全1值,需注意该值无法通过上述规则生成,可通过AND X13, X13, #~0x2间接实现,但~0x2本身无法直接作为立即数编码。
  • 不符合规则的立即数:
    • 0x0000CCCC0000CCCC:该值仅在特定32位段重复0xCCCC,其余位为0,无法通过8位基础值重复填充生成;
    • 0x0A0A0A0A0A0A0A0A:理论上该值符合规则(基础值0x0A,右移0位重复8次),若报错可能是汇编器配置或指令写法问题(比如误使用32位寄存器指令AND W13, W13, #imm)。

二、官方文档查询路径

在ARM官方的《ARM Architecture Reference Manual for ARMv8-A》(简称ARM ARM)中,按以下路径查找:

  1. 定位到AArch64 Instruction Set章节;
  2. 进入Data Processing Instructions下的Logical Instructions小节;
  3. 查看Logical Immediate Encoding部分,即可获取完整的编码约束细节。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:05:19