A newbie guide to Assembler programing

Conditional Jumps

© 1997 by Cruehead / MiB


is a list of the conditional jumps. They are divided in two sections, the unsigned - and the signed conditional jumps.
Unsigned values can only be positive, while dealing with signed values, the highest bit says if it is positive or not. So a value of FFFF hex would be equal to 65535 if the value is unsigned, and -1 if its signed. There are also a session with conditional jumps that does not check if the value is signed or not.

Unsigned conditional jumps

JAJump if above
JAEJump if above or equal
JBJump if below
JBEJump is below or equal
JNAJump if not above (same as JBE)
JNAEJump if not above or equal (same as JB)
JNBJump if not below (Same as JBE)
JNBEJump if not below or equal (same as JA)

Signed conditional jumps

JGJump if greater
JGEJump if greater of equal
JLJump if less
JLEJump if less or equal
JNGJump if not greater (same as JLE)
JNGEJump if not greater or equal (same as JGE)
JNLJump if not lower (same as JGE)
JNLEJump if not lower or equal (same as JG)

Conditional jump (dont matter if it's signed or not)

JZJump if zero
JEJump if equal (same as JZ)
JNZJump if not zero
JNEJump is equal (same as JNZ)

The ones you'll be mostly interseted in are JZ, JNZ, JA and JB.

Depending on the previous instruction (CMP in our case) the zero flag is set. So what JE (or JZ) really does is that they checks the zero flag. If it is set (zeroflag=1) then it jumps, otherwise it dont. This is pretty important for us crackers, because we can modify the zeroflag so it suits our needs.

Back to common instructions page!Back to common instructions page

Copyright © MiB 1998. All rights reversed.