Accueil Ti-Gen Foire Aux Questions Chat sur le chan #tigcc sur IRC
Liste des membres Rechercher Aide
Bienvenue Invité !   Se connecter             Mes sujets   
Administrer
0 membre(s) et 1 visiteur(s) actif(s) durant les 5 dernières minutes Utilisateurs actifs : Aucun membre + 1 visiteur
Avant de poster sur le forum, il y a des régles de bases à respecter pour une bonne entente et un respect de tous.
Veuillez lire la charte du forum.
  :: Index » Forum Ti68K » Programmation C » le compilateur intégré (26 réponse(s))
./POST DE DEPART (post n°0)   Marquer comme non lu.
supprimé000 Ecrit le: Mardi 26 juillet 2005 à 01:23 Déconnecté(e)    Voir le profil de supprimé000 Envoyer un email à supprimé000 Envoyer un message privé à supprimé000  

Salut,
voilà je viens de tester le makeexec de Zeljko, et ça me fait m'intérroger:
Comment fonctionne ce programme, ou plus exactement, quelle est la nature du code généré par TIGCC pour que ce programme puisse en faire une chaine EXEC ?
    
./Post n°1   Marquer comme non lu.
LionelA Ecrit le: Mardi 26 juillet 2005 à 01:43 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


en fait je pense qu'il lit le code binaire et qu'il le transforme sous forme de chaine hexadecimale, c'est super simple en fait :) (et ce n'est pas un compilateur)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°2   Marquer comme non lu.
supprimé000 Ecrit le: Mardi 26 juillet 2005 à 01:49 Déconnecté(e)    Voir le profil de supprimé000 Envoyer un email à supprimé000 Envoyer un message privé à supprimé000  

Donc un programme compilé par TIGCC n'est qu'une série de bit ?
    
./Post n°3   Marquer comme non lu.
LionelA Ecrit le: Mardi 26 juillet 2005 à 01:52 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


exactement :)
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°4   Marquer comme non lu.
supprimé000 Ecrit le: Mardi 26 juillet 2005 à 02:19 Déconnecté(e)    Voir le profil de supprimé000 Envoyer un email à supprimé000 Envoyer un message privé à supprimé000  

Si le binaire devient Hexadécimal, la recopie diminue normalement la taille du programme,
mais alors pourquoi le programme avec Exec est plus lourd que celui compilé avec TIGCC?
    
./Post n°5   Marquer comme non lu.
LionelA Ecrit le: Mardi 26 juillet 2005 à 03:03 Déconnecté(e)    Voir le profil de LionelA Envoyer un email à LionelA Visiter le site WEB de LionelA Envoyer un message privé à LionelA  


C'est simple, la chaine hexadecimale est sous forme d'octet donc elle prend un octet (8 bits) pour 4 bits que prend le code sous forme binaire, c'est donc normal que la taille double
Auteur de Mode7 Engine pour ti68k
Auteur de F-ZERO for TI68k
Membre de Orage Studio
Mon site perso : http://www.tigen.org/lionela/
Le gite de mes parents à coté de Narbonne :
http://chaletdenis.free.fr/
    
./Post n°6   Marquer comme non lu.
limmt Ecrit le: Mardi 26 juillet 2005 à 07:42 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


epsilon :
Si le binaire devient Hexadécimal, la recopie diminue normalement la taille du programme,
mais alors pourquoi le programme avec Exec est plus lourd que celui compilé avec TIGCC?

N'importe quoi, un programme binaire et un programme hexadécimal ont exactement la meme taille %) c'est juste la vision du programme qui change (on pourrait aussi le voir en ASCII %))
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°7   Marquer comme non lu.
Lionel Debroux Ecrit le: Mardi 26 juillet 2005 à 08:40 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

La taille de la visualisation du programme en texte brut diminue, pas la taille du programme en nombre de bits.
Lionel Debroux - membre de TICT.
    
./Post n°8   Marquer comme non lu.
Folco Ecrit le: Mardi 26 juillet 2005 à 18:13 Déconnecté(e)    Voir le profil de Folco Envoyer un email à Folco Envoyer un message privé à Folco  


