Problema con guardado en la pila

Problema con guardado en la pila

de Steeven Pereira Reyes -
Número de respuestas: 1

Buenass, tengo una duda con el tema de guardar datos en la pila.

Estoy intentando guardar en 'a' el valor de max_entities y luego este mismo en la pila(push af), ya que hago un call después que la modifica. Luego de que el call acaba, hago pop af para recuperar el valor de 'a', pero al hacerlo no estoy recuperando el valor de 'a'. No se si se debe a que dentro del call uso la pila para guardar un valor de bc y luego no lo recupero.

Cualquier ayuda graciass

En respuesta a Steeven Pereira Reyes

Re: Problema con guardado en la pila

de Nerea Llorens Martínez -
En la pila lo último que metes es lo primero en salir. Si antes de hacer el call metes en la pila af y quieres recuperarlo dentro de ese call, lo que recuperas con el pop es la dirección que ha almacenado el call (que es lo último que se ha metido en la pila). No se si te refieres a eso o si después de hacer el ret vuelves a recuperar a de la pila.

En cualquier caso, yo no almacenaría en "a" el valor de "max_entities" si no lo vas a usar en ese momento, ya que el valor se mantiene en esa dirección de memoria. Si lo que quieres usar es ese "a" que dices de recuperar con "pop af", entonces puedes hacer "ld a, (max_entities" después de volver del call al que llamas.