|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
2 A3 M* ~, R7 b- R" } XADD SP, R4, #68
. ~1 w; \* \! qLDR LR, [SP, #-8] 0 j7 H2 ~ D0 W* P+ ^) M
MSR CPSR_c, #(NoInt | SVC32Mode)
" c6 i& u, }# a6 k+ `- K: C! XMOV SP, R4 LDMFD SP!, {R4,R5}
- K: a% C: s- Q# n- U" p& oLDR R3, =OsEnterSum
- X) f' f) N4 M# F5 xSTR R4, [R3]
8 ^' e0 I# \/ G- q i" j! q/ GMSR SPSR_cxsf, R5 ; k4 d L; Y+ v |
LDMFD SP!, {R0-R12, LR, PC }^
R( A' r6 _# a8 J# y请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉
4 b, }& k, O$ x, \9 }' H. i
, [: p$ x% {. U# l& `+ L |
|