Poster un nouveau sujet Poster une réponse
assembleur
Auteur Message
grmycaire



Autorisation : Membre
Nb de messages : 38
Inscrit le : Lun 21 Oct 2013, 22:12
Posté le : Ven 29 Nov 2013, 19:28   Citer 

bonsoir, je souhalterais savoir si la ti 82 stats (fr) peut executer des programmes en asm precompilé (hexadecimal ou binair) sans shell ou kernel.
merci d'avance.

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Ven 29 Nov 2013, 19:51   Citer 

Bonjour,


Citer
asm precompilé

Ceci ne veut rien dire (l'asm n'est ni un langage compilé, ni interprété, et je ne voit pas ce que tu veux dire par "précompilé")
Mais il y a la possibilité de rentrer des codes asm en héxa directement dans un prgm, en rajoutant à la fin

Code
End
0000
End


Ensuite le prgm est lancé avec la syntaxe Send(9prgmXXX //Envoi(9prgmXXX en français.

Lien vers un tuto qui traite l'asm on-calc (à l'origine pour 83+, mais revu pour une compatibilité avec la ti 82stats et équivalents):
http://espace-ti.forumactif.com/t576-programmer-en-hexadecimal-c-est-possible

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 29 Nov 2013, 20:56   Citer 

Installation de programmes assembleur. http://tout82.free.fr/forum/sujet.php?sujet=2522

La 82stat ne supporte que le format lisible en hexadécimal (unsquish) et avec les mots-clés End:0000:End. Sinon il faut obligatoirement un shell.
La 83plus supporte les deux, avec le mot-clé adéquat au début (AsmPrgm ou $BB6D), et peut convertir le lisible en binaire avec AsmComp.
Le compilateur donne au moins un bianire, éventuellement un OBJ, il faut se débrouiller avec les outils disponibles sur internet pour insérer les données dans un 83p ou 8xp. Et avec les précautions de gestion des mot-clés.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
grmycaire



Autorisation : Membre
Nb de messages : 38
Inscrit le : Lun 21 Oct 2013, 22:12
Posté le : Ven 29 Nov 2013, 21:52   Citer 

