One small addendum to the other answer here (which is otherwise correct):
Your jump will never be "out of range". The particular encoding, and thus the decesion as to use a 32 bit, 16 bit, or 8 bit offset for any relative jump, will be made by your assembler. This is usually referred to as "instruction selection". In any case, given any 32 bit value of "eip" there is always some 32 bit signed displacement that, when added to "eip" will equal any arbitrary 32 bit address.
This means you can jump from anywhere in the program, to anywhere else, with a single jump.
The 8 bit and 16 bit forms of "jump/cc" just let you do that with fewer bytes in the instruction stream.