> >So
> >how can I fix this in assembly. I am not an expert with inlined assembly,
> >so
> >maybe someone can correct me if I am wrong, but something like this needs
> >to
> >be added:
> >
> >or %ecx, %ecx
> >jz 2
> >
> >2:
>
> This is wrong beacause the result is stored in ecx. Better using
> JECXZ instruction
> before the loop.
>
> Greeting,
> rookie

No, it's a correct method to set/reset the zero flag:
    (X | X) == X just as (X & X) == X

So, he could also write: "and %ecx, %ecx".

I may be wrong, but in the old 386/486 days the "jecxz" was even less
efficient, wasn't it?

<history>
Twenty years ago, my z80 programs  had a lot of lines like

  and a
  ret z

Weren't there discussions, if an nmos cpu consumed more electric power with
either "and a" or "or a"? ;-)
</history>


Norbert

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to