[2012][Febrero][Problema 2]

[2012][Febrero][Problema 2]

de Eduardo Jose Mereles Martinez -
Número de respuestas: 3
porque hace shl bx, 5 ? y shl si, 1?, porque no entiendo bien cual es el objetivo de hacer el shl


En respuesta a Eduardo Jose Mereles Martinez

Re: [Examen Febrero 2012][Problema 2]

de Joaquin Velazquez Camacho -
Cada celda de la matriz es un entero, por lo que ocupa 2 byte cada valor, como son matrices 4*4, entonces tengo 16 celdas, luego para representar toda una matriz preciso 32 bytes, al hacer shl bx,5 es como multiplicar por 32 en binario,y lo que haces con eso es pasar de una matriz a otra a lo largo de la memoria. 
Con shl si,1 te moves de una celda a otra en una matriz, este no me quedo muy claro.
Saludos
En respuesta a Joaquin Velazquez Camacho

Re: [Examen Febrero 2012][Problema 2]

de Gerardo Fabian Coscia De Leon -
Lo que no te quedo claro es correcto. Sirve para el mismo concepto que tu explicabas. CX en el contador que va de 0..15. Pero en realidad cada celda es de enteros, por lo que necesitas recorrer de 0..30, no modificas CX(para llevar la cuenta de las  iteraciones) y haces mov si, cx, y luego haces shl si, 1 ahí logras el el (0..30), y accedes con ese indice a cada celda.
En el otro shl si, 1, dentro del "finformatriz" hace lo mismo, ahí necesitas guradar 16 veces cada peso, tu contador DX va de 0..15, como son enteros tenes que acceder de 0..30 (shl si, 1)para guardar cada peso en cada dirección correspondiente. No puse nada que para acceder a cada posición tenes que sumar el indice a MATRICES Y PESOS_MATRICES, para simplificar.
Saludos