[Vollbild]  [Home]TUX
;Adobe Helvetica normal
;-------------------------------------------------
;Errechnet die gerundete Wurzel eines 64Bit Integerwertes
;-------------------------------------------------
;The result is a rounded squareroot of a 64-Bit integer value
;-------------------------------------------------

LICENSE

;%include "./INC/sqrt64.inc"

;To your global or the declaration of the calling process.

;Wertdd0,0;value -unchanged
;Ergebnisdd0,0;result
;-------------------------------------------------

sqrt64:
section .text
pushad
bsrecx,[Wert+4]
jnza2
movecx,0
jmpa4
.a2:
addecx,32
jmp.a8
.a4:
bsrecx,[Wert]
jnz.a8
movdword[Ergebnis],0
jmp.ende
.a8:
shrecx,1;geteilt durch 2
movebx,0
btsebx,ecx
.b4
cmpecx,0
je.c2
dececx
btsebx,ecx
movedx,0
moveax,ebx
mulebx
cmpedx,[Wert+4]
je.b6
jb.b4
.b5:
btrebx,ecx
jmp.b4
.b6:
cmpeax,[Wert]
jb.b4
jz.c2
jmp.b5
.c2
movedx,0
moveax,ebx
inceax
jc.c8
mulebx
cmpedx,[Wert+4]
je.c4
jb.c6
mov[Ergebnis],ebx
jmp.ende
.c4:
cmpeax,[Wert]
jb.c6
mov[Ergebnis],ebx
jmp.ende
.c6:
incebx
.c8:
mov[Ergebnis],ebx
.ende:
popad
ret
Free Web Hosting