[Assembly] Conta i numeri primi

jarrod
Ciao, ho appena fatto un programma che deve contare quanti numeri primi ci sono all'interno di un vettore, però non capisco per quale motivo non funzioni. Questo è il file.c:
#include<stdio.h>

int primo(int *a, int lunghezza);


int main()
{
	int c;
	int pippo[5] = { 1, 2, 3, 4, 5 };

	c = primo(pippo, 5);
	printf("il numero e' %d", c);


}


Invece il file.asm è questo:
.586
.model flat
.code

_primo proc
push ebp
mov ebp,esp
push ebx
push esi
push edi

mov eax, dword ptr [ebp+8] 
mov esi,eax
dec esi
ciclo:
cmp esi,1
je fineciclo
mov eax, dword ptr [ebp+8]
mov edx,0 ;
div esi ;
cmp edx,0
jne prosegui
mov eax,0
jmp finetutto
prosegui:
dec esi
jmp ciclo

fineciclo:
mov eax,1

finetutto:

pop edi
pop esi
pop ebx
mov esp,ebp
pop ebp
ret

_primo endp

end


Se qualcuno riesce a capire l'errore che sto facendo me lo potrebbe per favore indicare, perchè mi sento abbastanza sicuro del codice che ho scritto..

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.