home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.lang.asm.x86      Ahh, the lost art of x86 assembly      4,675 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 3,823 of 4,675   
   James Harris to Pabst Blue Ribbon   
   Re: Fast conversion to a boolean of 0 or   
   12 Mar 19 21:09:03   
   
   From: james.harris.1@nospicedham.gmail.com   
      
   On 12/03/2019 16:23, Pabst Blue Ribbon wrote:   
   > James Harris  wrote:   
   >> A small programming challenge if you are interested, just for fun.   
   >>   
   >> Say we want any value other than 0 in EAX to be reduced to 1 - e.g. so   
   >> that if non-zero means true but we want true to be 1.   
   >>   
   >> Is there a faster solution than the naive   
   >>   
   >>      cmp eax, 0   
   >>      je done   
   >>      mov eax, 1   
   >>    done:   
   >>   
   >> Naturally, the speed of that will depend on how predictable the input   
   >> values are. Taking into account the usual suspect characteristics of x86   
   >> CPUs is there a generally faster solution?   
   >>   
   >> I can think of three bit-twiddling ways but I'm not sure they would be   
   >> faster than the above. In fact, I think they might be slower. In any   
   >> case I'd be interested to see what others think. I suspect some of you   
   >> may already have a preferred solution.   
   >>   
   >> So, any suggestions?   
   >   
   > ?   
   >   
   > and eax, 1   
   > done:   
   >   
      
   No good unless the value in EAX is an odd number. :-)   
      
   --   
   James Harris   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca