|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6] 0 }7 }, {9 T D# b) u$ P
ADD SP, R4, #68 3 V, ~9 q3 b$ ?. R u) d$ [
LDR LR, [SP, #-8] 6 V- y3 E. K. h, h3 ]( e
MSR CPSR_c, #(NoInt | SVC32Mode)
) Y9 G# I6 N. a4 Q$ A+ t sMOV SP, R4 LDMFD SP!, {R4,R5} * ~3 b. {/ `2 I; D( ^2 l
LDR R3, =OsEnterSum
5 g: Q% _3 R4 o. F5 xSTR R4, [R3]
% C m0 O* Z) e4 \; }4 g- ~; L8 PMSR SPSR_cxsf, R5
+ m! |# ]; ?: ?: c6 S9 J/ LLDMFD SP!, {R0-R12, LR, PC }^ / Y# B/ B+ M# U& p
请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉 0 O& T+ p* t- S: f$ ]& z1 n
# N9 C' w/ k7 o4 y$ d
|
|