Examen Marzo 2012 - Problema 2

Examen Marzo 2012 - Problema 2

de Diego Pereira Barneche -
Número de respuestas: 0

Hola, tenemos la duda de si la solución que hicimos es correcto, ya que es considerablemente diferente a la planteada.
La pongo aca:


proc PesoMatriz

   xor CX,CX         // Contador de lugares de memoria
   mov DX,CANT_MATRICES
   shl DX,5            // DX tendra la cantidad de lugares de memoria que habrá que recorrer
   xor BX,BX         // Recorredor del arreglo con PESO_MEMORIA
   xor AX, AX        // Registro donde se calculara el peso de la mtriz
FOR:                   // For que recorre todos los lugares de memoria utilizados por las matrices
   cmp DX,CX
   jz FIN
   cmp CX,0        // Caso de la primera posición de la primer matriz
   jz CasoNormal // Caso General
   push CX          // Se guarda CX para hacerle un modulo 32
   and CX, 0x1F  // Se le hace el modulo 32
   cmp CX,0       // Vemos si es multiplo de 32
   pop CX           // Recuperamos
   jz Casomodulo
   jmp CasoNormal
CasoNormal:
   ADD AX, ES:[MATRICES + CX]    // Le sumamos a AX el valor de la posición actual de la matriz
   INC CX                                        // avanzamos de posición
   jmp FOR
CasoModulo:
   MOV DS:[PESO_MATRICES + BX],AX   // Guardamos el peso de la matriz ya calculado en el lugar que corresponda
   xor AX,AX                                            // Dejamos AX en 0 para empezar a calcular el peso de la nueva matriz
   inc BX                                                  // Avanzamos en el contador de peso
   jmp CasoNormal
FIN:
   ret




Esperamos respuesta,


Saludos!