4.10.2. SVC

超级用户调用。

语法

SVC{cond} #immed

其中:

cond

是一个可选的条件代码(请参阅条件执行)。

immed

是一个表达式,其取值为以下范围内的一个整数:

  • 在 ARM 指令中为 0 到 224–1(24 位值)

  • 在 16 位 Thumb 指令中为 0-255(8 位值)。

用法

SVC 指令会引发一个异常。 这意味着处理器模式会更改为超级用户模式,CPSR 会保存到超级用户模式 SPSR,并且执行会跳转到 SVC 向量(请参阅《开发指南》中的第 6 章 处理处理器异常)。

处理器会忽略 immed。 但异常处理程序会获取它,借以确定所请求的服务。

Note

作为 ARM 汇编语言开发成果的一部分,SWI 指令已重命名为 SVC。 在此版本的 RVCT 中,SWI 指令反汇编为 SVC,并提供注释以指明这是以前的 SWI

条件标记

此指令不更改标记。

体系结构

此 ARM 指令可用于所有版本的 ARM 体系结构。

此 16 位 Thumb 指令可用于 ARM 体系结构的所有 T 变体中。

Copyright © 2002-2008 ARM Limited. All rights reserved.ARM DUI 0204IC
Non-Confidential