A relative offset (rel8, rel16, or rel32) is generally specified as a label in assembly
code, but at the machine code level, it is encoded as a signed 8-, 16-, or 32-bit
immediate value. This value is added to the value in the EIP register. (Here, the EIP
register contains the address of the instruction following the JMP instruction). When
using relative offsets, the opcode (for short vs. near jumps) and the operand-size
attribute (for near relative jumps) determines the size of the target operand (8, 16,
or 32 bits).
手册上这样说的 那么 就是编译器比较聪明的实现了
或许书上说的是错的。。。 不知道了