Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .686
- .model flat
- public _razy
- .data
- wykladnik dd ?
- .code
- _razy PROC
- push ebp
- mov ebp, esp
- push ebx
- push esi
- push edi
- mov eax,[ebp+8]
- mov ebx,[ebp+12]
- shr eax,23 ; sam wykladnik
- shr ebx,23
- sub ebx,127 ; od jednego wykladnika odejmujemy 127
- add eax,ebx
- mov wykladnik,eax
- mov eax,[ebp+8]
- mov ebx,[ebp+12]
- shl eax,9
- stc
- rcr eax,9 ; mantysa
- shl ebx,9
- stc
- rcr ebx,9; mantysa 23 bit w dol
- mul ebx
- mov ecx,0
- petla: ; wynik w edx:eax ,przesuwamy o 23
- clc
- rcr edx,1
- rcr eax,1
- inc ecx
- cmp ecx,23
- jne petla
- ; zakladamy ze wieksza od 0 liczby
- mov ecx,0
- cmp eax,1000000h ; czy przeniesienie na 24 bit
- jl dalej
- normalizuje:
- shr eax,1
- inc ecx
- cmp eax,1000000h
- jg normalizuje
- dalej:
- mov edx,wykladnik
- add edx,ecx
- shl edx,23 ; wykladnik na swoje miejsce
- shl eax,9 ; usuwamy jawna jedynke
- shr eax,9
- add eax,edx ; wykladnik + mantysa
- ;koniec
- push eax
- fld dword PTR [esp]
- add esp, 4
- pop edi
- pop esi
- pop ebx
- pop ebp
- ret
- _razy ENDP
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement