부호 (2)

programming 2006. 12. 20. 14:01

펜티엄 프로 이후의 CPU를 대상으로, 배정도 실수의 부호를 구하도록 변형한 부호함수.
단정도 부호함수와의 차이는 -0.0을 점검하는 부분에 명령 하나가 더 추가되었다는 것.
펜티엄 프로 이후에 쓸 수 있는 명령을 써서 훨씬 짧게 구현되었다.

dsignum proc
    mov eax,[esp+8]
    cdq
    lea edx,[2*edx+1]
    add eax,eax  ; check -0.0
    or  eax,[esp+4]
    cmovne eax,edx
    ret
dsignum endp
Posted by movsd
,