Envoyer un e-mail à Collection ThomsonCollection Thomson
EditoForum 2002Liens
Nanoreseau
Docs
Logiciels
Matériel
Imprimer le documentLes cours d'assembleur de Prehis-To
Retour à la liste

Initiation à l’assembleur 6809

Cours n°1

N'avez-vous jamais voulu apprendre à programmer en assembleur sur Thomson? L'assembleur étant pourtant le langage le plus proche de la machine, cela vous permettrait sans aucun doute de réaliser des programmes dont l'exécution serait beaucoup plus rapide que le Basic.

Familiarisons-nous donc avec ASSEMBLER, le programme d'assemblage sur Thomson:

  • Lancez ASSEMBLER en fichier CHG ou cartouche (de préférence la version 2.0, cette version sachant mieux gérer les FAT double densité)
  • Tapez "1" + RET. Vous êtes dans la barre de commande éditeur.
  • Tapez "X" + RET. Vous êtes dans le moniteur.
  • Tapez "Q" + RET. Vous êtes dans la page du menu.
  • Tapez "2" + RET. Vous êtes dans le moniteur.
  • Tapez "X" + RET. Vous êtes dans la barre de commande éditeur.
  • Tapez "Q" + RET. Vous êtes dans la page du menu.

Après cette gymnastique bien épuisante, entrez dans l'éditeur en tapant "1" + RET.

  • Tapez CNT+"C". Vous êtes dans l'éditeur.
  • Tapez CNT+"C". Vous êtes dans la barre de commande de l'éditeur. Le curseur bleu foncé réapparaît.

CNT+"C" est donc la commande magique pour passer de l'éditeur à la barre de commande de l'éditeur. L'éditeur va vous permettre d'écrire le programme en assembleur, la barre de commande de sauvegarder et charger vos fichiers, de sortir de l'éditeur, d'effacer le texte édité, d'assembler votre programme, etc...

Entrons dans l'éditeur en tapant une nouvelle fois CNT+"C" et écrivons notre premier programme assembleur pour TO: nous allons afficher tous les caractères standard à l'écran.

  • Tapez "DEBUT". Appuyez sur la barre espace.
  • Tapez "LDB". Appuyez sur la barre espace.
  • Tapez "#$20". Appuyez sur return.
  • Tapez "SUITE". Appuyez sur la barre espace.
  • Sur TO, tapez « JSR » ; sur MO, tapez « CALL ». Appuyez sur la barre espace.
  • Sur TO, tapez « $E803 » ; sur MO, tapez « $02 ». Appuyez sur return puis sur la barre espace.
  • Tapez « INCB ». Appuyez sur return puis sur la barre espace.
  • Tapez « BPL ». Appuyez sur la barre espace.
  • Tapez « SUITE ». Appuyez sur return puis sur la barre espace.
  • Sur TO, tapez « SWI » ; sur MO, tapez « STOP ». Appuyez sur return puis sur la barre espace.
  • Tapez « END » et éventuellement sur la touche return.
  • Tapez CNT+C pour revenir à la barre de commande de l'éditeur.

Le texte que vous avez édité doit être le suivant (avec son équivalent Basic pour la compréhension du programme). Dans la première colonne, le programme pour TO, dans la deuxième, le programme pour MO:

DEBUT LDB   #$20  |     DEBUT LDB   #$20  |   < 10 B=&H20
SUITE JSR   $E803 |     SUITE CALL  $02   |   < 20 PRINT CHR$(B);
      INCB        |           INCB        |   < 30 B=B+1
      BPL   SUITE |           BPL   SUITE |   < 40 IF B<&H80 THEN 20
      SWI         |           STOP        |   < 50 END
      END         |           END         |   - Fin du programme -

