[2015][Febrero][Problema 2]

[2015][Febrero][Problema 2]

de Andres Bello Ureta -
Número de respuestas: 4

LETRA

Buenas, viendo la solución de este ejercicio no puedo entender el razonamiento que hay por detras de las siguientes instrucciones:

SHL AX, 1
ADD AX, DI
ADD AX, DI

No entiendo porque es que se hace un shift.

Tampoco me queda claro porque sua dos veces DI a AX.

Gracias!


En respuesta a Andres Bello Ureta

Re: [Examen 02/2015][Problema 2]

de Federico Rivero -

Estimado:

Las dos preguntas tienen la misma respuesta. Cada short ocupa 2 bytes. La multiplicación que se hace permite calcular el índice dentro de la matriz a la cual se quiere acceder, pero como cada short ocupa 2 bytes, la dirección de memoria que permite acceder al índice calculado es índice * 2 (de ahí el shl 1 y el add dos veces).

Cualquier cosa si no se entiende preguntá.

Saludos,

      Federico

En respuesta a Federico Rivero

Re: [Examen 02/2015][Problema 2]

de Andres Bello Ureta -

Ah genial, pensaba el los short eran de 8 bits y los int de 16.

Gracias!

En respuesta a Andres Bello Ureta

Re: [Examen 02/2015][Problema 2]

de Leandro Ezequiel Dominguez Perez -

Con respecto a este ejercicio:
Teniendo en cuenta que se inicializan DI y SI en 0 (por lo tanto comienzan siendo iguales a menos que se modifiquen):

¿No se genera un loop por el tercer JUMP (JE for2)?
Si no estoy entendiendo algo mal, en caso de que se cumpla DI=SI el programa salta a for2:, como allí ninguna de las 2 entradas es modificada, haría lo mismo indefinidamente.

Desde ya gracias!