當堆棧指針指向最后壓入堆棧的數據時,稱為滿堆棧(Full Stack);
當堆棧指針指向下一個將要放入數據的空位置時,稱為空堆棧(Empty Stack);
根據對戰的生成方式分為:遞增堆棧(Ascengding Stack)和遞減堆棧(Decending Stack)
遞增堆棧:堆棧由低地址向高地址生成
遞減堆棧:堆棧由高地址向低地址生成
從而形成了四種類型的堆棧工作方式,ARM處理器支持這四種類型的堆棧工作方式。
滿遞減堆棧(Full decending)-FD :堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向最后一個元素。注意,最后一個元素是最后壓入的數據。
空遞減堆棧(Empty descending)---ED:堆棧首部是高地址,堆棧向低地址增長。棧指針總是指向下一個將要放入數據的空位置。
滿遞增堆棧(Full ascending)---FA 堆棧首部是低地址,堆棧向高地址增長。棧指針總是指向堆棧最后一個元素。
空遞增堆棧(Empty ascending)-EA 堆棧首部指向低地址,堆棧向高地址增長。棧指針總是指向下一個將要放入數據的空位置。