ARM 的SP(R3)堆栈指针
本帖最后由 潇毅 于 2011-10-24 21:31 编辑;在6种模式下切换并设置堆栈指针
MRS R0,CPSR ;把CPSR读取到R0
BIC R0,#0x1f ;低5位清零
LDR R1,=MODE_Fiq ;设置R1 为0b10001
ORR R0,R0,R1 ;R0和R1相或,设置低5位
MSR CPSR_c,R0 ;把R0的值重新赋值到CPSR
LDR SP,=Stact_Fiq
BIC R0,#0x1f;低5位清零
LDR R1,=MODE_Irq
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Irq
BIC R0,#0x1f;低5位清零
LDR R1,=MODE_Svc
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Svc
BIC R0,#0x1f;低5位清零
LDR R1,=MODE_Abort
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Abort
BIC R0,#0x1f;低5位清零
LDR R1,=MODE_Undef
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Undef
BIC R0,#0x1f;低5位清零
LDR R1,=MODE_Sys
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_SysCPU是怎样判别几种模式下的SP的分类的?
如上面的;BIC R0,#0x1f;低5位清零
LDR R1,=MODE_Sys
ORR R0,R0,R1
MSR CPSR_c,R0
LDR SP,=Stact_Sys它是怎样知道sp_sys而不是sp_fiq、sp_irq等。
系统默认的SP是那种模式下的?
还请高手指点? 本帖最后由 潇毅 于 2011-10-24 21:38 编辑
自己顶起,只求版主给点建设性的建议,谢谢了:) ! 回复 2# 潇毅
顶啊
页:
[1]