原因:系统复位后,SP内容为07H;如果不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放;如需使用深度较大的堆栈时,将会影响到工作寄存器的使用。
本教程操作环境:windows10系统、Dell G3电脑。
堆栈是内部数据RAM区中,数据先进后出或后进先出的区域。其具体功能有两个:保护断点和保护现场。
堆栈指示器(SP)是一个8位寄存器,存放当前的堆栈栈顶所指存储单元地址的。数据存入堆栈或从堆栈取出数据时,堆栈指示器的内容会作为堆栈操作指令执行过程的一部分而自动增量或减量。
在程序设计时,为什么还要对SP重新赋值?
系统复位后,SP内容为07H。如不重新定义,则以07H为栈底,压栈的内容从08H单元开始存放;如需使用深度较大的堆栈时,将会影响到工作寄存器的使用。所以要对SP进行重新的赋值,使堆栈区设定在片内数据·RAM区中的某一空白区域内,堆栈深度以不超过片内RAM空间为限。
更多相关知识,请访问常见问题栏目!
以上是在程序设计时,为什么还要对sp重新赋值的详细内容。更多信息请关注PHP中文网其他相关文章!