Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: class_OpenGL en 24 Agosto 2016, 23:54 pm



Título: (Consulta) (Bajo nivel) ¿Las variables se guardan en la pila o en el ejecutable?
Publicado por: class_OpenGL en 24 Agosto 2016, 23:54 pm
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!


Título: Re: (Consulta) (Bajo nivel) ¿Las variables se guardan en la pila o en el ejecutable?
Publicado por: dopr en 25 Agosto 2016, 12:05 pm
Puedes guardarlas en ambos lugares, pero si son variables no te recomiendo almacenarlas en el ejecutable ya que estaría cambiando constantemente.


Título: Re: (Consulta) (Bajo nivel) ¿Las variables se guardan en la pila o en el ejecutable?
Publicado por: MCKSys Argentina en 25 Agosto 2016, 13:05 pm
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!


Título: Re: (Consulta) (Bajo nivel) ¿Las variables se guardan en la pila o en el ejecutable?
Publicado por: class_OpenGL en 25 Agosto 2016, 14:14 pm
Vaale. De acuerdo. Muchas gracias!