2

I downloaded the Intel 64 and IA-32 Architectures Software Developer’s Manual combined volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4.

At Table 7-4. Conditional Jump Instructions it says the instructions JA/JNBE jump when (CF or ZF) = 0.

According to this manual, and the JCC entry in Intel's vol.2 manual (May 2018), they jump when (CF = 0 and ZF = 0), which is correct as I tested.

Is that possible Intel's developers manual to be wrong in major commands like that?

PS: I am not very sure about the instruction (I think it was JL/JNGE) but I also found another mistake on jumping conditions

Peter Cordes
  • 328,167
  • 45
  • 605
  • 847
Maverick
  • 1,105
  • 12
  • 41
  • Note: It's *instruction,* not *command.* Using wrong terms is very confusing for readers. – fuz May 16 '18 at 10:37
  • 4
    You realize those are the same, right? If `(CF or ZF)=0` then both must be zero. It's bitwise/boolean `or`. – Jester May 16 '18 at 11:46
  • @Jester Hm.... In the way you interpret it, as a bitwise operator between them yes, you have absolutely right but I didn't interepreted this way. Instead I read it as if CF=0 or if ZF=0 (not as a bitwise act) separately. Right now with clear head i see the role of parenthesis and I can surely say that it is a bitwise act between two operands. – Maverick May 16 '18 at 19:59
  • @Fuz you have absolutely right, sorry for the confusion ! – Maverick May 16 '18 at 19:59
  • 1
    Intel's own volume 2 manual says `(CF = 0 and ZF = 0)`. Which volume is table 7-4 in? Vol 1 I assume? I didn't check that the JCC entry in the combined manual matches the separate vol 2A/B/C PDF, but I assume that's the case. (It's certainly possible for some parts of Intel's manuals to have errors, and it does happen, but this is not one of those cases.) – Peter Cordes May 16 '18 at 20:51
  • @PeterCordes Volume 1 page 184. – Hadi Brais May 16 '18 at 21:31

0 Answers0