AW: assembler
20. Mai 2021, 23:52
FCOM setzt nur die Flags C0, C2, C3 im FPU-Status-Word, nicht aber das EFlags-Register, welches von Jxx ausgewertet wird.
Verwende anstatt FCOMI oder FUCOMI
Aus Intel® 64 and IA-32 Architectures Software Developer’s Manual
FCOM/FCOMP/FCOMPP—Compare Floating Point Values
Description
Compares the contents of register ST(0) and source value and sets condition code
flags C0, C2, and C3 in the FPU status word according to the results (see the table
below). The source operand can be a data register or a memory location. If no source
operand is given, the value in ST(0) is compared with the value in ST(1). The sign of
zero is ignored, so that –0.0 is equal to +0.0.
FCOMI/FCOMIP/ FUCOMI/FUCOMIP—Compare Floating Point Values and Set EFLAGS
Description
Performs an unordered comparison of the contents of registers ST(0) and ST(i) and
sets the status flags ZF, PF, and CF in the EFLAGS register according to the results
(see the table below). The sign of zero is ignored for comparisons, so that –0.0 is
equal to +0.0.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
|