Pa sto se tice skokova, kada bi radio tako kako ti kazes iamo bi ogromnih problema... Zamisli situaciju: Napisao si program od, recimo, 1500 linija koda, sto i nije nesto veliko i u njemu imas 30 skokova. Ti si radio skokove kao
jmp 0FF32C0h ( primer samo za jedan skok, zamisli da su svi takvi... ) i sada si nesto dodao u svom kodu ili si nesto izbacio zbog optimizacije koda. Posle toga tebi vise ni jedan skok nece radi kako treba, jer su svi pomereni u memoriji "gore" ili "dole", tako da bi morao rucno da prodjes kroz ceo kod i da za svaki od tih 30 skokova ponovo racunas na koju adresu sada treba da skace...
Eto, to je jednostavan primer problema koji bi bio neizbezan takvim nacinom rada, a inace linker i uradi to sto ti pricas, tj. napravi tabelu relokacija za skokove i onda i kada se nesto promeni on na osnovu te tabele relokacija zna opet gde treba da "prebaci" skokove.
Eto, nadam se da sam ovo dobro objasnio ( a ako sam negde pogresio, molim kolege koji imaju veci staz rada u asembleru da me odmah isprave

... ).
Pozdrav!