1

Bon, je suis en train d'aprendre l'assembleur, c'est pas hyper compliqué, mais il y a quelque question auquel je ne trouve réponse dans aucun tuto oui :


***Lorsqu'il y a des chaînes de caractère, la syntaxe suivante est utilisée :

...
pea.l hello_world(PC)
...
rts
hello_world: dc.b 'Hello, World!',0

Pourquoi pea.l hello_world(PC) ?
Est il obligatoire d'utiliser un label ?
Que signifie dc.b ?
Que signifie ',0' ? (Je pense que c'est la fin d'une chaîne de caractère, mais je voudrais plus de renseignement.)


***Pour utiliser une rom_call, les paramètres doivent être mis dans la pile.
Comment savoir avec la doc de TIGCC la valeur de A_NORMAL ou autre ?

***Les fonctions qui renvoient quelque chose le renvoit elle dans la pile ?

***Quel sont les constantes utilisable en assembleur ?

***Comment est la structure des fichiers dans AMS ?
Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

2

***Comment fonctionne le debugger de virtual ti ?
(Pourquoi il n'y a pas mes dernière valeurs dans la pile, dans les registres... ?)
Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

3

Watcha
a écrit : Pourquoi pea.l hello_world(PC) ?

"Push effective address" (place l'adresse effective sur la pile) de "hello_world", dont l'adresse est donnée par rapport au PC (program counter) actuel (c'est-à-dire par rapport l'adresse actuellement exécutée). C'est le moyen de mettre l'adresse de la chaîne de caractères sur la pile qui prend le moins de place.
Est il obligatoire d'utiliser un label ?

Oui. (Tu peux aussi calculer l'offset à la main si tu veux. Mais tu ne peux pas faire pea "Hello, World!"!)
Que signifie dc.b ?
DC.{B|W|L} data1,data2,...
(Define Constant(s)) Will insert all the arguments as immediate data into the object file. For example, DC.L $12345678 will insert the bytes 0x12, 0x34, 0x56 and 0x78 into the resulting object file. DC.B 'Hello, World!',0 will insert the null-terminated string "Hello, World!" into the resulting object file.

(extrait de http://tigcc.ticalc.org/doc/a68k.html#directives)
Que signifie ',0' ? (Je pense que c'est la fin d'une chaîne de caractère, mais je voudrais plus de renseignement.)

En C, il y a une convention qui dit que la taille d'une chaîne de caractères n'est pas donnée explicitement, mais qu'on met un caractère spécial, le caractère nul "", qui a le code ASCII 0, pour indiquer leur fin. C'est cette convention qui est utilisée par AMS (qui est écrit en C).
***Pour utiliser une rom_call, les paramètres doivent être mis dans la pile. Comment savoir avec la doc de TIGCC la valeur de A_NORMAL ou autre ?

Tu regardes "A_NORMAL" dans l'index pour trouver:
enum Attrs {A_REVERSE, A_NORMAL, A_XOR, A_SHADED, A_REPLACE, A_OR, A_AND, A_THICK1, A_SHADE_V, A_SHADE_H, A_SHADE_NS, A_SHADE_PS};
Comme aucune valeur explicite n'est donnée, le premier élément de l'enum (A_REVERSE) vaut 0, le deuxième (A_NORMAL) 1, le troisième (A_XOR) 2, ...
***Les fonctions qui renvoient quelque chose le renvoit elle dans la pile ?

Non, dans a0 si elles renvoient un pointeur, dans d0 sinon.
***Quel sont les constantes utilisable en assembleur ?

Je n'ai pas compris la question.
***Comment est la structure des fichiers dans AMS ?

- 2 octets pour indiquer la taille. Tu verras ces octets directement si tu utilises les fonctions de vat.h. Les fonctions de stdio.h utiliseront ces octets en interne et ne te les feront pas voir. Mais en assembleur, même si l'utilisation de TIGCCLIB et donc de stdio.h est possible, normalement tu utiliseras toujours les ROM_CALLs de vat.h.
- Contenu. Sa structure est la même que sur la pile d'expressions (expression stack): http://tigcc.ticalc.org/doc/estack.html.
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é

4

Kevin Kofler
a écrit : Non, dans a0 si elles renvoient un pointeur, dans d0 sinon.


et si la fonction renvoie une grosse structure qui ne tiendrait pas dans les registres ? Ça va ou confus

5

elle renvoit un pointeur bers cette structure je crois (dans a0)
avatar

6

Merci Kevin, c'est très sympa. love

Pour les constantes, je voulais dire "est ce que les constantes di TIGCC (LCD_SIZE...) sont directement utilisable en assembleur ?"
Mais TIGCC me renvoit undefined ref donc je pense que non.

Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

7

regardes les includes asm, les constates sont dedans
avatar

8

Seules les constantes définies dans OS.h (ou doorsos.h) sont utilisables directement. Pour les autres, tu dois les définir toi-même.
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é

9

Utilies plutot tios.h de Preos. Plus complet smile Et puis le nom doorsos sick

10

PpHd a écrit :
Utilies plutot tios.h de Preos. Plus complet smile

La seule chose en quoi il est "plus complet", c'est qu'il contient des fonctions incompatibles avec tous les kernels sauf la version actuelle de PreOs...
Donc je le déconseille fortement!
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é

11

Preos est le seul kernel a jour. JM arrete Unios. Xavier a abandonne doorsos. Et Oliveir, ben plus aucune nouvelle depuis 1 an. Donc tongue

12

PpHd
a écrit : Et Oliveir, ben plus aucune nouvelle depuis 1 an.

Tu te rappelles comment il a disparu la première fois, tout le monde croyait qu'il avait abandonné, et toc il est revenu avec TeOS 1.00? Qui te dit qu'il ne refera pas ça? Mais bon, il est vrai que ça sera à lui de rattraper son retard s'il fait ça.


Mais peu importe que PreOs est le seul kernel à jour: si on peut garder la compatibilité avec les anciens kernels, pourquoi la jeter sans raison?
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é

13

>Tu te rappelles comment il a disparu la première fois, tout le monde croyait qu'il avait abandonné, et toc il est revenu avec TeOS 1.00? Qui te dit qu'il ne refera pas ça? Mais bon, il est vrai que ça sera à lui de rattraper son retard s'il fait ça.
Bon courage s'il doit mettre toutes les nouveautés de PreOs. J'ai souffert pour les tester.

Et ce n'est pas sans raison ! Dès que je parle aux programmeurs ricains fans du mode kernel (sisi, ca existe) de libraries en read_only, de libraries conditonnelles, de possibilité de tourner les executables sur 92, de compressions des libaries, d'auto-extractibles, du hot-reset, ils bavent tous grin

14

PpHd
a écrit : aux programmeurs ricains fans du mode kernel (sisi, ca existe)

Donne-moi leurs adresses mail pour que je les convertisse. rotfl
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é

15

Non, non, tu me les vampiriseras pas. Je les protégerais de ta mauvaise influence black

16

de toute facon si ils sont du cote de kernell ils ne pourront jamais tomber du cote obscur du _nostub comme les nioubies que tu met du cote obscur des le depart en allant les chercher direct dans le forum question black
En préretraitre

17

gugusg a écrit :
de toute facon si ils sont du cote de kernell ils ne pourront jamais tomber du cote obscur du _nostub comme les nioubies que tu met du cote obscur des le depart en allant les chercher direct dans le forum question black

1. Le "côté obscur", c'est le kernel.
2. Il y en a un certain nombre d'ex-kernelleux qui sont passés au _nostub. J'en fais partie d'ailleurs: RUNPROG I était en kernel. C'est en programmant des TSRs (ce qui n'était pas possible en mode kernel à l'époque) que j'ai compris que le _nostub est plus pratique et tout aussi simple à programmer et que je suis devenu pro-_nostub. Et il n'y a plus aucun programme pour kernel sur mon site: RUNPROG II est en _nostub maintenant.
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é

18

Ce qui n'est toujours pas possible en mode kernel aujourd'hui de facon propre (Quoiqu'on puisse ruser).

19

tongue tongue tongue
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é

20

Ok tu auras ta RAM_CALL kernel::InstallTsr devil

21

Vive la compatibilité. grin roll

Pourquoi rajouter des RAM_CALLs incompatibles quand il y a déjà une méthode très compatible (plus compatible que n'importe quel programme kernel) pour écrire un TSR (le mode _nostub)?
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é

22

Parce que ca utilise le mode kernel et pas AMS tongue

23

Et il est où l'avantage? Pour moi, c'est un inconvénient, pas un avantage.
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é

24

De ton point de vue. Pas du mien.

25

hum
En préretraitre

26

Existe t'il un desassembleur pour les fichiers asm compilé ?
Watcha @ka JBJ @ka @ngelfire

ICQ: 109631918

27

Oui, ttdasm de la TIGCC Tools Suite.
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é

28

et ti92dasm, de la dba.

29

Mais ti92dasm ne marche que sur les programmes en mode kernel.
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é

30

oui, mais pour ceux ci vaut mieux l'utiliser : il reconnait les appels vers les libs smile