[Assembly] Conta i numeri primi
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:
Invece il file.asm è questo:
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..
#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..