Advertisement
YauhenMardan

UP_asm_3.1

May 21st, 2018
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int n = 4;
  6.  
  7. int main() {
  8. int M[n][n] = { {3,2,4,2},{4,3,2,6},{2,8,7,6},{3,3,2,4} };
  9. cout << "Old matrix" << endl;
  10. for (int i = 0; i < n; i++)
  11. {
  12. for (int j = 0; j < n; j++)
  13. {
  14. cout << M[i][j] << " ";
  15. }
  16. cout << endl;
  17. }
  18. cout << "Type k" << endl;
  19. int k;
  20. cin >> k;
  21.  
  22. _asm
  23. {
  24. mov eax,k
  25. dec eax
  26. mov k,eax
  27. mov ecx,n
  28. beg_:
  29. //{
  30. sub ecx,1
  31. //address
  32. mov eax, ecx //i
  33. mov ebx, n
  34. imul ebx //i*n
  35. add eax, k
  36. mov esi, eax
  37.  
  38. mov eax, k
  39. mov ebx, n
  40. imul n
  41. add eax, ecx
  42. mov edi, eax
  43. //swap
  44. mov eax, M[esi*4]
  45. mov ebx, M[edi*4]
  46. mov M[esi*4], ebx
  47. mov M[edi*4], eax
  48. add ecx,1
  49. //}
  50. loop beg_
  51. }
  52. cout << "New matrix" << endl;
  53. for (int i = 0; i < n; i++)
  54. {
  55. for (int j = 0; j < n; j++)
  56. {
  57. cout << M[i][j] << " ";
  58. }
  59. cout << endl;
  60. }
  61. system("pause");
  62. return 0;
  63.  
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement