UTNianos

Versión completa: [Aporte] Final Arquitectura 20/02/2014
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Páginas: 1 2
(25-02-2014 15:47)Julian_N escribió: [ -> ]
(24-02-2014 10:48)NothingToxic escribió: [ -> ]Respecto a la 13) me confunde un poco, tenia entendido q cuando se producia un llamado (CALL), en la pila, el IP se guardaba con el valor de la proxima instruccion, a la q se estaba ejecutando antes del llamado, cierto? para luego retornar desde esa posicion, en este caso el IP lo guardan con 0200, pero 0200 es el salto, y respecto al SP, porq seria FFEC exactamente?.

Si no me equivoco el valor de IP que decis es el que se guarda en la pila. Ese valor no lo tenes que tener en cuenta, de eso se encarga la pila. El valor de IP te tenes que escribir en la respuesta es el nuevo valor que toma, que es la direccion a donde apunta el CALL (0200) ya que sigue ejecutando desde ahi.
En cuanto al SP arriba dijeron que seria FFED ya que solo guarda el IP en la pila

Es decir q el IP nuevo lo guardas siempre, en caso de q la llamada sea en otro segmento, guardas el CS tmb, y el SP? tambien siempre?
(25-02-2014 16:55)NothingToxic escribió: [ -> ]
(25-02-2014 15:47)Julian_N escribió: [ -> ]
(24-02-2014 10:48)NothingToxic escribió: [ -> ]Respecto a la 13) me confunde un poco, tenia entendido q cuando se producia un llamado (CALL), en la pila, el IP se guardaba con el valor de la proxima instruccion, a la q se estaba ejecutando antes del llamado, cierto? para luego retornar desde esa posicion, en este caso el IP lo guardan con 0200, pero 0200 es el salto, y respecto al SP, porq seria FFEC exactamente?.

Si no me equivoco el valor de IP que decis es el que se guarda en la pila. Ese valor no lo tenes que tener en cuenta, de eso se encarga la pila. El valor de IP te tenes que escribir en la respuesta es el nuevo valor que toma, que es la direccion a donde apunta el CALL (0200) ya que sigue ejecutando desde ahi.
En cuanto al SP arriba dijeron que seria FFED ya que solo guarda el IP en la pila

Es decir q el IP nuevo lo guardas siempre, en caso de q la llamada sea en otro segmento, guardas el CS tmb, y el SP? tambien siempre?

Cuando se hace un salto o se llama a una subrutina se guarda el IP (de la siguiente instruccion) en la pila para despues retomar desde donde se dejo. Si la llamada es en otro segmento se guardan el IP y el CS.
El SP no se guarda en ningun lado. El SP (Stack Pointer) es el puntero de la pila donde guardas los valores de IP y CS. El valor de SP disminuye cuando metes algun valor en la pila. En este caso estas metiendo el IP solamente asi que el valor de SP disminuye en 1 segun dijeron mas arriba, entonces pasa de FFEE a FFED. Igual en esto tengo duda porque como IP ocupa dos bytes no se si deberia disminuir en 1 o en 2.

PD: Esto esta en la pagina 195 del libro de Patricia Quiroga
(25-02-2014 15:47)Julian_N escribió: [ -> ]
(24-02-2014 10:48)NothingToxic escribió: [ -> ]Respecto a la 13) me confunde un poco, tenia entendido q cuando se producia un llamado (CALL), en la pila, el IP se guardaba con el valor de la proxima instruccion, a la q se estaba ejecutando antes del llamado, cierto? para luego retornar desde esa posicion, en este caso el IP lo guardan con 0200, pero 0200 es el salto, y respecto al SP, porq seria FFEC exactamente?.

Si no me equivoco el valor de IP que decis es el que se guarda en la pila. Ese valor no lo tenes que tener en cuenta, de eso se encarga la pila. El valor de IP te tenes que escribir en la respuesta es el nuevo valor que toma, que es la direccion a donde apunta el CALL (0200) ya que sigue ejecutando desde ahi.
En cuanto al SP arriba dijeron que seria FFED ya que solo guarda el IP en la pila

Buenas!

Entiendo que el IP se guarda con 0200, pero SP se tiene que guardar con el valor de la instrucción anterior (que terminó de ejecutar), por lo que entiendo que SP debería guardarse con 0100 (que es el valor que estaba en IP).

Claramente, por lo que explican estoy equivocado, pero no entiendo por qué SP toma el valor FFED.

Por otra parte, hay dos SP en el enunciado del Final: SP= FFEE y SP=FFEF.
Tienen idea por qué mencionan dos?


Muchas gracias!
Ya entendí lo del SP, se guarda el puntero (que ya está en SP) y le disminuyo en uno cuando se le pone algo a la pila.
Sigo intrigado con respecto a las dos menciones de SP en el enunciado...

Muchas gracias!
Uno está tachado por lo que entendí
Es cierto, yo tengo el final impreso, pero sin esas correcciones que no había visto... Gracias!
(25-02-2014 17:32)Julian_N escribió: [ -> ]
(25-02-2014 16:55)NothingToxic escribió: [ -> ]
(25-02-2014 15:47)Julian_N escribió: [ -> ]
(24-02-2014 10:48)NothingToxic escribió: [ -> ]Respecto a la 13) me confunde un poco, tenia entendido q cuando se producia un llamado (CALL), en la pila, el IP se guardaba con el valor de la proxima instruccion, a la q se estaba ejecutando antes del llamado, cierto? para luego retornar desde esa posicion, en este caso el IP lo guardan con 0200, pero 0200 es el salto, y respecto al SP, porq seria FFEC exactamente?.

Si no me equivoco el valor de IP que decis es el que se guarda en la pila. Ese valor no lo tenes que tener en cuenta, de eso se encarga la pila. El valor de IP te tenes que escribir en la respuesta es el nuevo valor que toma, que es la direccion a donde apunta el CALL (0200) ya que sigue ejecutando desde ahi.
En cuanto al SP arriba dijeron que seria FFED ya que solo guarda el IP en la pila

Es decir q el IP nuevo lo guardas siempre, en caso de q la llamada sea en otro segmento, guardas el CS tmb, y el SP? tambien siempre?

Cuando se hace un salto o se llama a una subrutina se guarda el IP (de la siguiente instruccion) en la pila para despues retomar desde donde se dejo. Si la llamada es en otro segmento se guardan el IP y el CS.
El SP no se guarda en ningun lado. El SP (Stack Pointer) es el puntero de la pila donde guardas los valores de IP y CS. El valor de SP disminuye cuando metes algun valor en la pila. En este caso estas metiendo el IP solamente asi que el valor de SP disminuye en 1 segun dijeron mas arriba, entonces pasa de FFEE a FFED. Igual en esto tengo duda porque como IP ocupa dos bytes no se si deberia disminuir en 1 o en 2.

PD: Esto esta en la pagina 195 del libro de Patricia Quiroga

Tambien me causa dudas si deberia disminuir en 1 o 2 en posiciones, se supone que cada posicion guarda 1 byte, y el IP tiene 2 bytes, por lo tanto el SP deberia disminuir 2 posiciones y pasar de SP=FFEE a SP=FFEC
Páginas: 1 2
URLs de referencia