Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // lab4.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <iostream>
- using namespace std;
- int _tmain(int argc, _TCHAR* argv[])
- {
- int N;
- cout << "Podaj N: ";
- cin>>N;
- int *tab1 = new int [N];
- int *tab2 = new int [N];
- for(int i=0;i<N;++i)
- {
- cout << "tab1["<<i<<"] = ";
- cin >> tab1[i];
- }
- for(int i=0;i<N;++i)
- {
- cout << "tab2["<<i<<"] = ";
- cin >> tab2[i];
- }
- int wynik = 0;
- __asm {
- push eax;
- push ebx;
- push ecx;
- push edx;
- push edi;
- push esi;
- pushf;
- mov ecx, N;
- mov edi, tab1;
- mov esi, tab2;
- xor ebx, ebx;
- xor edx, edx;
- petla:
- mov eax, [edi + 4*ecx - 4];
- mul [esi + 4*edx];
- add ebx, eax;
- inc edx;
- loop petla;
- mov wynik, ebx;
- popf;
- pop esi;
- pop edi;
- pop edx;
- pop ecx;
- pop ebx;
- pop eax;
- }
- cout << "wynik: " << wynik << endl;
- system("pause");
- return 0;
- }
- /*
- suma kazdego an * aN-n
- __asm {
- push eax;
- push ebx;
- push ecx;
- push edx;
- push edi;
- push esi;
- pushf;
- mov ecx, N;
- mov edi, tab1;
- mov esi, tab2;
- xor ebx, ebx;
- xor edx, edx;
- petla:
- mov eax, [edi + 4*ecx - 4];
- mul [esi + 4*edx];
- add ebx, eax;
- inc edx;
- loop petla;
- mov wynik, ebx;
- popf;
- pop esi;
- pop edi;
- pop edx;
- pop ecx;
- pop ebx;
- pop eax;
- }
- dla kazdego |an - bn|
- __asm {
- push eax;
- push ebx;
- push ecx;
- push edx;
- push edi;
- push esi;
- pushf;
- mov ecx, N;
- mov edi, tab1;
- mov esi, tab2;
- xor ebx, ebx;
- petla:
- mov eax, [edi + 4*ecx - 4];
- mov edx, [esi + 4*ecx - 4];
- cmp eax, edx;
- jae skocz;
- sub edx, eax;
- mov eax, edx;
- jmp skocz2;
- skocz:
- sub eax, edx;
- skocz2:
- add ebx, eax;
- loop petla;
- mov wynik, ebx;
- popf;
- pop esi;
- pop edi;
- pop edx;
- pop ecx;
- pop ebx;
- pop eax;
- }
- Iloczyn skalarny
- __asm {
- push eax;
- push ebx;
- push ecx;
- push edx;
- push edi;
- push esi;
- pushf;
- mov ecx, N;
- mov edi, tab1;
- mov esi, tab2;
- xor ebx, ebx;
- petla:
- mov eax, [edi + 4*ecx - 4];
- mov edx, [esi + 4*ecx - 4];
- imul eax, edx;
- add ebx, eax;
- loop petla;
- mov wynik, ebx;
- popf;
- pop esi;
- pop edi;
- pop edx;
- pop ecx;
- pop ebx;
- pop eax;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement