アセンブラレベルでは、アドレスの指定方法が大きく分けて相対アドレスと絶対アドレスがあることは知っていますか? プログラムが1000番地から1999番地にロードされることを期待していて、goto命令の飛び先が絶対アドレス指定で1500番地だとします。 リロケータブルでない場合、プログラムが2000番地から2999番地にロードされても飛び先は1500番地のまま調整されないので、1500番地に飛びます。が、1500番地にはプログラムが無い=何があるかは不定なので、その後どうなるかは不定=ほぼ暴走になります。 リロケータブルの場合、大抵は相対アドレス指定されているはずなので、2500番地に飛ぶことになり、ここにはプログラムがあるので正常に処理が続けられます。 飛び先だけでなく、作業用のメモリも同様にでたらめな所を参照することになるので、誤動作の原因となります。
![2472212.html](https://cdn-ak-scissors.b.st-hatena.com/image/square/d4aaad44b86379d27c1c06ff97132181429cb7f3/height=288;version=1;width=512/https%3A%2F%2Foshiete.xgoo.jp%2Fimages%2Fsp%2Fqa_recommend%2F2083_1.jpg)