今天看到如下的代码,相信好多高手也看到过了了,<br />InitStacks<br /> mrs r0,cpsr<br /> bic r0,r0,#MODEMASK<br /> orr r1,r0,#UNDEFMODE|NOINT<br /> msr cpsr_cxsf,r1 ;UndefMode<br /> ldr sp,=UndefStack<br /> <br /> orr r1,r0,#ABORTMODE|NOINT<br /> msr cpsr_cxsf,r1 ;AbortMode<br /> ldr sp,=AbortStack<br /><br /> orr r1,r0,#IRQMODE|NOINT<br /> msr cpsr_cxsf,r1 ;IRQMode<br /> ldr sp,=IRQStack<br /> <br /> orr r1,r0,#FIQMODE|NOINT<br /> msr cpsr_cxsf,r1 ;FIQMode<br /> ldr sp,=FIQStack<br /><br /> bic r0,r0,#MODEMASK|NOINT<br /> orr r1,r0,#SVCMODE<br /> msr cpsr_cxsf,r1 ;SVCMode<br /> ldr sp,=SVCStack<br /> ;USER mode has not be initialized.<br /> <br /> mov pc,lr <br /> ;The LR register won't be valid if the current mode is not SVC mode.<br />以上的代码和<br />InitStacks<br /> mrs r0,cpsr<br /> bic r0,r0,#MODEMASK|NOINT<br /> orr r1,r0,#SVCMODE<br /> msr cpsr_cxsf,r1 ;SVCMode<br /> ldr sp,=SVCStack<br /> ;USER mode has not be initialized.<br /> <br /> mov pc,lr <br /><br />有什么区别,看不出来啊。请教各位大侠为什么要怎么写?真的不明白怎么回事。<br /> |
|