What does the \"SHORT\" mean in this code?
JE SHORT 00013FB8
A short jump can be achieved using a relative offset from the current assembly instruction. For x86/32-bit, this is a 2 byte instruction, where the first byte is always EB
, for short jump, and the second byte is the number of bytes before or after the current instruction to jump. The second byte is a signed 8-bit number, so the the furthest short jump on x86 is +/-127 bytes away. Anything past +/-127 bytes away is a long jump, E9
, and must use the full 32-bit address; resulting in a 5 byte instruction.
This is important to keep in mind if you are inline patching assembly code.
ex.
EB 0
would jump to the opcode following the short jump, not the line of code itself.
ex.
EB 7F
is the furthest jump down.