merci beaucoup mais quand je lance un prog en hexa il y à une erreur syntaxe sur Envoi(9prgm[nom du prgm]

 Adresse email Haut de page Bas de page 
 
grmycaire



Autorisation : Membre
Nb de messages : 38
Inscrit le : Lun 21 Oct 2013, 22:12
Posté le : Ven 29 Nov 2013, 22:06   Citer 

l'asm n'est pas un language mais on peut "l'ecrire" sous une autre forme que l'hexa (un peut comme le basique mais en incompréensible). ce que je veus dire par asm precompilé, c'est que cette autre forme n'est pas lisible par la ti 82 stats qui ne comprend que l'hexa. il faut donc "traduire" cette forme "incompréensible" en hexa (la compiler). donc pour moi, "precompilé"="deja traduit en hexa".
je ne suis pas sur de ce que je dis mais je le dis quand même happy.gif
dis le moi si je me trompe.

 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3767
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Ven 29 Nov 2013, 22:54   Citer 

Ce n'est pas tout à fait ça mais cela ressemble.

*.bin binaire : série de 0 et 1 qu'on peut résumer en hexadécimal. C'est executable par un processeur. On ne peut pas le lire comme un texte car les octets et groupes d'octets sont interprétés comme des codes ascii ou utf ou autre.
Posons par exemple l'hexadécimal AAFFh.

*.obj objet : dans le cas de la TI on code chaque quartet (LU EN HEXADECIMAL) selon la table des tokens de la TI. Dans la mémoire le token "A" correspond à la valeur 41h et "F" à 46h.
On a donc en mémoire 41414646h mais la calculatrice afficherait "AAFF".
Pour obtenir un Obj, il faut exécuter un logiciel dédié. (OBJ83, par exemple)
Ou bien le compilateur doit créer un obj compatible mais je crois que cela n'existe pas.

Pour reformuler : ce que j'ai désigné en tant que fichier "objet" est en fait le codage de toutes les données éditables textuelles de la calculatrice.
Ce qu'on lit en hexadécimal dans l'éditeur de TI passe par ça.

*.83 ou 8xp : en soit il s'agit plus d'un conteneur avec des informations supplémentaires que d'un format.

unsquish 83p : Tu saisis l'hexadécimal via l'éditeur 83p. Puis ajoutes
:End
:0000
:End
sans espace ni ligne en trop y compris à la fin.
Alors on exécute avec Envoi(9prgm

binaire (squish) 83p : Tu copies le binaire AAFFh dans le conteneur 83p avec un outil fait pour ça tel que DevPac. Puis exécutes un shell.

unsquish 8xp : Tu copies l'hexadécimal dans un 8xp puis ajoutes le token "AsmPrgm" (BB6Ch) au début.
Tu peux alors éventuellement utiliser AsmComp() pour transformer en squish. Exécution avec Asm() ou plus rarement shell

binaire (squish) 8xp : Tu t'assures d'avoir BB6Dh au début du binaire puis tu copies dans le conteneur 8xp.
Ainsi l'exemple est BB6D41414646h mais la calculatrice refusera de l'afficher. On a grosso modo "#compiledprogram#AAFF".

////EDIT

En fait le shell force à exécuter du code compilé directement sans passer par le système d'exploitation.
Tandis que le format unsquish (lisible hexadécimal) est interprété à un moment ou à un autre par le système d'exploitation.

////fin edit

#########

Vérifies bien la syntaxe qui n'admet aucune variation.
Voici un exemple qui active Alpha, sur ti82stat/statsfr/83.

Code
:FDCB12E6
:FDCB12F6
:C9  // Retour à la ligne obligatoire après ça.
:End
:0000 // Aucune des ces lignes n'a d'espace.
:End  // Ceci est la dernière ligne.


Les (trois) lignes de codes peuvent être réparties en plusieurs lignes (ou même une seule) n'importe comment pourvu que les caractères soient tous par groupes paires dans chaque ligne.
Je rappelle que les ":" que j'ai écrit ne sont pas à saisir, car ils viennent des retours à la ligne.

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
grmycaire



Autorisation : Membre
Nb de messages : 38
Inscrit le : Lun 21 Oct 2013, 22:12
Posté le : Ven 29 Nov 2013, 23:28   Citer 

ok merci beaucoup pour ta reponse.

 Adresse email Haut de page Bas de page 
 
m@thieu41



Autorisation : Membre
Nb de messages : 856
Inscrit le : Mer 18 Juil 2012, 18:44
Posté le : Sam 30 Nov 2013, 10:33   Citer 

Je rajouterais juste qu'utiliser le terme "compiler" en parlant de l'asm est un abus de langage. Compiler consiste à traduire un langage haut niveau (C/C++ ou autre) vers un langage bas niveau (le langage machine, soit l'asm). Donc compiler de l'asm n'a aucun sens (on ne traduit pas d'asm en asm, et de toute façon le langage asm (il s'agit bien d'un langage) est du plus bas niveau possible ^^). Décompiler consiste à faire l'inverse (passer du langage machine à un langage haut niveau).
Pour l'asm, on parle d'assembleur (qui va convertir les mnémoniques (ex: ret) en code binaire/héxadécimal (ici C9)). Le contraire consiste à désassembler un code (passer d'un code binaire (C9) à des mnémoniques (ret)).

----------------------
Pour vous aidez dans vos débuts (et même ensuite ^^) :
*Tuto Algo->Ti Basic (par Linkakro) : Traduisez vos algo (de type algobox) en prgm pour votre TI!
*Catalogue des emplacements et traductions (anglais/français) des fonctions sur la TI.
*Faites vos propres programmes de maths (par ash)

Et au fait: la politesse n'a jamais tué personne winkle.gif
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2024 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink