π
<-
Chat plein-écran
[^]

nAssembler

C, C++, ASM...

nAssembler

Message non lude lkj » 11 Mar 2015, 18:30

As the title suggests, this is an on-calc assembler for the Nspire :)
It's written in python, so you need micropython on your calc.
All instructions I'm aware of are supported (except CDP, LDC, STC. They are useless on the Nspire)
What's still missing are some pseudoinstructions which don't add functionality but make your life easier,
like for example automatically creating x when you write LDR R0, =x
There is also no linker or anything which means that programs are just translated to binary in the order
they are written and the first line is also the entry point.
Read the readme in the spoiler below for more details on the assembly language syntax used or look at the example.

Please report bugs, missing instructions and feature suggestions.
The code is available at https://github.com/lkjcalc/nAssembler
Download at http://ti-pla.net/a821835

Readme a écrit:Usage
-----
Install micropython on your calc.
Launch the nassembler.py.tns file using micropython.
The program will ask you to specify the input file (containing the assembly source code)
and the output file (where the binary will be stored).
You have to specify the full path (for example /documents/test/clrscr.asm.tns)
If there are no errors, micropython will now tell you "Press any key to exit".
You should now see the output file after refreshing the docbrowser
(just go to the homescreen and back to the docbrowser).

Assembly language
-----------------
(Also look at the examples)
Instruction names must be preceded by whitespace
Labels must not be preceded by any whitespace
The instruction names and syntax are like in standard ARM assembly
(like in the official ARM online documentation)

All usual instructions are supported:
ADC(S), ADD(S), AND(S), B, BIC(S), BL, BX, CMP, CMN,
EOR(S), LDM.., LDR(B/T/BT/H/SH/SB), MCR, MLA(S), MOV(S),
MRC, MRS, MSR, MUL(S), MVN(S), ORR(S),
RSB(S), RSC(S), SBC(S), SMLAL(S), SMULL(S), STM..,
STR(B/T/BT/H), SUB(S), SVC/SWI, SWP(B), TEQ, TST, UMLAL(S), UMULL(S)

The DCD, DCDU, DCB and ALIGN directives are supported

Pseudo instruction (like PUSH, ADR etc) are not implemented at the moment.
Other instructions may be missing (report if you need one).

The first line of the source is also the entry point of the program.

Numeric literals:
Prefix with 0x for hexadecimal numbers, 0 for octal, 0b for binary.
Single characters enclosed in single quotes ' are interpreted as their ascii value
You can use DCB "some string" to create a string.



SCREENSHOTS0012.gif
SCREENSHOTS0012.gif (145.12 Kio) Vu 6398 fois
Dernière édition par lkj le 26 Jan 2017, 02:10, édité 2 fois.
Avatar de l’utilisateur
lkjProgrammeur
Niveau 3: MH (Membre Habitué)
Niveau 3: MH (Membre Habitué)
Prochain niv.: 76%
 
Messages: 13
Inscription: 30 Oct 2012, 00:25
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: nAssembler

Message non lude Lionel Debroux » 11 Mar 2015, 18:39

Very interesting :)

You had gone quiet for a little while, but you used some of that time to something pretty good ;)
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: nAssembler

Message non lude Adriweb » 11 Mar 2015, 19:06

That's indeed definitely interesting, good job :D
Image

MyCalcs: Help the community's calculator documentations by filling out your calculators info!
MyCalcs: Aidez la communauté à documenter les calculatrices en donnant des infos sur vos calculatrices !
Inspired-Lua.org: All about TI-Nspire Lua programming (tutorials, wiki/docs...)
Avatar de l’utilisateur
AdriwebAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 80.1%
 
Messages: 14605
Images: 1216
Inscription: 01 Juin 2007, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Twitter/X: adriweb
GitHub: adriweb

Re: nAssembler

Message non lude Lu_Lu54 » 13 Mar 2015, 18:53

What is it supposed to do ? Sorry, I didn't get it.
Image

Tu as une TI-nspire cx cas ?
Mes programmes :
certains utiles : CalcTriangles, HowManyDiv, DivEuclid step by step, factorisation de polynômes par la division euclidienne, Dénombrement, TransDioptres step by step
d'autres plus expérimentaux ;) : sommes2dés, DecPi
et encore plus à venir !
Avatar de l’utilisateur
Lu_Lu54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 3.4%
 