LionelA :
C'est simple, la chaine hexadecimale est sous forme d'octet donc elle prend un octet (8 bits) pour 4 bits que prend le code sous forme binaire, c'est donc normal que la taille double


#tri_supayr_fus#
<<< Kernel Extremist©®™ >>>
Pas la peine d'aller là plus d'une fois tous les six mois...

"Il faut apprendre pour savoir qu'il faut apprendre pour savoir."
    
./Post n°9   Marquer comme non lu.
Vertyos Ecrit le: Mardi 26 juillet 2005 à 18:19 Déconnecté(e)    Voir le profil de Vertyos Envoyer un email à Vertyos Visiter le site WEB de Vertyos Envoyer un message privé à Vertyos  

bah c'est logique ce qu'il dit, un caractère (8 bits) pour un "demi-octet" (4 bits), puisqu'il faut deux caractères hexa par octet du fichier binaire.
Membre de [ yAronet ] ^^
(et de [ 3l33t ] aussi, mais chut, coté obscur toussa...)
    
./Post n°10   Marquer comme non lu.
supprimé000 Ecrit le: Mercredi 27 juillet 2005 à 01:51 Déconnecté(e)    Voir le profil de supprimé000 Envoyer un email à supprimé000 Envoyer un message privé à supprimé000  

je comprend mieux, merci les gars
Limmt
N'importe quoi, un programme binaire et un programme hexadécimal ont exactement la meme taille

J'ai pas rêvé, la taille d'un code test en C a doublé en Chaine Exec.
    
./Post n°11   Marquer comme non lu.
limmt Ecrit le: Mercredi 27 juillet 2005 à 07:42 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


oui mais c'est a cause du format utilisé, la chaine exec est tout autant en binaire que le programme en C, sauf que chaque caractère ASCII (8bits) de cette chaine correspond à un caractère qui est en hexadéciaml dans le programme (4bits), ce qui fait que 4bits dans le programme seront 8 bits dans la chaine exec d'ou taille double
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°12   Marquer comme non lu.
Link Ecrit le: Mercredi 27 juillet 2005 à 09:49 Déconnecté(e)    Voir le profil de Link Envoyer un email à Link Visiter le site WEB de Link Envoyer un message privé à Link  

Ou, reformulé (il vaut mieux dire des choses de deux façons différentes avec toi, j'ai l'impression)

Le programme C compilé est directement stocké bit-à-bit, on appelle ça un fichier binaire. Mais ici, on ne parle pas de différence binaire/hexa : La différence, c'est entre binaire et texte.

La chaine Exec, c'est un texte, en notation hexadécimale. Ici, chaque octet du fichier binaire est représenté par deux caractères. (ex: un octet valant 192 est représenté par "C0").
Si la chaine était en notation binaire, chaque octet du fichier binaire serait représenté par huit caractères (octet 192 représenté par "11000000").

Donc, dans une chaine Exec, chaque octet du programme est représenté par deux caractères, et chaque caractère occupe un octet en mémoire. Il faut donc deux octets de chaine Exec pour représenter un octet du programme. Il est donc normal que la chaine Exec fasse deux fois la taille du programme.
    
./Post n°13   Marquer comme non lu.
supprimé000 Ecrit le: Jeudi 28 juillet 2005 à 01:39 Déconnecté(e)    Voir le profil de supprimé000 Envoyer un email à supprimé000 Envoyer un message privé à supprimé000  

C'est mieux ainsi je comprends mieux. #pcool#
Quelle est l'avantage de Exec si son utilisation est si rebarbative ?
    
./Post n°14   Marquer comme non lu.
Kevin Kofler Ecrit le: Jeudi 28 juillet 2005 à 01:48 Déconnecté(e)    Voir le profil de Kevin Kofler Envoyer un email à Kevin Kofler Visiter le site WEB de Kevin Kofler Envoyer un message privé à Kevin Kofler  


