Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int vettPrimi(int *v, int *c, int l);
- int main() {
- int v[] = { 1,2,3,4,5,6,7,8,9,10 };
- int c[] = { 0,0,0,0,0,0,0,0,0,0 };
- printf("Sono stati trovati %d numeri primi", vettPrimi(v, c, 10));
- for (int i = 0; i < 10; i++) {
- if(c[i])
- printf("%d ", v[i]);
- }
- getchar();
- }
- .586
- .model flat
- .code
- _vettPrimi proc
- push ebp
- mov esp, ebp
- push esi
- push edi
- push ebx
- mov ebx, dword ptr[ebp+8]
- mov ecx, dword ptr[ebp+12]
- mov eax, 0
- mov esi, 0
- ciclo:
- cmp esi, dword ptr[ebp+12]
- je fine
- call primi
- inc esi
- jmp ciclo
- fine:
- pop ebx
- pop edi
- pop esi
- mov ebp, esp
- pop ebp
- ret
- _vettPrimi endp
- primi proc
- ;ebx contiene il vettore con i valori
- ;ecx contiene il vettore delle posizioni
- ;esi contiene l'indice corrente
- push eax
- mov edi, 2
- ciclo:
- cmp edi, dword ptr[ebx+esi*4]
- jge fineciclo
- mov eax, dword ptr [ebx+esi*4]
- cdq
- div edi
- inc edi
- cmp edx,0
- je ciclo
- pop eax
- jmp finefunz
- fineciclo:
- pop eax
- inc eax
- mov dword ptr[ecx+esi*4], 1
- finefunz:
- ret
- primi endp
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement