3
 sub     lr,lr,#4
 stmfd   sp!,{lr}
 stmfd   sp!,{r0-r14}^
 mrs     r1,spsr
 stmfd   sp!,{r1}
 bl      irqHandler
 ldmfd   sp!,{r1}
 msr     spsr_cxsf,r1
 ldmfd   sp!,{pc}^
 bl      irqHandler

任何人都可以帮我解决这个'^'的意思T_T有什么不同

stmfd   sp!,{r0-r14}^

stmfd   sp!,{r0-r14}

???

4

1 回答 1

5

ARM 手册

^

是一个可选的后缀。您不得在用户模式或系统模式下使用它。它有两个目的:如果 op 是 LDM 并且 reglist 包含 pc (r15),除了正常的多寄存器传输之外,SPSR 被复制到 CPSR 中。这是为了从异常处理程序返回。仅在异常模式下使用它。否则,数据将传入或传出用户模式寄存器,而不是当前模式寄存器。

于 2012-08-23T12:41:29.133 回答