ARM SRS 汇编指令用法

ARM 193浏览

SRS作用:

存储返回状态。

语法

SRSaddr_mode #mode{!}

其中:

addr_mode 是以下指令之一:

IA 在每传送后加地址

IB 在每传送之前加地址

DA 在每传送后小地址

DB 在每传送之前小地址

FD 满的栈;

ED 栈;

FA 满的栈;

EA

mode 指定模式的编号,该模式所编r13 被用作基址寄存器

注ARM处理器模式

ARM 处理器支持多达七个处理器式,具体要取决于体系结构的版本。这些模

式是:

0b10000 User

0b10001 FIQ 快速中

0b10010 IRQ

0b10011 Supervisor

0b10111 Abort

0b11011 Undefined

0b11111 System ARM 体系结构 v4 及以上版本)。

User 式外的所有式称为特权 式。

务保护的应用程序通常在 [User] 式下行。有些嵌入式应用程序可

完全运行在 [Supervisor] [System] 式下。

进入[User] 式外的所有式是为了处理常或访问特许的资源

! 是一个可选的后缀。如果存在 !,则最地址被写回到 r13 为基址

寄存器的编寄存器中。

操作

SRS mode 指定的模式的 r13 所含地址及后续地址处,存储当前模式的 r14

SPSR。也可选择是否更新mode 指定的模式下的 r13。这与用于访问STM

令的常用法兼容,请参阅第 4-20 页的LDM STM

可以从一个自动选择的状态中,使用 SRS 指令来存储一个不同上的异常处理程

序的返回状态。

体系结构

SRS 指令在 v6 及更高版本 ARM 体系结构中有

示例

R13_usr EQU 16

SRSFD #R13_usr

不正确的示例

SRSFD #32! ; there is no mode 32

SRSEQFD #R13_usr ; SRS is always unconditional