|
满递减堆栈中 SP指向最下面一个压入的数据
那就是说再向堆栈压数据的话就是先SP-4 在放数据了
我的问题是
当栈空的时候 SP指向哪
启动代码中有这样一句
StackSvc DCD SvcStackSpace + (SVC_STACK_LEGTH - 1)* 4
按他这样stacksvc指栈顶 满递减压栈
那数据岂不是从第2个字开始存储吗 栈顶岂不是没有数据了
假设堆栈空间是100~199 满栈时 我执行压栈指令 是否能继续压 还是能编译错误
栈空时 是否能继续推?(哪怕推出来的不知道是什么数据)
启动代码最开始定义了5个堆栈长度
SVC_STACK_LEGTH EQU 0
FIQ_STACK_LEGTH EQU 0
IRQ_STACK_LEGTH EQU 256
ABT_STACK_LEGTH EQU 0
UND_STACK_LEGTH EQU 0
这样可以吗 除了IRQ其他的都是0
SvcStackSpace SPACE SVC_STACK_LEGTH * 4 ;Stack spaces for Administration Mode 管理模式堆栈空间
这条语句 管理模式的堆栈空间是系统自动分配的吗? 还是有其他语句制定具体地址
如果SVC_STACK_LEGTH=100 那就是说 可能在100~500 也可能在200~600 是吗
AREA Stacks, DATA, NOINIT
StackUsr
这段语句里没有给出USR的具体地址
是不是默认其他未分配的空间都可以当做USR的堆栈
初学者可能问题很低级
书上实在找不到解释
希望各位大侠能指点指点
谢谢 |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|