Volume 4: Base IA-32 Instruction Reference
4:241
Jcc—Jump if Condition Is Met
(Continued)
Because a particular state of the status flags can sometimes be interpreted in two
ways, two mnemonics are defined for some opcodes. For example, the JA (jump if
above) instruction and the JNBE (jump if not below or equal) instruction are alternate
mnemonics for the opcode 77H.
The J
cc
instruction does not support far jumps (jumps to other code segments). When
the target for the conditional jump is in a different segment, use the opposite condition
from the condition being tested for the J
cc
instruction, and then access the target with
an unconditional far jump (JMP instruction) to the other segment. For example, the
following conditional far jump is illegal:
JZ FARLABEL;
To accomplish this far jump, use the following two instructions:
JNZ BEYOND;
JMP FARLABEL;
BEYOND:
The JECXZ and JCXZ instructions differs from the other J
cc
instructions because they do
not check the status flags. Instead they check the contents of the ECX and CX registers,
respectively, for 0. These instructions are useful at the beginning of a conditional loop
that terminates with a conditional loop instruction (such as LOOPNE). They prevent
entering the loop when the ECX or CX register is equal to 0, which would cause the loop
to execute 2
32
or 64K times, respectively, instead of zero times.
All conditional jumps are converted
to code fetches of one or two cache lines,
regardless of jump address or cacheability.
Operation
IF condition
THEN
EIP
EIP + SignExtend(DEST);
IF OperandSize = 16
THEN
EIP
EIP AND 0000FFFFH;
FI;
IF Itanium System Environment AND PSR.tb THEN IA_32_Exception(Debug);
FI;
Flags Affected
None.
Additional Itanium System Environment Exceptions
IA_32_Exception
Taken Branch Debug Exception if PSR.tb is 1
Protected Mode Exceptions
#GP(0)
If the offset being jumped to is beyond the limits of the CS segment.
Содержание ITANIUM ARCHITECTURE
Страница 1: ......
Страница 7: ...402 Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 199: ...4 192 Volume 4 Base IA 32 Instruction Reference FWAIT Wait See entry for WAIT ...
Страница 269: ...4 262 Volume 4 Base IA 32 Instruction Reference LES Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 270: ...Volume 4 Base IA 32 Instruction Reference 4 263 LFS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 273: ...4 266 Volume 4 Base IA 32 Instruction Reference LGS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 288: ...Volume 4 Base IA 32 Instruction Reference 4 281 LSS Load Full Pointer See entry for LDS LES LFS LGS LSS ...
Страница 352: ...Volume 4 Base IA 32 Instruction Reference 4 345 ROL ROR Rotate See entry for RCL RCR ROL ROR ...
Страница 368: ...Volume 4 Base IA 32 Instruction Reference 4 361 SHL SHR Shift Instructions See entry for SAL SAR SHL SHR ...
Страница 373: ...4 366 Volume 4 Base IA 32 Instruction Reference SIDT Store Interrupt Descriptor Table Register See entry for SGDT SIDT ...
Страница 589: ...4 582 Volume 4 IA 32 SSE Instruction Reference ...
Страница 590: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index ...
Страница 591: ...Index Intel Itanium Architecture Software Developer s Manual Rev 2 3 ...
Страница 603: ...INDEX Index 12 Index for Volumes 1 2 3 and 4 ...
Страница 604: ......