Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .686
- .model flat
- public _EvalRowsWeights
- .data
- szerokosc EQU 0
- wysokosc EQU 4
- macierz EQU 8
- wynik EQU 12
- .code
- _EvalRowsWeights PROC
- push ebp
- mov ebp, esp
- push ecx
- add ebp, 8
- mov ebx, [ebp + szerokosc] ; n - szer
- mov ecx, [ebp + wysokosc] ; m - wys
- mov esi, [ebp + macierz] ; double* M
- mov edi, [ebp + wynik] ; double* W
- finit
- ;suma kolumny
- mov edx, [ebp + szerokosc] ; edx - wiersz
- ptl3: ; petla wierszy
- dec edx
- mov esi, [ebp + macierz]
- lea esi, [esi + edx*8] ; przesuniecie wiersza
- mov ecx, [ebp + wysokosc]
- fldz
- ptl:; suma kolumny
- fld qword ptr [esi]
- faddp st(1), st(0)
- lea esi, [esi + ebx*8] ; przesuniecie kolumny
- loop ptl
- mov ecx, [ebp + wysokosc] ; wracam na poczatek kolumn
- mov esi, [ebp + macierz]
- lea esi, [esi + edx*8]
- ptl2:
- fld qword ptr [esi]
- fdiv st(0), st(1)
- fstp qword ptr [esi]
- lea esi, [esi + ebx*8]
- loop ptl2
- fstp st(0)
- cmp edx, 0
- jne ptl3
- mov ecx, [ebp + wysokosc]
- mov esi, [ebp + macierz]
- kolejnyWiersz:
- dec ecx
- fldz
- mov ebx, [ebp + szerokosc]
- kolejnaKolumna:
- dec ebx
- fadd qword ptr [esi]
- lea esi, [esi + 8]
- cmp ebx, 0; czy szerokosc = 0
- jne kolejnakolumna
- fidiv dword ptr [ebp+szerokosc]
- fstp qword ptr [edi]
- lea edi, [edi+8]
- cmp ecx, 0 ; czy wysokosc = 0
- jne kolejnyWiersz
- pop ecx
- pop ebp
- ret
- _EvalRowsWeights ENDP
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement