CODINGHEBDOGICIEL ★ COURS D'ASSEMBLEUR- HEBDOGICIEL n°81 ★

La page pédagogique d'hebdogiciel 081: Quelques conseils pour programmer en Language MachineCoding Hebdogiciel

La page pédagogique d'hebdogiciel : Formation à l'assembleur

D'un point de vue théorique, vous aurez deux parties dans ce programme d'affichage. La première gérera un affichage, quel qu'il soit, à l'écran (souvent il suffit de se servir du sous-programme qui existe déjà dans la ROM de votre micro). La deuxième ressemblera à un tableau à une dimension qui contiendra votre message, chaque lettre étant rangée dans une case du tableau. A partir de cette structure (encore elle, mais elle est partout en langage machine !) de base vous aurez à choisir entre une routine qui ne vous servira que pour cet affichage spécifique ou une routine qui pourra gérer n'importe quel message, dont celui qui vous préoccupe.

Dans le premier cas il vous suffit « de compter les lettres du message et de réaliser une boucle faisant exactement appel au tableau autant de fois qu'il y a de lettres dans cet affichage. Dans le second, il vous faudra raisonner d'un point de vue général avant de vous attaquer au cas particulier qui vous inquiète.

En fin de compte je ne vous ai pas appris comment réaliser ce petit programme, mais j'ai essayé de vous faire saisir à quel point un problème inexistant en Basic peut devenir contraignant en langage machine. C'est pour cela que je tiens à vous répéter ce conseil (mille fois entendu peut-être) que lorsque vous vous lancez dans la programmation en langage machine, vous devez disséquer votre problème sur le papier jusqu'à l'obtention d'un algorithme transférable directement dans le micro-ordinateur. Fermons ici cette gigantesque parenthèse et revenons à nos questions plus générales sur la programmation en langage machine.

QUELQUES CONSEILS POUR PROGRAMMER EN LANGAGE MACHINE

Dans l'exemple précédent j'ai tenté de vous faire saisir l'extraordinaire complexité qui préside à la conception d'un programme en langage machine. Nous allons essayer de rationnaliser un peu plus nos connaissances de manière à éviter de sombrer dans le gouffre du programme impossible à réaliser ou à terminer.

Ne vous effrayez pas devant les nombreuses étapes que je vais vous décrire, certaines ne nécessiteront pas plus de quelques secondes pour être franchies.

1.  Débranchez votre micro, prenez un stylo et beaucoup de papier.

2.   Ecrivez en bon français ce que vous désirez réaliser, ainsi que le but que vous cherchez à atteindre.

3.  Tentez de séparer votre problème en un ensemble de petits problèmes, sachant que chacune des parties de cet ensemble devra répondre aux critères suivants :

a.  poser un seul problème

b.  être (relativement) indépendant des autres problèmes

c.  ne pas cacher un autre problème !!!

4.    Essayez d'établir un ordre chronologique entre les différentes parties que vous aurez dégagé à l'étape 3.

5.   Etablissez un organigramme (ou ordinogramme) des différentes parties que vous avez créées, en respectant l'ordre chronologique que vous venez de vous fixer.

6.   A partir de là, programmez sur le papier chacune des différentes parties de votre problème.

7.   Rallumez votre micro et testez chacune des petites routines que vous venez d'écrire.

Deux cas se présentent alors :

a. vos routines fonctionnent et vous pouvez continuer (étape 8)

b. au moins une routine ne marche pas ou ne fait pas ce que vous souhaitiez. Dès lors vous devez effectuer une vérification essentielle : avez-vous mal dégrossi le problème (et de ce fait vous vous retrouvez obligé de reprendre à l'étape 3) ? Si vous n'avez effectivement qu'une tâche à accomplir d'après votre papier, reprenez votre programmation sur le papier pour la corriger (et n'oubliez pas de comparer ce que vous avez à l'écran avec ce que vous avez écrit sur le papier).

8.  En vous basant sur votre organigramme, construisez sur le papier le programme qui vous permettra d'appeler chacune des routines que vous venez d'écrire au moment voulu.

9. Programmez sur votre micro et testez l'ensemble. Ca ne marche pas ? Revenez à l'étape 8 et reprenez pas à pas votre programme (sur le papier toujours) pour essayer de découvrir l'erreur. Ca ne marche toujours pas ? Reprenez votre organigramme (étape 4 et 5) et contrôlez que vous ne vous êtes pas abusé en vous lançant ainsi sur ce schéma-là.

10. Ca marche ! N'oubliez pas de sauvegarder votre oeuvre sur un support magnétique avant d'éteindre votre micro et de profiter d'un repos bien mérité.

Dans la série des conseils que l'on a plaisir à donner, mais que l'on trouve inutile de suivre, en voici de nouveaux :

1. Gardez la place d'introduire des commentaires dans vos listings (si votre programme d assemblage ne permet pas la création de lignes de REM) et commentez-le le jour même où vous le terminez.

2. Conservez au moment de la programmation la structure que vous vous êtes fixé sur le papier, sinon gare à la perte de temps lorsque vous chercherez le grain de sable qui bloque la machine.

3. N'hésitez pas à résoudre un problème de deux ou trois façons différentes, vous garderez la meilleure pour d'autres programmes.

4. Tentez de programmer des routines à application générale et non spécifique, vous ne serez pas obligé de la réécrire pour chaque cas particulier, vous pourrez la transférer d'un programme à l'autre.

Vous vous doutez que si je donne ce genre de conseils, ce n'est pas seulement parce que je m'inspire d'auteurs célèbres (Zaks ou Leventhal par exemple) mais aussi en me fiant à mon expérience personnelle de ce sport intellectuel qu'est la programmation en langage machine. En effet, rien ne vous oblige à appliquer les méthodes que je vous indique, mais sachez que nombre de programmeurs n'appliquent aucune structure à leur travail et se retrouvent rapidement obligés de suivre pas à pas ce qu'ils ont écrit pour en comprendre la signification.

Je me fais l'effet d'un vieux gâteux à insister de la sorte, mais il me parait vraiment nécessaire, indispensable même, que vous ne vous lanciez pas tête baissée dans la programmation sans avoir franchi une seule des phases préparatoires qui lui sont utiles.

Dorénavant vous allez pouvoir trouver quelques conseils de programmation sur des problèmes classiques posés par les micro-ordinateurs Vous ne serez en aucun cas tenu de vous y fier. Ce que je tiens a réaliser, c'est vous faire toucher du doigt des règles qui se retrouvent cycliquement dans différents cas de figure. J'irai même plus loin : si un problème se présente de telle façon que vous le trouvez insoluble, envoyez-moi la description précise de celui-ci. je pourrai peut-être vous aider à trouver une solution.

Enfin un dernier point me semble important a souligner : lors de l'utilisation du langage machine sur un micro-processeur donne par plusieurs personnes, vous pourrez découvrir autant de méthodes de programmation que de programmeurs pour résoudre un même problème. Je pourrai même dire qu'un programmeur chevronné programme un micro-processeur de manière si personnelle que sa programmation est reconnaissable entre toutes Nous pouvons considérer que son oeuvre est signée, s'il a réalise un programme entièrement sur ses idées et a laide d'astuces de programmation qui lui sont propres.

HEBDOGICIEL n°81 - 3 mai 1985

★ LICENCE: COMMERCIALE
★ ANNÉE: 1985
★ AUTEUR(S): ???

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 082 millisecondes et consultée 765 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.