Norbert Koch wrote:
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.
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".
[...]
Also, on pipelined processors like Intel Pentium and better you would
use "test %ecx, %ecx" for this purpose which internally is an "and", but
since it drops the result and just sets the condition register it is
faster than "and" or "or". At least potentially. Depends on the
surrounding code.
Uwe
--
Uwe Doering | EscapeBox - Managed On-Demand UNIX Servers
[EMAIL PROTECTED] | http://www.escapebox.net
_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"