[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..