A ver
Cuando tú descompilas un script te sale algo así:
#org 0x26462845472834573459874384587438
msgbox 0x4565748349568743849587483 0x6
end
#org 0x4565748349568743849587483
= AAAAAAAAAAAAAAAAAAAAAAAAA
Ese script descompilado no tiene etiquetas dinámicas ni el comando #dynamic, por lo que al compilarlo sobreescribirás ese script (y si el nuevo script es más grande, joderás algo que haya por delante)
Si haces esto, ya joderías el script:
#org 0x26462845472834573459874384587438
msgbox 0x4565748349568743849587483 0x6
end
#org 0x4565748349568743849587483
= AAAAAAAAAAAAAAAAAAAAAAAAAA
(Sí, solo con poner una A más)
Sin embargo, en un script con dynamic, lo que haces es buscar espacio libre a partir de la dirección que indiques en el mismo comando, el XSE se encarga de hacerlo y tú no jodes nada:
#dynamic 0x800000
#org @inicio
msgbox @frase 0x6
goto 0x123456
end
#org 0x123456
msgbox @frase2 0x6
return
#org @frase
= Hola
#org @frase2
= Adiós.
Al poner eso, #dynamic buscará espacio libre solo para las etiquetas dinámicas, en este caso @inicio, @frase y @frase2.