;void monoMax(unsigned char* bmpIn, ;unsigned char* bmpOut, ;short unsigned int tamFil, ;short unsigned int tamCol,) global monoMax %define matriz1 [ebp + 8]; 32 bits %define matrizres [ebp + 12]; 32 bits(la matriz es de 1/3 del tamaƱo de la original ya que guarda solamente un valor en vez de los 3) %define col [ebp + 16];16 bits (cant en pixeles) %define fil [ebp + 20]; 16 bits (cant en pixeles) %define cont [ebp - 4] ; Variable local section.text monoMax: push ebp mov ebp, esp sub esp, 4 push edi push esi push ebx xor ebx, ebx mov bx, col ;en ebx me guardo la cantidad de pixeles por cada fila mov esi, matriz1 ; cargo la matriz A mov edi, matrizres ; cargo la matriz de resultado mov ecx, fil ; me guardo en ecx la cantidad de filas para el ciclo ciclofilas: mov cont, ebx ; me guardo el contador para cada ciclo de columnas ciclocolumnas: cmp ebx, 0 je continuo xor eax, eax xor edx, ecx mov al, [esi] mov dl, [esi + 1] cmp al, dl cmovb ax, dx mov dl, [esi + 2] cmp al, dl cmovb ax, dx mov [edi], al add esi, 3 add edi, 1 dec ebx jmp ciclocolumnas continuo: mov ebx, cont loop ciclofilas ; continuo hasta terminar con todas las filas fin: pop ebx pop esi pop edi add esp, 4 pop ebp ret