在IRQ.s中有这么一段:
$IRQ_Label SUB LR, LR, #4 ; Calculate the returning address 计算返回地址 STMFD SP!, {R0-R3, R12, LR} ; Protects the task environments 保存任务环境 MRS R3, SPSR ; Protects the status variable 保存状态 STMFD SP, {R3,LR}^ ; Protects SPSR and SP in user status, Notice: DO NOT write back.保存SPSR和用户状态的SP,注意不能回写 ; If the SP is written back, it should be adjusted to its appropriate value later.如果回写的是用户的SP,所以后面要调整SP NOP SUB SP, SP, #4*2
我想知道的是:SUB SP, SP, #4*2 这个是怎么计算的,为什么这样计算? 希望周工能给点意见! |