Zona roja (computación)

Dicha región de memoria no es modificada por interrupciones o excepciones.Normalmente, los programas evitan acceder a la zona roja siempre que les sea posible guardar todas las variables locales en los registros enteros, pero es posible que sí se use la zona roja cuando se hace referencia a una variable local de duración muy efímera, (como por ejemplo, un array local) ya que podría ser más costoso para el procesador almacenar dicha variable en un registro local o en la propia pila y después sacarlo (con las consiguientes modificaciones del puntero de pila) que simplemente hacer uso de dicha zona y ahorrar la modificación del puntero de pila.Sin embargo, podemos ver cómo dichas referencias tienen un desplazamiento (offset) negativo; por ejemplo, en la línea 3, se mueve el valor contenido en el registro %rax a una posición 24 bytes por debajo del puntero de pila (-24(%rsp).Dicha posición, que en principio estaría fuera del espacio de memoria del programa actual, está haciendo referencia a la zona roja.Así, el procesador ahorra tener que meter (push) dichas variables en la pila y a continuación sacarlas (pop), con todas las consiguientes modificaciones del puntero de pila, mejorando notablemente la eficiencia.