Advertisement
TShiva

Lab ASM

Mar 13th, 2015
380
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. /*
  4. f(x,y)=(x^2+y^2)/(x-y) if, x!=y
  5. 0,x=y
  6. */
  7. using namespace std;
  8.  
  9.  
  10.  
  11.  
  12. int f(int x, int y){
  13.  
  14.     __asm{
  15.         mov     eax, x
  16.             mov     ebx, y
  17.             cmp     eax, ebx
  18.             je      ZERO
  19.  
  20.             imul    eax; беззнаковое умножение
  21.             imul    ebx, ebx; уммножение вида риемник, источник
  22.             add     eax, ebx
  23.  
  24.  
  25.             mov     ebx, x
  26.             sub     ecx, ebx
  27.  
  28.  
  29.             cdq
  30.             idiv ecx;
  31.  
  32.         jmp END
  33.  
  34.  
  35.         ZERO : mov      eax, 0
  36.            END :
  37.  
  38.  
  39.     }
  40. }
  41.  
  42.     int main()
  43.     {
  44.         int a = 2, b = 3, c;
  45.         __asm{
  46.             mov     eax, b
  47.                 push    eax
  48.                 mov     eax, a
  49.                 push    eax
  50.  
  51.                 call    dword ptr f
  52.                 pop     ebx
  53.                 pop     ecx
  54.                 mov     c, eax
  55.         }
  56.         cout << c << endl;
  57.         system("PAUSE");
  58.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement