いずれにしても、たいていの場合、関数の中の別の部分への移動がほとんどなので、行き先は100バイト前とか、123バイト後など、現在地からそれほど遠くないことが多いです。(つまり1バイトで)書いていいことにしました。これにより、距離が近い多くのJMP命令は2バイト命令になって、機械語は短くなりました。距離が遠いものはEIPに足す値を4バイトで書かないといけないので5バイト命令になりますが、そのときも値は行きたい番地ではなくEIPに足す値で指定します。これは同じJMP命令なのに足したり代入したりというややこしい回路にするよりも、全部足し算で統一したほうがラクだったのでしょう。実行するかどうかだけなので、JMP命令と同じ仕様にしたのだと思います。CALLでは2バイト形式はありません。5バイト命令だけです。このように実際の番地を指定するのではなく、EIPへの加算量で指定する方法を「相対ジャンプ」といいます。far-CALLやfar-JMP命令ではどちらもEIPへの足し算ではなく、EIPとCSへの代入になっています。これはその名のとおり遠くへのCALL/JMPなので、1バイト形式を作る意味がなく、それゆえに単純な代入形式だけになったのでしょう。このような普通の指定方法のことを「絶対ジャンプ」といいます。↑こめんと欄オペコードの頭に0x66がつく話はもうちょい解説してあげるべきではないでしょうか。