Advertisement
EvgeniiKraaaaaaaav

C++(with asm)

Feb 13th, 2019
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.83 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.  
  26. #include <iostream>
  27. #include <cmath>
  28. using namespace std;
  29.  
  30. int main(int argc, const char * argv[])
  31.  
  32. {
  33.     int a = 0;
  34.     int b = 0;
  35.     int c = 0;
  36.     int d = 0;
  37.     int result_c = 0;
  38.     int result_asm = 0;
  39.     int x = 0;
  40.     int e = 0;
  41.     int dividend = 0;
  42.     int divider = 0;
  43.     int check = 0;
  44.  
  45.     cout << "This program calculate: ((A * X + B) / (C * X + D)) / E \n" ;
  46.    
  47.     cout << "Enter value A: " ;
  48.     cin >> a ;
  49.    
  50.     cout <<"Enter value B: " ;
  51.     cin >> b ;
  52.    
  53.     cout << "Enter value C: " ;
  54.     cin >> c;
  55.    
  56.     cout << "Enter value D: ";
  57.     cin >> d ;
  58.    
  59.     cout << "Enter value E: ";
  60.     cin >> e ;
  61.     while(e == 0)
  62.     {
  63.         cout << "WARNING! :: E cannot be equal 0  \n";
  64.         cout << "Enter value E: ";
  65.         cin >> e ;
  66.     }
  67.    
  68.     cout << "Enter value X: ";
  69.     cin >> x ;
  70.    
  71.     check = c * x + d;
  72.         while(check == 0)
  73.         {
  74.             cout << "WARNING! :: C * X + D cannot be equal 0 \n";
  75.             cout << "Enter value C: ";
  76.             cin >> c ;
  77.            
  78.             cout << "Enter value D: ";
  79.             cin >> d ;
  80.            
  81.             cout << "Enter value X: ";
  82.             cin >> x ;
  83.            
  84.             check = c * x + d;
  85.         }
  86.    
  87.     result_c = ((a * x + b) / (c * x + d)) / e ;
  88.    
  89.     asm
  90.     {
  91.         mov eax , a
  92.         imul x
  93.        
  94.         add eax , b
  95.         mov dividend , eax
  96.     }
  97.    
  98.     if(b)
  99.     {
  100.         asm
  101.         {
  102.             mov eax , c
  103.             imul x
  104.        
  105.             add eax , d
  106.             mov divider , eax
  107.        
  108.             mov eax , dividend
  109.             cdq
  110.             idiv divider
  111.        
  112.             cdq
  113.             idiv e
  114.             mov result_asm , eax
  115.        
  116.         }
  117.         cout << "Result on Asm : " << result_asm;
  118.         cout << "\n" ;
  119.     }
  120.     else
  121.     {
  122.         cout << "Result on Asm : 0";
  123.         cout << "\n" ;
  124.     }
  125.         cout << "Result on C++ : " << result_c;
  126.         cout << "\n" ;
  127.    
  128.    
  129.     return 0;
  130.    
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement