270

271

Bah non, tu dois tout redéfinir puisque le préprocesseur ne communique rien à l'assembleur. Ou alors tu peux utiliser des macros pour faire asm("moveq #"stringify(WIDTH)"*"stringify(HEIGHT)"-1,d0");, mais ça devient vite insupportable si tu as des gros bouts d'assembleurs.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

272

273

Un header asm pour une lib statique n'est pas vraiment utile.
Sauf si tu as appelé tes fonctions avec des noms peu explicites, làtu peux avoir recours à un header et utiliser equ pour proposer un nom plus explicite à l'utilisateur.
Ce qu'il faut que tu fasses, c'est une doc.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

274

Sauf si tu as appelé tes fonctions avec des noms peu explicites, làtu peux avoir recours à un header et utiliser equ pour proposer un nom plus explicite à l'utilisateur.

Autant utiliser des #define au niveau du C, alors.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

275

Euh, non, là c'est pour les programmes utilisateur en assembleur, bref il n'y a pas le "niveau du C" dans ce cas.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

276

Ah oui j'avais pas fait gaffe au fait que ct une lib statique _pour l'ASM_ (et pas juste programmée en ASM). Autant pour moi.

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

277

278

Martial Demolins :
Le mot exporté est un bien grand mot pour moi, mais qui ne signifie pas grand chose. Je sais que pour exporter un label, on fait
xdef label mais comment ça marche après au niveau du linker?

Le symbole est:
* présenté au linker quels que soient les switches de l'assembleur.
* marqué comme exporté (non-local).
Peut-on exporter autre chose que des labels?

Tu veux exporter quoi d'autre?
Tu peux exporter les labels de tous les types (labels de code, variables), mais c'est tout.
Dans la doc de ExtGraph, il est spécifié qu'il faut inclure extgraph.h au début du programme, mais qu'il faut aussi mettre (si j'ai bien compris) extgraph.h et extgraph.a dans le répertoire du projet. Est-ce bien nécessaire, TIGCC ne fait-il pas ça tout seul si on rajoute le fichier au projet?

Tout dépend de comment on compile:
* En ligne de commande, il faut copier les fichiers dans le répertoire du projet.
* Avec L'IDE, il faut rajouter les fichiers au projet. Peu importe le répertoire où ils sont, mais il est quand-même conseillé de les copier dans le répertoire du projet, parce que sinon tu auras des problèmes pour diffuser les sources (parce que la librairie sera référencée par un chemin d'accès absolu).
Dernière question, dans une lib statique, faut-il réinclure les headers utilisés (extgraph.h, tigcclib), où ne faut-il pas le faire?

Ça dépend de si tu as besoin des déclarations qu'il y a dedans.
Y a-t-il un empêchement pour inclure deux fois le même header?

Pas automatiquement. Il faut mettre des "include guards" (des #ifdef, .ifdef ou ifd selon le langage) si tu veux que ça marche.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

279

280

avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

281

282

283

include "malib.a" n'a pas de sens !
La directive include recopie le fichier dans ton fichier source, et un fichier .a n'est pas un fichier source, mais un fichier objet.
Il faut demander au linker de bien vouloir avoir l'amabilité de lier le .a avec le reste de tes fichiers compilés. Regarde dans la doc de TIGCC comment faire, je ne m'en souviens plus précisément.
Sinon, utilise l'IDE ça te simplifiera le boulot.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

284

Je pense qu'il suffit de rajouter le .a dans la ligne de commande, sans options spéciales (jamais essayé, mais ça me semblerait logique).

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

285

286

GCC Command-Line Options:
file.a Static library (function archive) to be linked using ld.

Donc il suffit de rajouter l'archive à la ligne de commande pour qu'elle soit linkée.
avatar
;)

287

288

Martial Demolins :
non, je n'ai pas mis le .a (de toute façon, tigcc.a est inclu par défaut sans ça), mais je vais voir la doc

Edit: vlà la doc:

-a

Causes all relocs to be emitted, even PC-relative relocs within a section. It also emits address differences in a special TIGCC-specific format. This will allow more aggressive linker-side optimization.

je ne pense pas que ça soit ça

Il t'a dit de rajouter ton fichier .a, pas le switch -a!
Mais dans l'IDE, ce qu'il faut faire, c'est rajouter ce fichier à ton projet.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

289

290

Bon, je répète ce qu'a dit Sasume:
Sasume :
include "malib.a" n'a pas de sens ! La directive include recopie le fichier dans ton fichier source, et un fichier .a n'est pas un fichier source, mais un fichier objet.

Et pas besoin de rajouter tigcc.a au projet, il est linké automatiquement. Il faut juste rajouter tes librairies à toi. Et c'est tout! Pas besoin de include ou d'un truc du style.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

291

292

293

294

Oui, il est possible toutes les instructions que tu veux après un cmp, mais ton cmp ne servira à rien du tout dans ce cas...
Le cmp ne fait quer positionner les flags du CCR. Après, à toi d'adopter le comportement que tu veux en fonction de leur position (instructions Bcc, DBcc et Scc).
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

295

296

Ce qu tu peux aussi faire, c'est de mettre des instructions qui ne touchent pas aux flags entre ton cmp et ton bxx. Ces instructions sont movem, ainsi que les opérations sur les registres d'adresse. Les opérations sur les registres de données et la mémoire modifient en général les flags.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

297

il y a rts également
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

298

Et pea et exg. smile
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

299

Et sxx happy

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

300