USR_STACK_LEGTH EQU 64
SVC_STACK_LEGTH EQU 0
FIQ_STACK_LEGTH EQU 16
IRQ_STACK_LEGTH EQU 64
ABT_STACK_LEGTH EQU 0
UND_STACK_LEGTH EQU 0
AREA Example7,CODE,READONLY
ENTRY
CODE32
START
MOV R0,#0
MOV R1,#1
MOV R2,#2
MOV R3,#3
MOV R4,#4
MOV R5,#5
MOV R6,#6
MOV R7,#7
MOV R8,#8
MOV R9,#9
MOV R10,#10
MOV R11,#11
MOV R12,#12
BL InitStack;
;
MRS R0,CPSR;
BIC R0,R0,#0x80
MSR CPSR_cxsf,R0;
;
MSR CPSR_c, #0xd0
MRS R0,CPSR
;
MSR CPSR_c,#0xdf
MRS R0,CPSR
HALT
B HALT
InitStack
MOV R0,LR;
MSR CPSR_c,#0xd3
LDR SP,StackSvc
MSR CPSR_c,#0xd2
LDR SP,StackIrq
MSR CPSR_c,#0xd1
LDR SP,StackFiq
MSR CPSR_c,#0xd7
LDR SP,StackAbt
MSR CPSR_c,#0xdb
LDR SP,StackUnd
MSR CPSR_c,#0xdf
LDR SP,StackUsr
MOV PC,R0
StackUsr DCD UsrStackSpace (USR_STACK_LEGTH-1)*4
StackSvc DCD SvcStackSpace (SVC_STACK_LEGTH-1)*4
StackIrq DCD IrqStackSpace (IRQ_STACK_LEGTH-1)*4
StackFiq DCD FiqStackSpace (FIQ_STACK_LEGTH-1)*4
StackAbt DCD AbtStackSpace (ABT_STACK_LEGTH-1)*4
StackUnd DCD UndStackSpace (UND_STACK_LEGTH-1)*4
AREA MyStacks,DATA,NOINIT;ALIGH=2
UsrStackSpace SPACE USR_STACK_LEGTH*4
SvcStackSpace SPACE SVC_STACK_LEGTH*4
IrqStackSpace SPACE IRQ_STACK_LEGTH*4
FiqStackSpace SPACE FIQ_STACK_LEGTH*4
AbtStackSpace SPACE ABT_STACK_LEGTH*4
UndStackSpace SPACE UND_STACK_LEGTH*4
END
问题:intistack scv irq fiq abt und的sp有何关系~我们老师提的~记得也不是很清楚~就是这些的sp是什么吧~我没仔细听~
|