Advertisement
EvgeniiKraaaaaaaav

LOOP(ASM)

Mar 2nd, 2019
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.76 KB | None | 0 0
  1. //https://vk.com/evgenykravchenko0
  2.  
  3.                 ___                                        ___                   ___    
  4.                /  /\                  ___                 /  /\                 /  /\    
  5.               /  /:/_                /__/\               /  /:/_               /  /:/_  
  6.              /  /:/ /\               \  \:\             /  /:/ /\             /  /:/ /\  
  7.             /  /:/ /:/_               \  \:\           /  /:/_/::\           /  /:/ /:/_
  8.            /__/:/ /:/ /\          ___  \__\:\         /__/:/__\/\:\         /__/:/ /:/ /\
  9.            \  \:\/:/ /:/         /__/\ |  |:|         \  \:\ /~~/:/         \  \:\/:/ /:/
  10.             \  \::/ /:/          \  \:\|  |:|          \  \:\  /:/           \  \::/ /:/
  11.              \  \:\/:/            \  \:\__|:|           \  \:\/:/             \  \:\/:/  
  12.               \  \::/              \__\::::/             \  \::/               \  \::/  
  13.                \__\/                   ~~~~               \__\/                 \__\/    
  14.                             ___                                            
  15.                            /__/\                ___                 ___    
  16.                            \  \:\              /  /\               /  /\    
  17.                             \  \:\            /  /:/              /  /:/    
  18.                         _____\__\:\          /__/::\             /__/::\    
  19.                        /__/::::::::\         \__\/\:\__          \__\/\:\__
  20.                        \  \:\~~\~~\/            \  \:\/\            \  \:\/\
  21.                         \  \:\  ~~~              \__\::/             \__\::/
  22.                          \  \:\                  /__/:/              /__/:/
  23.                           \  \:\                 \__\/               \__\/  
  24.                            \__\/                      
  25. #include "pch.h"
  26. #include <iostream>
  27. #include <cmath>
  28. using namespace std;
  29.  
  30. int main(int argc, const char * argv[])
  31. {
  32.     int x = 0;
  33.     int y = 0;
  34.     int temp = 0;
  35.     int A[3];
  36.     int B[3];
  37.     int C[3];
  38.     int result_asm = 0;
  39.     int result_cpp = 0;
  40.     int temp_a = 0;
  41.     int temp_b = 0;
  42.     int temp_c = 0;
  43.    
  44.     cout << "Prog calc ∑(Ai * X) + ∑(Bi*XY) + ∑(Ci)*Y " << endl;
  45.    
  46.     cout << "Enter value of X : ";
  47.     cin >> x;
  48.    
  49.     cout << "Enter value of Y : ";
  50.     cin >> y;
  51.    
  52.     cout << "Enter elements of array A :" << endl;
  53.     for ( int i = 0; i < 3; i++)
  54.     {
  55.         cout << "  A[" << i << "] : ";
  56.         cin >> A[i];
  57.     }
  58.    
  59.     cout << "Enter elements of array B :" << endl;
  60.     for ( int i = 0; i < 3; i++)
  61.     {
  62.         cout << "  B[" << i << "] : ";
  63.         cin >> B[i];
  64.     }
  65.    
  66.     cout << "Enter elements of array C :" << endl;
  67.     for ( int i = 0; i < 3; i++)
  68.     {
  69.         cout << "  C[" << i << "] : ";
  70.         cin >> C[i];
  71.     }
  72.    
  73.     for ( int i = 0; i < 3; i++)
  74.     {
  75.         temp_a = temp_a + A[i] * x;
  76.         temp_b = temp_b + B[i] * x * y;
  77.         temp_c = temp_c + C[i];
  78.     }
  79.     result_cpp = temp_a + temp_b + temp_c * y;
  80.    
  81.     _asm
  82.     {
  83.         mov eax , x
  84.         imul y
  85.         mov temp , eax
  86.        
  87.         mov eax, 0
  88.         mov esi, 0
  89.         mov ecx, 3
  90.         lea ebx, A
  91.     cycl1 :
  92.         mov eax, [ebx]
  93.         imul x
  94.         add ebx, 4
  95.         add esi, eax
  96.     loop cycl1
  97.         mov x , esi
  98.        
  99.         mov esi, 0
  100.         mov eax, 0
  101.         mov ecx, 3
  102.         lea ebx, B
  103.     cycl2 :
  104.         mov eax, [ebx]
  105.         imul temp
  106.         add esi, eax
  107.         add ebx, 4
  108.     loop cycl2
  109.         mov temp, esi
  110.  
  111.         mov eax, 0
  112.         mov ecx, 3
  113.         lea ebx, C
  114.     cycl3 :
  115.         add eax, [ebx]
  116.         add ebx, 4
  117.     loop cycl3
  118.         imul y
  119.         add eax, temp
  120.         add eax, x
  121.  
  122.        
  123.         mov result_asm , eax
  124.     }
  125.    
  126.     cout << "Result on ASM : " << result_asm << endl;
  127.     cout << "Result on C++ : " << result_cpp << endl;
  128.  
  129.     cin >> x;
  130.    
  131.    
  132.     return 0;
  133. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement