Sasume (./243) :
Et il permet d'écrire par exemple (label1-label2)/4 ?
Seulement si tu n'es pas en mode all-relocs (comme avec A68k), et tu ne peux pas utiliser ça avec des labels dans les fichiers compilés séparément (pour la même raison; la question ne se pose pas avec A68k parce qu'il ne gère même pas label1-label2 avec des labels dans des fichiers compilés séparément). Et cette raison, c'est qu'il y a des relogements positifs et négatifs, mais il n'y a pas de quarts de relogements. Or, en mode all-relocs, ou pour représenter les différences entre labels externes, il faut une paire de relogements (positif+négatif), donc on ne peut pas diviser par 4. (Le mode all-relocs est le mode d'assemblage utilisé pour permettre les optimisations au niveau du linker.)
(Pourquoi faut-il que je répète cette explication sans arrêt?

J'ai déjà expliqué ça plusieurs fois dans des forums publics!)
Et même dans le cas d'un simple label1-label2, quel est le format de fichier objet qui gère ça (quand un les labels sont dans différents fichiers sources hein) ?
Extension TIGCC au format COFF. Enfin, plus précisément, le relogement négatif 32 bits est présent dans le standard COFF, mais normalement pas utilisé, les relogements négatifs 16 bits et 8 bits sont des extensions TIGCC.