在 ARM 汇编中,SVC(Supervisor Call)指令用于从用户模式切换到特权模式(如 Supervisor 模式),以便执行操作系统内核提供的服务。它通常用于系统调用。
具体作用
触发异常 :执行 SVC 指令时,处理器会进入 Supervisor 模式,并跳转到异常向量表中的 SVC 异常处理程序。
传递参数 :SVC 指令后的立即数可作为参数传递给异常处理程序,帮助识别具体的系统调用。
语法
assembly
复制代码
SVC #
示例
assembly
复制代码
MOV R0, #4 @ 将参数 4 放入 R0
SVC #0 @ 调用系统调用,立即数 0 表示具体调用
处理流程
执行 SVC 指令 :处理器切换到 Supervisor 模式,并跳转到 SVC 异常处理程序。
读取参数 :处理程序读取 SVC 指令后的立即数,确定具体操作。
执行服务:根据参数执行相应的内核服务。
返回用户模式:服务完成后,处理器返回用户模式并继续执行后续指令。
总结
SVC 指令用于系统调用,允许用户程序请求操作系统服务。通过立即数传递参数,操作系统根据参数执行相应操作。