Advertisement
Guest User

Untitled

a guest
Nov 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.13 KB | None | 0 0
  1. __declspec(naked)int somma(int a, int b) {
  2. __asm {
  3. push ebp //fisso
  4. mov ebp, esp //fisso ma in questo caso mnon serviva
  5.  
  6.  
  7. mov eax,dword ptr [ebp+8]
  8. add eax, dword ptr[ebp + 12]
  9.  
  10.  
  11. mov esp,ebp //fisso ma in questo caso mnon serviva, perchè non ho fatto alcuna push,canella le variabili locali nel caso le abbiamo utilizzate
  12. pop ebp
  13. ret //fisso
  14.  
  15. }
  16. }
  17. __declspec(naked)int sommavettore(int *v, int b) {
  18. __asm {
  19. push ebp //fisso
  20. mov ebp, esp
  21. push esi
  22. push ebx
  23.  
  24. mov ebx, dword ptr[ebp + esi]//solo il primo indirizzo del vettore
  25. mov esi,0
  26. Inizio:
  27. cmp esi, dword ptr[ebp + 12]
  28. je Fine
  29. add eax,dword ptr[ebx+esi*4]
  30. mov dword ptr[ebx + esi * 4],esi //questo nel caso io voglia scrivere all'interno di un vettore
  31.  
  32. inc esi
  33. Jmp Inizio
  34.  
  35. Fine:
  36. mov esp, ebp //fisso ma in questo caso mnon serviva, perchè non ho fatto alcuna push,canella le variabili locali nel caso le abbiamo utilizzate
  37. pop esi
  38. pop ebp
  39. ret
  40. }
  41. }
  42. int main() {
  43. int v[5] = { 1,2,3,4,5 };
  44. printf("somma= %d \n", somma(5, 7));
  45. printf("sommavettore= %d ", sommavettore(v,5));
  46. getchar();
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement