立即数、后缀与操作数合法性¶
本页列出 c220 公共汇编形式中全部 46 个已识别立即数字段,覆盖 39 个指令 ID。
每个上下边界均已分别汇编,且 minimum-1、maximum+1 均被后端拒绝;范围不是从字段宽度猜测。
完整立即数表¶
| 指令/字段 | 范围 | 位宽/扩展 | 缩放/对齐 | 运行解释 |
|---|---|---|---|---|
LD_XD_XN / address_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 可选地址/控制模式 |
ST_XD_XN / address_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 可选地址/控制模式 |
LD_DDR / address_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 可选地址/控制模式 |
ST_DDR / address_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 可选地址/控制模式 |
INSERT_XD_XN / bit_offset |
0..63 | 6 位;零扩展/枚举 | scale=1;alignment=1 | 目标位域最低位 |
INSERT_XD_XN / width_minus_one |
0..31 | 5 位;零扩展/枚举 | scale=1;alignment=1 | 插入宽度减一;bit_offset + width_minus_one 不得超过 63 |
INSERT_XD / immediate8 |
0..255 | 8 位;零扩展/枚举 | scale=1;alignment=1 | 插入目标寄存器的 8 位值 |
INSERT_XD / bit_offset |
0..63 | 6 位;零扩展/枚举 | scale=1;alignment=1 | 目标位域最低位 |
INSERT_XD / extension_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 8 位插入的扩展/控制模式 |
LD_XD_XN_IMM / offset |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 字面字段值 |
LD_XD_XN_IMM / address_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 可选地址/控制模式 |
ST_XD_XN_IMM / offset |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 字面字段值 |
ST_XD_XN_IMM / address_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 可选地址/控制模式 |
MOV_XD_IMM / immediate |
0..65535 | 16 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
MOVK / immediate |
0..65535 | 16 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
MOVK / halfword_position |
0..3 | 2 位;零扩展/枚举 | scale=16;alignment=16 | 选择目标位 [16n+15:16n] |
ADD_IMM / immediate |
0..4095 | 12 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
MUL_IMM / immediate |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 字面字段值 |
SUB_IMM / immediate |
0..4095 | 12 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
DC_PRELOAD_XN_IMM / offset |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 相对地址寄存器的有符号字节偏移 |
CMP_IMM / immediate |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 字面字段值 |
LDP_XI_XJ_XN / offset |
-32..31 | 6 位;符号扩展 | scale=1;alignment=1 | 成对访问的有符号偏移 |
STP_XI_XJ_XN / offset |
-32..31 | 6 位;符号扩展 | scale=1;alignment=1 | 成对访问的有符号偏移 |
ST_ATOMIC_XD_XN_XM / atomic_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 原子存储控制模式 |
ST_ATOMIC_XD_XN_IMM12 / offset |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 有符号字节偏移 |
ST_ATOMIC_XD_XN_IMM12 / atomic_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 原子存储控制模式 |
ST_DEV_XD_XN_IMM12 / offset |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 字面字段值 |
LD_DEV_XD_XN_IMM12 / offset |
-2048..2047 | 12 位;符号扩展 | scale=1;alignment=1 | 字面字段值 |
MOVX8_XD_IMM / immediate |
0..65535 | 16 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
JUMP / pc_displacement |
-32768..32767 | 16 位;符号扩展 | scale=4;alignment=4 | 有符号指令字位移;标签字节位移除以 4 后重定位 |
JUMPC / pc_displacement |
-32768..32767 | 16 位;符号扩展 | scale=4;alignment=4 | 有符号指令字位移;标签字节位移除以 4 后重定位 |
DCCI / mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 缓存维护操作模式 |
CALL / pc_displacement |
-32768..32767 | 16 位;符号扩展 | scale=4;alignment=4 | 有符号指令字位移;标签字节位移除以 4 后重定位 |
LOOP / pc_displacement |
0..255 | 8 位;零扩展/枚举 | scale=4;alignment=4 | 无符号指令字位移;标签按 4 字节对齐 |
SET_FLAG / event |
0..7 | 3 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
WAIT_FLAG / event |
0..7 | 3 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
ADRP / page_displacement |
-32768..32767 | 16 位;符号扩展 | scale=4096;alignment=4096 | PC 低 12 位清零后加有符号页位移 |
DSB / mode |
0..3 | 2 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
JUMPCMP / pc_displacement |
-16..15 | 5 位;符号扩展 | scale=4;alignment=4 | 公共字面量形式中的有符号指令字位移 |
WAIT_FLAG_DEVI / event |
0..255 | 8 位;零扩展/枚举 | scale=1;alignment=1 | 字面字段值 |
VCADD / reduce_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 归约/控制模式 |
VCMAX / reduce_mode |
0..3 | 2 位;零扩展/枚举 | scale=1;alignment=1 | 归约/控制模式 |
VCMIN / reduce_mode |
0..3 | 2 位;零扩展/枚举 | scale=1;alignment=1 | 归约/控制模式 |
VADDRELUCONV / conversion_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 融合转换/控制模式 |
VSUBRELUCONV / conversion_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 融合转换/控制模式 |
VSHR / shift_mode |
0..1 | 1 位;零扩展/枚举 | scale=1;alignment=1 | 移位/控制模式 |
scale 是字段单位到运行量的倍率;alignment 是标签或地址的最低对齐要求。
地址模式、归约模式等枚举已经固定可写范围,但数值 0/½/3 的公共符号名未暴露时,文档不会擅自命名。
越界值不会可靠地自动截断。负数 MOV 和部分大常量还会进入后端错误路径;源码必须使用表内值。
后缀矩阵¶
后缀是助记符的一部分,顺序不能交换。常见层次为:
同一 dtype 在不同指令上不自动合法。逐指令页列出了汇编器实际接受的每个“CPU + 后缀 + 操作数形状 + 完整文本 + 机器字”组合;表外组合必须重新验证。
表中的 alignment 描述该立即数字段或标签的编码粒度,不等于有效地址的运行时数据对齐。例如 LD.b64 X0, [X1], #1 可以编码,但执行时仍会按 8 字节访问宽度检查最终地址。完整规则见地址与数据对齐。