Duda preservar contexto 8086

Re: Duda preservar contexto 8086

de Gustavo Brown -
Número de respuestas: 0

Valentina,

  Deberás preservar el contexto toda vez que sea requerimiento de la letra (por ejemplo que diga que se debe preservar el valor de los registros) o para garantizar el correcto funcionamiento del sistema. En los demás casos queda a criterio tuyo. 

Por lo tanto el contexto es la dirección de retorno y eventualmente el valor de los registros que la rutina modifica.

En particular para el problema 1 de febrero de 2023 no es un requerimiento de la letra preservar todo el contexto y dado que la solución nuestra es "tail recursive" (es decir que al volver de una llamada recursiva simplemente se retorna el resultado de dicha llamada) el contexto mínimo que debe preservarse es la dirección de retorno de la rutina. Si te fijas en la primer solución vas a ver que al comenzar coloca en AX el valor de la dirección de retorno, luego obtiene los parámetros de la rutina del stack y preserva AX (la dirección de retorno). Al volver de la llamada recursiva intercambia las últimas 2 palabras del stack (quita el resultado del tope del stack y lo pone debajo de la dirección de retorno).

La otra solución es más conservadora y preserva el valor de los registros que la rutina modifica.

Saludos,
  Gustavo