L'édition comporte 4 champs, c'est-à-dire 4 zones définies verticalement:

  • Le premier champ (où se trouvent "DEBUT" et "SUITE") est le champ étiquette (ou label). Sous Basic, chaque ligne est numérotée pour assurer les branchements par les GOTO et les GOSUB. Ici, ce ne sont pas des numéros de lignes mais des étiquettes que l'on utilise, qui marquent les endroits des branchements. Le nom des étiquettes est laissé évidemment au choix du programmeur.
  • Le deuxième champ (où se trouvent, entre autres, « LDB », « JSR » et « CALL ») est le champ instruction. Terme qui équivaut à « instruction » sous Basic.
  • Le troisième champ (où se trouvent « #$20 » / « $E803 » / « $02 » ) est le champ opérande. Là se trouvent les valeurs ou les registres incriminés.
  • Le quatrième champ (non utilisé ici) se trouve en appuyant sur la barre espace à partir du troisième champ. Vous pouvez inscrire là les commentaires pour votre programme. Même les minuscules, accentuées ou non, sont autorisées.

Le passage d'un champ à l'autre se fait donc par la barre espace.

Les déplacements du curseur se font, bien sûr, par les touches curseur.

Voyons succinctement comment fonctionne ce programme:

  • LDB #$20 La valeur $20 est chargée dans le registre (ou accumulateur) B. Cet accumulateur 8 bits est une espèce de mémoire flottante qui permet le passage de paramètres entre les programmes assembleur.
  • JSR $E803 (pour TO)/CALL $02 (pour MO) Sur TO, le programme effectue un gosub (Jmp to SubRoutine) à l'adresse $E803 qui effectue l'affichage d’un caractère par le Moniteur. Sur MO, le programme appelle la routine d’exception n° $02 qui effectue l’affichage d’un caractère par le Moniteur.
  • INCB La valeur dans le registre B est INCrémentée, c'est-à-dire qu'on lui ajoute une valeur (ici, une unité).
  • BPL SUITE BPL (Branch if PLus) implique que le branchement (GOTO) se fera tant que la valeur sera positive, les valeurs positives 8 bits allant de $00 (0) à $7F (127) et les valeurs négatives de $80 (128) à $FF (255). Comme ce sont les caractères standard qui nous intéressent, nous nous arrêterons à $7F (127).
  • SWI (pour TO)/STOP (pour MO) pour stopper l'exécution
  • END pour stopper l'assemblage. Même s’il se trouve du texte au-delà, l’assemblage s’arrêtera dès qu’il rencontrera la directive END.

Il ne vous reste plus qu'à assembler le programme, puisqu'un programme qui n'a pas été assemblé ne peut être exécuté.

Tapez donc "A" + RETURN. Si le nombre d'erreurs devant l'expression "Total errors" est différent de 00000, c'est que vous avez fait une faute de frappe dans le texte édité. Corrigez-la à l'aide des touche INS ou EFF et réassemblez le programme.

Passons maintenant dans le moniteur pour exécuter le programme assemblé. Appuyez sur une touche. Tapez donc "X" + RETURN puis "GDEBUT" + RETURN, "GDEBUT" équivalant à un "GOTO DEBUT". Tous les caractères standard sont affichés à l'écran, suivis du message de break généré par l'instruction SWI.

Pour sauver votre programme, retournez dans la barre de commande d'éditeur, tapez "S" + le numéro de lecteur + ":" + le nom de votre fichier. Le numéro de lecteur peut être "0", "1", "2", "3" pour le lecteur disquette, "4" pour le RamDisk et "C" pour la cassette. Le nom de fichier peut ne comporter qu'un maximum de 8 caractères puisque la sauvegarde et le chargement se font avec un suffixe ".ASM" par défaut. Sauf erreur, votre fichier est sauvé. Sinon, recommencez l'opération.

Pour le charger, tapez "L" + le numéro de lecteur +":" + le nom de votre fichier. Sauf erreur, votre fichier est chargé et le texte s'affiche à l'écran.

Pour quitter ASSEMBLER, retournez à la page de menu en tapant « Q » + RETURN puis sur « 9 »... ou appuyez sur le bouton poussoir du reset.

Vous découvrirez dans le « Manuel de l’assembleur 6809 du TO7/TO7-70 » de Michel Weissgerger (éditions Cedic Nathan) d’autres commandes d’Assembler, toutes aussi pratiques les unes que les autres, valables autant sur TO que sur MO. Elles y sont plus amplement expliquées.

Site
Plus
Forums
Code
Créations

*Site en favoris
*Page en favoris
*Site en démarrage
*Page en démarrage


Haut de page

Collection Thomson 2015 © Ghislain Fournier & François Mouret