|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
0 I; P4 C0 r9 \, Y# C9 g( U! qADD SP, R4, #68 ) q+ k% i1 O; z/ B) L
LDR LR, [SP, #-8] % ^% k8 C0 a1 x$ `/ p7 P9 _
MSR CPSR_c, #(NoInt | SVC32Mode) - ]8 [! G+ E0 E
MOV SP, R4 LDMFD SP!, {R4,R5}
7 {, n8 V: m9 q. ]. \LDR R3, =OsEnterSum
# g# F% c6 c/ {; H! _1 wSTR R4, [R3]
. I7 h: U2 D: N0 V! u' xMSR SPSR_cxsf, R5 ( u q F2 ~8 t+ t" R: A
LDMFD SP!, {R0-R12, LR, PC }^
$ {9 K& \6 Q) O& [* J. u4 u请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉
% e7 l, M' P* j8 o; g% l) @8 A: g( b3 X# y2 o' t6 }7 K
|
|