@[toc]
堆栈指向分类
根据堆栈指针的指向的方向不同,可以划分为向上生成型和向下生成型。
向上生成型:
- 随着数据的入栈,堆栈的指针逐渐增大,称为:递增堆栈。
向下生成型:
- 随着数据的入栈,堆栈的指针逐渐减小,称为:递减堆栈。
堆栈指向数据分类
根据堆栈指针是否指向数据,可以划分为满堆栈和空堆栈。
满堆栈:
- 堆栈指针指向最后压入堆栈的有效数据项。
空堆栈:
- 堆栈指针指向下一个要存放数据的空位置。
满递增与满递减
用于描述寄存器或内存中的值在递增或递减操作时,增加或减少一个完整的数据单元的大小。
数据单元的大小通常由操作系统或架构规定,可以是字节、字、双字等。
满递增是按照完整的数据单元大小增加,不论数据单元的大小是多少,递增时都会增加整个数据单元的大小。
满递减是按照完整的数据单元大小递减,不论数据单元的大小是多少,递减时都会减少整个数据单元的大小。
假设在堆栈中存储 R0
、R1
、R2
寄存器的值,按照满递增与满递减存储,如下所示:
先进行递增或者递减,然后再存入数据。
空递增与空递减
同样也是用于描述寄存器或内存中的值在递增或递减操作时,增加或减少一个空间单元的大小。
空间单元的大小可能不是完整的数据单元大小,而是根据指定的步长进行增加或减少。
空递增是按照指定的步长或空间单元大小增加,可以根据需要自定义递增步长。
空递减是按照指定的步长或空间单元大小递减,可以根据需要自定义递减步长。
直接指向存入的数据。