in Assembly, i have a JUMP table with about 2000 JUMP points (labels) and each label has about 20-30 lines of Assembly instruction ... so yes ... it's a big (switch) with big body of source code ... for example:
.TABLE:
     DD .case0
     DD .case1
     DD .case2
     DD .case3
     DD .case4
     ...
     ...
     ...
     DD .case2000
and each case has some codes like this (each Case has about 20-30 lines of Instructions)
.case0:
    push   ...
    mov    ...
    push   ...
    mov    ...
    push   ...
    mov    ...
    ...
    jmp    [4 * eax + .TABLE]  ;; it's may be the 'case1000' (eax is our case)
.case1:
    push   ...
    mov    ...
    push   ...
    mov    ...
    push   ...
    mov    ...
    ...
    jmp    [4 * eax + .TABLE]  ;; it's may be the 'case1000' (eax is our case)
.case2:
    push   ...
    mov    ...
    push   ...
    mov    ...
    push   ...
    mov    ...
    ...
    jmp    [4 * eax + .TABLE]  ;; it's may be the 'case1000' (eax is our case)
...
...
...
i may need to jump to each label about 10 times and in a moment i may be at case2 and next time i may be at case1020 (long jump)
Now my question about this Jumps ... for example, if i want to jump from case2 to case1020, is there any 
performance problem or this long jump is Exaclty same as for example 'case0' to 'case100' ??
my opinion : jmp just change index and no matter (no diffrent in performance with less than 127 byte jump) even if we jump over 150Kb instructions ... true ?
Also i know we have short jump and near jump and far jump ... but i think short jump is just about instruction Code size (127) and there is no diffrents in performance between jumping 127 byte or jumping 100000000 bytes ....
is it true ?
 
    