Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.09 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int vettPrimi(int *v, int *c, int l);
  4.  
  5. int main() {
  6. int v[] = { 1,2,3,4,5,6,7,8,9,10 };
  7. int c[] = { 0,0,0,0,0,0,0,0,0,0 };
  8.  
  9. printf("Sono stati trovati %d numeri primi", vettPrimi(v, c, 10));
  10. for (int i = 0; i < 10; i++) {
  11. if(c[i])
  12. printf("%d ", v[i]);
  13. }
  14. getchar();
  15. }
  16.  
  17. .586
  18. .model flat
  19. .code
  20.  
  21. _vettPrimi proc
  22. push ebp
  23. mov esp, ebp
  24. push esi
  25. push edi
  26. push ebx
  27.  
  28.  
  29. mov ebx, dword ptr[ebp+8]
  30. mov ecx, dword ptr[ebp+12]
  31. mov eax, 0
  32. mov esi, 0
  33.  
  34. ciclo:
  35. cmp esi, dword ptr[ebp+12]
  36. je fine
  37. call primi
  38. inc esi
  39. jmp ciclo
  40.  
  41. fine:
  42. pop ebx
  43. pop edi
  44. pop esi
  45. mov ebp, esp
  46. pop ebp
  47. ret
  48. _vettPrimi endp
  49.  
  50.  
  51. primi proc
  52. ;ebx contiene il vettore con i valori
  53. ;ecx contiene il vettore delle posizioni
  54. ;esi contiene l'indice corrente
  55. push eax
  56. mov edi, 2
  57.  
  58. ciclo:
  59. cmp edi, dword ptr[ebx+esi*4]
  60. jge fineciclo
  61. mov eax, dword ptr [ebx+esi*4]
  62. cdq
  63. div edi
  64. inc edi
  65. cmp edx,0
  66. je ciclo
  67. pop eax
  68. jmp finefunz
  69.  
  70. fineciclo:
  71. pop eax
  72. inc eax
  73. mov dword ptr[ecx+esi*4], 1
  74.  
  75. finefunz:
  76. ret
  77. primi endp
  78.  
  79. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement