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

ARM架构中svc.n指令#imm操作数含义解析求助

ARM架构中svc.n指令的imm参数含义解析

svc.n是ARM Thumb-2指令集里的超级调用(Supervisor Call)指令,作用是从用户模式切换到特权模式(一般是EL1/Supervisor模式),触发系统调用或执行特权操作。后面的imm是8位立即数(你例子里的#c6对应十六进制0xC6,#ac对应0xAC),这个值的具体含义不是ARM架构硬性规定的,完全由运行的操作系统、固件或软件自行约定。

  • 核心作用:imm值是给特权模式下的异常处理程序传递的“标识”,用来区分不同的系统调用请求。比如不同的imm可能对应不同功能——比如0x0可能是获取进程ID,0xC6可能是内存映射操作,0xAC可能是文件读写相关调用。
  • 十六进制的原因:8位立即数的范围是0x00到0xFF,用十六进制表示刚好两位,比十进制更直观简洁,所以这类指令里的imm通常用十六进制书写。
  • 具体含义的查询方式:如果想知道某个imm值对应什么功能,必须参考当前运行系统的异常处理代码、系统调用规范或固件文档。比如Linux ARM版有自己的系统调用号映射表,自定义RTOS也会有对应的约定。
  • 关于.n后缀:这个后缀表示“narrow”,是Thumb-2的16位指令格式,对应的还有32位的svc指令,但imm参数的作用逻辑是完全一致的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 17:29:54