Messages: 449
Images: 8
Inscription: 06 Sep 2014, 14:30
Localisation: Près de Nancy
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère S

Re: nAssembler

Message non lude Lionel Debroux » 13 Mar 2015, 20:44

nAssembler consumes text data, more precisely source code for some dialect of ARM ASM, parses and validates it, and produces a native code program, which can be launched by Ndless - just like the Nspire ports of Micro Python and Duktape.
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Avatar de l’utilisateur
Lionel DebrouxSuper Modo
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 11.2%
 
Messages: 6859
Inscription: 23 Déc 2009, 00:00
Localisation: France
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: -
GitHub: debrouxl

Re: nAssembler

Message non lude Lu_Lu54 » 13 Mar 2015, 20:51

all right. I knew what an assembler was, but I didn't find the dialect concerned... thx!
Image

Tu as une TI-nspire cx cas ?
Mes programmes :
certains utiles : CalcTriangles, HowManyDiv, DivEuclid step by step, factorisation de polynômes par la division euclidienne, Dénombrement, TransDioptres step by step
d'autres plus expérimentaux ;) : sommes2dés, DecPi
et encore plus à venir !
Avatar de l’utilisateur
Lu_Lu54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Prochain niv.: 3.4%
 
Messages: 449
Images: 8
Inscription: 06 Sep 2014, 14:30
Localisation: Près de Nancy
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: 1ère S

Re: nAssembler

Message non lude Ti64CLi++ » 13 Avr 2015, 20:18

This is a good idea!!!
Very well !
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: nAssembler

Message non lude grosged » 15 Juin 2016, 15:41

Wouah ! J'ai installé micropython , nAssembler, et j'ai assemblé l'example.asm.tns en tst.prg.tns...
! ça marche :P

J'ai trouvé ça...
ARM Instructions Set : http://simplemachines.it/doc/arm_inst.pdf

Est-ce que c'est une doc pour l' ARM9 ?...

Je voudrais aussi savoir , lequel de ces ARMs est dans ma CX CAS ? ( https://fr.wikipedia.org/wiki/Architecture_ARM)

EDIT: Le voilà, le processeur de la CX CAS !

Image
(voir http://www.allaboutcircuits.com/news/te ... alculator/ )

re-EDIT: Bon, je m'approche du but, il y a 3 sortes d'ARM9 !

Image

voir http://www.arm.com/products/processors/classic/arm9/ ;)


EDIT FINAL : En fait fallait pas chercher si loin, il suffisait de consulter https://wiki.tiplanet.org/S%C3%A9ries_TI-Nspire_CX !
Où l'on peut lire "Processeur ARM926EJ-S " :)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Re: nAssembler

Message non lude Ti64CLi++ » 08 Jan 2017, 14:47

Je me permet de relancer ce topic, pour signaler que rajouter des instructions comme .WORD, .HWORD et d'autres relatives au stockage de données serait très utiles ^^
Et où puis-je trouver un bon tuto sur l'ASM de l'ARM9 de la TI Nspire CX CAS disponible en pdf si possible?
Image
Avatar de l’utilisateur
Ti64CLi++Modo
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Prochain niv.: 32.3%
 
Messages: 3441
Images: 75
Inscription: 04 Juil 2014, 14:40
Localisation: Clermont-Ferrand 63
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: ENS Rennes
GitHub: Ti64CLi

Re: nAssembler

Message non lude grosged » 18 Jan 2017, 16:51

Comme tu le sais déjà, je viens de commencer la rédaction d'un tuto sur l'Assembleur ARM9 ;)

Je me penche de nouveau sur l'excellent nAssembler de lkjI ...
En plus de la TI-nspire (via micro-python), on peut également le lancer depuis un ordinateur sous Linux, Mac, windows... grâce à Python 3 , bien sûr !! :p

Personnellement, je viens de lancer nAssembler depuis Python 3.4.2 (sur mon raspberry) ...ça marche nickel 8-)
Avatar de l’utilisateur
grosgedVIP++
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Prochain niv.: 30.2%
 
Messages: 770
Images: 75
Inscription: 14 Sep 2011, 12:29
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile

Suivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 11 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1972 utilisateurs:
>1960 invités
>7 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)