|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6] 9 B3 [! u% Q7 e; Y. Z" ^0 F: L0 a
ADD SP, R4, #68
5 H0 V0 {7 @$ P3 T: _$ TLDR LR, [SP, #-8] " I- P t4 Z) z P8 {. v/ q% ]
MSR CPSR_c, #(NoInt | SVC32Mode)
, ^7 ]( |9 y" m V/ oMOV SP, R4 LDMFD SP!, {R4,R5} / R; s6 b3 V" V- Q; f- }/ ]
LDR R3, =OsEnterSum & P6 N+ I! Z( q4 F6 B7 n+ T
STR R4, [R3]
) `: X* O! m2 `! C2 b7 U4 jMSR SPSR_cxsf, R5
" P, R$ w* J( b; tLDMFD SP!, {R0-R12, LR, PC }^
1 v. V+ I+ x3 P) [9 a8 }请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉
4 C: \7 ]1 j* H' e H' i8 v1 s. x, _7 ]# m, j! C8 O
|
|