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)   
|