[2019][Diciembre][Problema 2]

[2019][Diciembre][Problema 2]

de Javier Gayoso Mondino -
Número de respuestas: 5
Estimados,
Una consulta, cuando se acomoda la pila no debería ir al revés?

Así:

MOV [BP +6], CX;  
MOV [BP +4], AX;  

ya que según la letra:  PUSH “arbol”
                                        CALL busco_minmax
                                        POP “minimo”
                                        POP “maximo”

de ser así, pueden corregir la solución?
Ahora me surge otra duda, por este error, se considera mal el ejercicio entero?
Muchas gracias,
saludos.



En respuesta a Javier Gayoso Mondino

Re: Examen Diciembre 2019 [Problema 2]

de Federico Rivero -

Estimado,

La solución es correcta, al llegar a la etiqueta fin, el stack se ve como a continuación:


bp -->
BP
bp+2
BP
bp+4
IP
bp+6
rama

entonces,  lo que hay que hacer es dejar la dirección de retorno en BP + 2 y los parámetros en BP + 4 y BP + 6, de forma que al popear todo y ejecutar RET, lo que quede en el tope de la pila sean los dos parámetros.

En este caso hay que 'subir' la dirección de retorno porque se devuelve un parámetro más que los que se reciben, eso se realiza con las líneas:

MOV DX, [BP + 4]
MOV [BP + 2], DX // acomodo dirección de retorno

y luego las siguientes dos líneas simplemente ubican los resultados.

Saludos,
Federico


En respuesta a Federico Rivero

Re: Examen Diciembre 2019 [Problema 2]

de Javier Gayoso Mondino -
Gracias Federico,
Tal vez me exprese mal, me refería a la ubicación de los resultados.
Según la solución por lo que entiendo en AX queda el mínimo, y como luego del CALL primero se hace el POP del mínimo debería quedar en el tope de la pila, ósea digamos mas abajo así como te había puesto,
MOV [BP +6], CX;
MOV [BP +4], AX;
al revés de lo que esta en la solución, esta bien?
te pregunto nuevamente sobre el criterio, si te confundís en esto, se considera todo el ejercicio mal?
muchas gracias.
En respuesta a Javier Gayoso Mondino

Re: Examen Diciembre 2019 [Problema 2]

de Gustavo Brown -

Correcto Javier,

  Estaban intercambiados los desplazamientos en la solución. Ahora quedó arreglado.

Sobre si en problema de examen te confundís en esto no se considera que esté mal el ejercicio.

Saludos,
  Gustavo

En respuesta a Gustavo Brown

Re: Examen Diciembre 2019 [Problema 2]

de Javier Gayoso Mondino -
Gracias Gustavo,
otra consulta,
para la parte b)
En el caso que se considere o se reserve la posición cero del segmento para el null, al 2^16 bytes posibles para guardar los nodos, se le resta 2 Bytes?
Otra cosa, no me doy cuenta cuando considerarlo o no? o es opcional?
muchas gracias,
saludos.