Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.95 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. int main()
  4. {
  5.     double var_a = 3.1;
  6.     double var_b = 2.9;
  7.     double var_c = 1.57;
  8.     double result;
  9.     double zero = 0.0;
  10.     double flag;
  11.     double maxDouble = 1.7e308;
  12.  
  13.     __asm {
  14.         finit
  15.         fld var_a
  16.         fld var_b
  17.         fadd
  18.         fclex
  19.         fld var_c
  20.         fadd
  21.         fstp result
  22.     }
  23.  
  24.     std::cout << "result = " << result << std::endl;
  25.  
  26.     __asm {
  27.         finit
  28.         fstsw ax
  29.         fld zero
  30.         fld zero
  31.         fdiv
  32.         fstsw ax
  33.         //mov eax, cr0
  34.         fstp result    
  35.  
  36.     }
  37.    
  38.     std::cout << "result = " << result << std::endl;
  39.    
  40.     int controlDenormal = 2;
  41.     double one = 1;
  42.     double _result;
  43.     __asm {
  44.         finit
  45.         //fldcw controlDenormal
  46.  
  47.         fld one
  48.         fld maxDouble
  49.         fdiv
  50.  
  51.         fstp result
  52.  
  53.         fld result
  54.         fld one
  55.         fadd
  56.  
  57.         fstp result
  58.     }
  59.     std::cout << "result = " << result << std::endl;
  60.  
  61.     int controlIvalid = 8;
  62.     __asm {
  63.         finit
  64.         fldcw controlIvalid
  65.  
  66.         fld var_a
  67.         fld zero
  68.         fdiv
  69.         fstp result
  70.     }
  71.     std::cout << "Divide by 0: " << result << std::endl;
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement