CPC Rulez
https://cpcrulez.fr/forum/

sdcc / sdasz80 : alignement des données
https://cpcrulez.fr/forum/viewtopic.php?f=4&t=5071
Page 1 sur 1

Auteur :  neocps1 [ 05 Juin 2013, 12:29 ]
Sujet du message :  sdcc / sdasz80 : alignement des données

salut,

De quelle façon peut-on forcer l'alignement des données dans un fichier
assembleur ? Par exemple, faire en sorte que les données graphiques soient
alignées sur des pages de 256 octets pour optimiser les incréments.

merci :)

Auteur :  shap [ 05 Juin 2013, 13:09 ]
Sujet du message :  Re: sdcc / sdasz80 : alignement des données

Salut,

Ben si tes données son dans ton code source (codée avec des macro instructions genre DEFM, DEFB ou autre), il suffit (sous Dams en tous cas) de rajouter un ORG avant tes données

Donc un truc du genre

Org xxxx

[ton code]

Org xx00

[tes données]

Et si tes données sont à part dans un fichier, le problème ne se pose évidemment pas.

Auteur :  neocps1 [ 05 Juin 2013, 13:15 ]
Sujet du message :  Re: sdcc / sdasz80 : alignement des données

Tout à fait, sauf qu'avec sdasz80 ca ne fonctionne pas car la compilation
d'un fichier assembleur avec sdasz80 linké ensuite avec le code C ne permet
pas de définir le point d'entrée (org xxx est interdit dans un fichier rel).

Je pense qu'il faut passer par une option au niveau du linker, mais la documentation
est difficile à trouver

Auteur :  shap [ 05 Juin 2013, 13:31 ]
Sujet du message :  Re: sdcc / sdasz80 : alignement des données

J'avais mal lu le titre du thread....

Solution la plus simple et la plus logique : ne pas faire de C, d'une part car ce n'est absolument pas adapté au CPC et plus généralement car ce n'est pas adapté à grand chose étant un langage très médiocre. donc solution à privilégier : pratiquer l'assembleur Z80 ou tu y gagneras à tout point de vue (place, temps machine, etc...)

Seconde solution, tu mets tes fichiers de données à part et tu les charges indépendamment en RAM où tu veux, ensuite dans ton source C tu pointes les adresses en dur.

Auteur :  neocps1 [ 05 Juin 2013, 13:33 ]
Sujet du message :  Re: sdcc / sdasz80 : alignement des données

pas de soucis ! J'ai trouvé la solution entre temps:

Code :
   .area  _GRAPHICS (ABS)
   .org 0x2000


Le fait de devoir définir l'adresse du point d'entrée m'embête un peu, mais
ca fonctionne :)

Page 1 sur 1 Le fuseau horaire est UTC+1 heure
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/