Que ça permet d'intégrer un fichier ASM à l'intérieur d'un programme BASIC (pas besoin d'un fichier ASM à part juste pour éteindre la calculatrice, par exemple, un Exec "4e444e750000 suffit).
Membre de l'équipe de TIGCC: http://tigcc.ticalc.org
Mainteneur du portage Linux/Unix de TIGCC: http://tigcc.ticalc.org/linux/
Membre de l'équipe de CalcForge: http://www.calcforge.org:70/

Participez à la reprise de Ti-Gen!
    
./Post n°15   Marquer comme non lu.
Link Ecrit le: Jeudi 28 juillet 2005 à 10:24 Déconnecté(e)    Voir le profil de Link Envoyer un email à Link Visiter le site WEB de Link Envoyer un message privé à Link  

trap #4 ; rts ?

D'ailleurs, il me semble que certains (moi compris) ont toujours une chaine Exec dans leur signature yN...

La mienne:
exec "41F84C0043FA0014303C000F3099D1FC0000001E51C8FFF64E75 07C008301048248E4B1C497029AC192409080D100BF0125012501FD008701FF80000"

(Oui, elle est longue ^^)
Qui affiche un sprite de Link (Extrait de Zelda LA) en haut à gauche de l'écran.

Ou encore Ximoon et son plantage personalisé ("Ximoon's interrupt")...


Enfin, comme dit Kevin, c'est le meilleure moyen de faire appel à des fonctions assembleur sans avoir à fournir un programme séparé (ou une "lib basic") pour ça...
    
./Post n°16   Marquer comme non lu.
supprimé000 Ecrit le: Vendredi 29 juillet 2005 à 02:34 Déconnecté(e)    Voir le profil de supprimé000 Envoyer un email à supprimé000 Envoyer un message privé à supprimé000  

Je vois. Autre préoccupation; le prototype de Exec si on peut le dire ainsi est
Exec string[,expr,...]
Ce qui vient après la chaine string est un prototype de paramètres à la fonction ou non ?
    
./Post n°17   Marquer comme non lu.
limmt Ecrit le: Vendredi 29 juillet 2005 à 07:43 Déconnecté(e)    Voir le profil de limmt Envoyer un email à limmt Visiter le site WEB de limmt Envoyer un message privé à limmt  


je crois que c'est ce qui est passé en argument à la chaine ASM non?
http://www.falco-fr.com/ - http://www.jump67.com/ - http://www.msf-league.com/
    
./Post n°18   Marquer comme non lu.
Lionel Debroux Ecrit le: Vendredi 29 juillet 2005 à 09:56 Déconnecté(e)    Voir le profil de Lionel Debroux Envoyer un email à Lionel Debroux Visiter le site WEB de Lionel Debroux Envoyer un message privé à Lionel Debroux  

Probable, car la chaîne Exec peut très bien vouloir récupérer des paramètres sur l'EStack.
Lionel Debroux - membre de TICT.
    
./Post n°19   Marquer comme non lu.
Link Ecrit le: Vendredi 29 juillet 2005 à 10:59 Déconnecté(e)    Voir le profil de Link Envoyer un email à Link Visiter le site WEB de Link Envoyer un message privé à Link  

J'ai posé une fois la question a Kevin, il m'a répondu que les paramètres de la chaine étaient comme ceux passés à un programme Asm, mais précédés de la chaine elle-même.

(A moins que j'aie mal compris, ça fait un moment)
    
  :: Index » Forum Ti68K » Programmation C » le compilateur intégré (26 réponse(s))
Pages : 1/2     « [1] 2 » »|

.Répondre à ce sujet
Les boutons de code
[B]old[I]talic[U]nderline[S]trikethrough[L]ine Flip Hori[Z]ontallyFlip [V]erticallySha[D]ow[G]low[S]poilerCode [G][C]ite
Bullet [L]istList Item [K] Link [H][E]mail[P]icture SmileysHelp
Couleurs :
Saisissez votre message
Activer les smileys
     

Forum de Ti-Gen v3.0 Copyright ©2004 by Geoffrey ANNEHEIM
Webmaster: Kevin KOFLER, Content Admins: list, Server Admins: Tyler CASSIDY and Kevin KOFLER, DNS Admin: squalyl
Page générée en 47.37ms avec 18 requetes