В теории два варианта: 1) пишется перемещаемый код(который работает с любого адреса) и копируется, но на практике это трудно сделать, ну и кроме оффсетов есть и другие вещи, которые трудно сразу компилятором сделать. 2) пишется код и после копирования делаем релоки и прочие правки. То что вы делаете нельзя сделать в режиме вопрос-ответ, особенно с вашей "базой". Для начала теорию почитайте и практически попробуйте. А то вы выдумываете свою теорию и нас спрашиваете почему она не работает