Informatique industrielle

Disponible uniquement sur Etudier
  • Pages : 4 (922 mots )
  • Téléchargement(s) : 0
  • Publié le : 17 avril 2011
Lire le document complet
Aperçu du document
Apprendre l'assembleur 6809 en 10 minutes

Copyrigh (c)1998 Dan Truong, ENSSAT, 6 rue de Kerampont, B.P. 447, 22305 Lannion Cedex.

Syntaxe

Les commentaires sont précédés d'un ";" ou d'une"*".

par exemple: ; un commentaire * un commentaire

Les mnémoniques de l'assembleur et les pseudo-ops sont écrites sur 3 ou 4 caractères. Les noms choisis permettent de se rapeler facilement del'opération exécutée

par exemple: ADDA #$55 ; effectue l'addition A+$55->A DB $12 ; réserve un octet en mémoire, initalisé à $12 (declare byte)

Les constantes peuvent être écrite en ASCII, endécimal ou en hexadécimal.

par exemple:

; Les 3 déclarations suivantes sont équivalentes: db 'A' ; en ASCII db 65 ; en décimal db $41 ; en hexadécimal

Notez que le 6809 code tout sur des octets,les différentes façons d'écrire les valeurs ont donc juste pour but de faciliter la tache du programmeur (gerér du texte directement en ASCII, des entiers en décimal ou en hexa, etc.). Par exemple, onpourrait écrire du code illisible, et très dur à rédiger. Les deux bouts de codes suivant sont équivalents:

lda #$65 db 72 ; ici on a remplacé la mnémonique par son code-op db 'A' ; (notez qu'ilfaut déjà chercher pour le connaitre) bne suite$ ldx Message$ jsr AFF_TXT ...

lda #$65 cmpa #$65 ; c'est quand même plus lisible comme ca! bne suite$ ldx Message$ jsr AFF_TXT ...

Les labels font32 caractères maximum, ils sont suivis de ":". On différencie les majuscules des minuscules. Les labels globaux sont définis dans tous le programme dans tout le programme. ils doivent donc êtreuniques. Les labels locaux ne ne sont définis qu'entre deux labels globaux. Ils peuvent donc être redéfinis dans le programme. On les déclare en les faisant suivre d'un "$".

par exemple:

ROUTINE1: ;Label global, il ne peut être défini qu'une fois ldx #Message$ jsr AFF_TXT Menu$: ; Label local jsr LIRE_CAR cmpa #0 bne Menu2$ rts ; fin de routine Menu2$: cmpa #1 bne $Menu jsr MENU1 jmp Menu$...
tracking img