Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.29 KB | None | 0 0
  1. // lab4.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6.  
  7. using namespace std;
  8.  
  9. int _tmain(int argc, _TCHAR* argv[])
  10. {
  11.     int N;
  12.     cout << "Podaj N: ";
  13.     cin>>N;
  14.     int *tab1 = new int [N];
  15.     int *tab2 = new int [N];
  16.  
  17.     for(int i=0;i<N;++i)
  18.     {
  19.         cout << "tab1["<<i<<"] = ";
  20.         cin >> tab1[i];
  21.     }
  22.  
  23.     for(int i=0;i<N;++i)
  24.     {
  25.         cout << "tab2["<<i<<"] = ";
  26.         cin >> tab2[i];
  27.     }
  28.  
  29.     int wynik = 0;
  30.  
  31.     __asm {
  32.         push eax;
  33.         push ebx;
  34.         push ecx;
  35.         push edx;
  36.         push edi;
  37.         push esi;
  38.         pushf;
  39.  
  40.         mov ecx, N;
  41.         mov edi, tab1;
  42.         mov esi, tab2;
  43.         xor ebx, ebx;
  44.         xor edx, edx;
  45.  
  46. petla:
  47.         mov eax, [edi + 4*ecx - 4];
  48.         mul [esi + 4*edx];
  49.         add ebx, eax;
  50.         inc edx;
  51.  
  52.  
  53.         loop petla;
  54.  
  55.         mov wynik, ebx;
  56.  
  57.         popf;
  58.         pop esi;
  59.         pop edi;
  60.         pop edx;
  61.         pop ecx;
  62.         pop ebx;
  63.         pop eax;
  64.     }
  65.  
  66.     cout << "wynik: " << wynik << endl;
  67.  
  68.     system("pause");
  69.     return 0;
  70. }
  71.  
  72. /*
  73.     suma kazdego an * aN-n
  74.  
  75.     __asm {
  76.         push eax;
  77.         push ebx;
  78.         push ecx;
  79.         push edx;
  80.         push edi;
  81.         push esi;
  82.         pushf;
  83.  
  84.         mov ecx, N;
  85.         mov edi, tab1;
  86.         mov esi, tab2;
  87.         xor ebx, ebx;
  88.         xor edx, edx;
  89.  
  90. petla:
  91.         mov eax, [edi + 4*ecx - 4];
  92.         mul [esi + 4*edx];
  93.         add ebx, eax;
  94.         inc edx;
  95.  
  96.  
  97.         loop petla;
  98.  
  99.         mov wynik, ebx;
  100.  
  101.         popf;
  102.         pop esi;
  103.         pop edi;
  104.         pop edx;
  105.         pop ecx;
  106.         pop ebx;
  107.         pop eax;
  108.     }
  109.  
  110.  
  111.     dla kazdego |an - bn|
  112.  
  113.     __asm {
  114.         push eax;
  115.         push ebx;
  116.         push ecx;
  117.         push edx;
  118.         push edi;
  119.         push esi;
  120.         pushf;
  121.  
  122.         mov ecx, N;
  123.         mov edi, tab1;
  124.         mov esi, tab2;
  125.         xor ebx, ebx;
  126.  
  127. petla:
  128.         mov eax, [edi + 4*ecx - 4];
  129.         mov edx, [esi + 4*ecx - 4];
  130.  
  131.         cmp eax, edx;
  132.         jae skocz;
  133.  
  134.         sub edx, eax;
  135.         mov eax, edx;
  136.         jmp skocz2;
  137. skocz:
  138.         sub eax, edx;
  139. skocz2:
  140.         add ebx, eax;
  141.  
  142.         loop petla;
  143.  
  144.         mov wynik, ebx;
  145.  
  146.         popf;
  147.         pop esi;
  148.         pop edi;
  149.         pop edx;
  150.         pop ecx;
  151.         pop ebx;
  152.         pop eax;
  153.     }
  154.  
  155.  
  156.  
  157.  
  158.  
  159.     Iloczyn skalarny
  160.  
  161.     __asm {
  162.         push eax;
  163.         push ebx;
  164.         push ecx;
  165.         push edx;
  166.         push edi;
  167.         push esi;
  168.         pushf;
  169.  
  170.         mov ecx, N;
  171.         mov edi, tab1;
  172.         mov esi, tab2;
  173.         xor ebx, ebx;
  174.  
  175. petla:
  176.         mov eax, [edi + 4*ecx - 4];
  177.         mov edx, [esi + 4*ecx - 4];
  178.         imul eax, edx;
  179.         add ebx, eax;
  180.         loop petla;
  181.  
  182.         mov wynik, ebx;
  183.  
  184.         popf;
  185.         pop esi;
  186.         pop edi;
  187.         pop edx;
  188.         pop ecx;
  189.         pop ebx;
  190.         pop eax;
  191.     }
  192. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement