[Assembly] Conta i numeri primi

Messaggioda jarrod » 27/11/2017, 14:39

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:
Codice:
#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:
Codice:
.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..
jarrod
Junior Member
Junior Member
 
Messaggio: 119 di 358
Iscritto il: 26/02/2017, 13:23

Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite