|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
3 \9 @. j* ^; ~& L% ~ADD SP, R4, #68 . Y$ }: Q6 ?, ^: t3 a* [' k# Z
LDR LR, [SP, #-8] : |$ c% e# `, H" l: t, y8 P+ r# I
MSR CPSR_c, #(NoInt | SVC32Mode) ' x2 G9 T- ^- `4 Q9 M" j- g
MOV SP, R4 LDMFD SP!, {R4,R5} 7 J* H" q: I" M8 t
LDR R3, =OsEnterSum * ~" F; r8 F* A! m
STR R4, [R3]
7 |6 Y4 X5 t a0 DMSR SPSR_cxsf, R5 3 v" ]/ P+ w6 [. O
LDMFD SP!, {R0-R12, LR, PC }^ * ?! f& Z4 _. _, [
请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉
/ q! H6 f4 v- Q
8 w) G6 z6 v2 X; g- \$ y |
|