2Fermer4
deleted2Le 02/02/2014 à 21:21
Zerosquare (./2) :
Folco (./1) :
2. Et que signifie, au juste, move.w _main,d0 ? Comment interprêtez-vous cette instruction ?Pour moi, ça n'a pas de sens.
Tu parles bien de la version sans # ? Je ne vois pas ce que ça a de spécial.

Ok, mais à quoi tu t'attends comme résultat ? Si tu as écris ça, tu as voulu dire quoi ? Moi j'en vois pas le sens en tout cas.
Zerosquare (./2) :
Folco (./1) :
3. Quid du move.w #_main,d0 ? Pourquoi me sort-il une valeur de son chapeau ? Pour moi, faut émettre un relogement à l'assemblage, et une erreur de linking si le relogement ne tient pas sur deux octets (typiquement dans le cas d'une BSS, lors du linking d'un OS).
Pour moi, ce que génère A68k dans ce cas est clairement un bug.

pencil
Zerosquare (./2) :
En toute logique, pour du code non relogeable, il devrait utiliser la valeur du mot inférieur de l'adresse.

Comment veux-tu obtenir l'adresse sans relogement ? Et le "mot inférieur de l'adresse", je vois bien ce que tu veux dire, mais conceptuellement, ça a un sens ? grin
Zerosquare (./2) :
Pour du code relogeable, générer un message d'erreur (à moins que le format de sortie supporte ce genre de trucs exotiques, mais ça m'étonnerait tongue.gif)

Relogeable statiquement ou dynamiquement ?


Zerosquare (./2) :
une feature qui optimise le code généré en taille

mon avis très très personnel : "optimisation" et "assembleur" ne font pas bon ménage grin
Zerosquare (./2) :
de même que le remplacement auto d'un bra par un bra.s par exemple

amha, c'est pas de l'optimisation ça, c'est juste que, sans longueur précisée, l'assembleur fait ce qu'il veut. C'est à dire qu'il va exporter un relogement, et un linker intelligent utilisera le mode d'adressage le plus court possible