En informática , la zona roja es un área de tamaño fijo en el marco de pila de una función debajo (para una pila de empuje hacia abajo) del puntero de pila actual que está reservado y es seguro de usar. Se usa más comúnmente en funciones de hoja (funciones que no llaman a otras funciones) para asignar memoria de pila adicional, sin mover el puntero de pila, lo que ahorra una instrucción.
La presencia de una zona roja depende de la convención de llamada . Los sistemas x86-64 que utilizan la ABI System V AMD64 (incluidos Linux y macOS ) utilizan una zona roja de 128 bytes que comienza directamente debajo del valor actual del puntero de pila. [1] [2] La cadena de herramientas OpenRISC asume una zona roja de 128 bytes. [3] Microsoft Windows no tiene el concepto de zona roja en x86 . [4] De hecho, la ABI establece explícitamente que la memoria más allá del puntero de pila es volátil y puede ser sobrescrita por depuradores o controladores de interrupciones. [5] [6] Sin embargo, Microsoft Windows tiene una zona roja de 16 bytes en IA-64 , 8 bytes en AArch32 y 16 bytes en AArch64 . [6]
La zona roja está a salvo de modificaciones por parte de controladores de interrupciones / excepciones / señales .
{{cite book}}
: Mantenimiento de CS1: falta la ubicación del editor ( enlace )