(Consulta) (Bajo nivel) ¿Las variables se guardan en la pila o en el ejecutable?

Iniciado por class_OpenGL, 24 Agosto 2016, 23:54 PM

0 Miembros y 1 Visitante están viendo este tema.

class_OpenGL

Hola, muy buenas, me explico. La pregunta que tengo es dónde se guardan las variables. Yo tenía entendido que se guardan en un especie de bloque de memoria asignado para cada programa llamado 'pila', pero según estoy leyendo por ahí, las variables pueden ser guardadas entre código y código del ejecutable. En ensamblador, por ejemplo, podríamos escribir 'mylabel: db 'Message here', 0' (ejemplo de Internet). En ese espacio del ejecutable, se guarda una serie de bytes que contienen "Message here", por lo que podrías decir que esa memoria está entre código y código, no en la 'pila'

Espero que mi duda se haya entendido, no sabía muy bien como explicarla... ¡Muchas gracias de antemano!

Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL

dopr

Puedes guardarlas en ambos lugares, pero si son variables no te recomiendo almacenarlas en el ejecutable ya que estaría cambiando constantemente.
High Hopes.

MCKSys Argentina

Las variables se guardarán en uno u otro lado dependiendo de cómo las definas y cómo las trabaje el lenguaje.

Siguiendo tu ejemplo de ASM, ese "string" que defines se guardará en la sección de datos del ejecutable.

Cuando la utilices (y dependiendo de cómo lo hagas), se copiará al stack la misma o un puntero a la misma.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


class_OpenGL


Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL