|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在《ARM 微控制器基础与实战》程序清单 6.22 的 376 页的 OSIntCtxSW_1 中: LDR R4, [R6]
8 V# r: r2 S; S+ f8 P$ M$ g) bADD SP, R4, #68 4 Z2 j6 t7 }6 j5 Z5 I. @+ S
LDR LR, [SP, #-8]
E c5 V2 d2 y: c) NMSR CPSR_c, #(NoInt | SVC32Mode)
* q) ], @" s" s6 l( CMOV SP, R4 LDMFD SP!, {R4,R5}
. |! w" Q, J% j! u0 B6 L8 @0 NLDR R3, =OsEnterSum
, z {# w5 |8 Z8 x* P% ]STR R4, [R3]
; w5 Q9 O& E0 d" h$ I3 m6 T) |MSR SPSR_cxsf, R5
/ E* U4 [7 Q* o U" S* zLDMFD SP!, {R0-R12, LR, PC }^ 8 }1 S. Q; H1 H. s+ M& ^
请问高手 DMFD SP!, {R0-R12, LR, PC }^是不是恢复新任务工作寄存器和工作模式,LR 寄存器一并得到恢复,那么 ADD 指令后面的 LDR LR, [SP, #-8] 指令是不是可以去掉 : t$ k4 x" g- s8 K9 M& i
- @( j$ M2 w8 i |
|