Compilateur 6089

Fermé
antihard - 18 oct. 2007 à 14:39
 Utilisateur anonyme - 26 oct. 2007 à 02:15
slt,voila mon prof d'informatique industriel m'a demander de realiser un compilateur pour 6809 qui permet d'assembler le fichier .asm et de transferer .hex generé vers un kit que je doit aussi realiser via le port serie.
le brobleme c que je ne sais pas comment progarmmé ce assembleur .
c'est il y a quelqu'un qui peut m'aider svp dresse moi votre reponse sur mon e-mail antihard @hotmail.com ou bien sur ce forum .merci en avance
A voir également:

4 réponses

Utilisateur anonyme
18 oct. 2007 à 15:08
Bonjour,

Pour réaliser un compilateur il vous faudra trouver la liste des instructions mnémonique du 6809.
Ensuite, balayé le fichier ASM pour produire une fichier Hexa.

ex.:
ASM                  HEX           Description
LDA #$64       ->   86 64   ->   Charge l'accumulateur A avec la valeur 64(16).


Le fichier HEX ressemblera a quelque chose comme :

0000 86 64 12 86 32 12 86 55 20 10 12 12 12 12 12 12
0010 etc...

Lupin
0
merci bcp mais mon vrai probleme c dans l'assemblage il faut distinguer entre les etiquette et les instruction dans la meme ligne et les traduire ensuite,ainsi calculer la valeur des sauts.
0
Utilisateur anonyme
26 oct. 2007 à 01:55
Bonjour,

voici un exemple bidon de la sytucture du fichier asm !

1                                                ;Commentaires ( définition externe )
2                                                xref "autre routine assembleur"
3; Commentaires ( allocation mémoire des variables
4             3000                    Mem1         equ      $3000
5; Commentaires ( début de programme )
6   0000 10 CE 01 00                   LDS                  #$0100
7   0004 CE 04 00                      LDU                  #$0400
8   0007 CC 00 00          Label1      LDD                  #$0000
9   000A FD 30 00                      STD                  Mem1
10  000D BD 00 00                      JSR                  Label8
11  000F B6 30 00                      LDA                  Mem1
12  0012 00 7C                         CPMA                 Mem5


il faut un alogorithme par passage je crois !

Au premier passage tu ne calcul que les octets de chaque instruction et placant les branchements à zéro.
Au deuxième passage, la tu peux calculer les branchements.

Lupin
0
Utilisateur anonyme
26 oct. 2007 à 02:15
suite :

voici une routine que j'ai codé, il y a for longtemps.
je la retraduit textuellement !
248  015B   36   36              transind      pshu           d,x,y
249  015D   8E   01  EA                        ldx                 #indic
250  0160   C6   07                            ldb                  #$07
251                                            loop
252  0162   A6   A0                              lda                    0,y+
253  0164   A7   00                              sta                    0,x+
254  0166   5A                                   decb
255  0167   26   F9                            until                eq
256  0169   37   36                            pulu                d,x,y
257  016B   39                                   rts


ce que je n'arrive pas a reproduire c'est que les espaces forment une structure exacte dans le fichier.

Lupin
0