Home

` Éditeur etmaere assembleur

image

Contents

1. l assembleur par le fait que l op rande est suivi par une virgule et PCR ainsi LDA TOTO PCR fera prendre TOTO en adressage relatif par rap port au PC Cette revue rapide des divers modes d adressage n est pas rappelons le un cours sur les modes d adres sage du 6809 puisque cela a fait l objet d un de nos articles d initiation mais seulement une pr sentation de la syntaxe utilis e par l assembleur pour reconna tre ceux ci A propos des messages d avertissement concernant les modes d adressage relatifs et pour all ger un peu la pr sen tation des listings toute utili sation d un adressage relatif trop long LBXX au lieu de BXX ou JMP au BRA n est pas indiqu e par un avertissement crit en clair mais simplement par une pe tite fl che plac e en premier caract re de la ligne concer n e Le for cage d un mode d adressage Ainsi que nous l avons ex pliqu ci avant le seul point pris en compte par l assem bleur pour savoir s il doit tra vailler en adressage direct ou tendu est la taille de l op rande Si elle est sur 8 bits c est du direct si elle est sur 16 c est de l tendu Comme cela conduit parfois des er reurs vous pouvez forcer un mode ou l autre Pour forcer un mode tendu il suffit de faire pr c der l op rande du sym bole gt ainsi LDA gt TOTO fera utiliser l adressage tendu quelle que soit la taille de TOTO Pour forcer un mode di rect
2. COMME NT A I Fig 1 Quelques lignes respectant la syntaxe assembleur MICRO INFORMATIQUE Commentaire RE _ _ _ _ _ _ COMMENTAIRE pee COMMENTAIR RES 256 11001010 26 FE par PIA 1 PIA 2 PIA 3 etc m me si l imprimerie en ajoute il ny a aucun espace dans ces expressions Des op rateurs logiques peuvent aussi tre utilis s dans les expressions ils travaillent N 1690 Mars 1983 Page 147 REALISATION sur 16 bits c est dire que l assembleur convertit les don n es concern es en mots de 16 bits et r alise ensuite l op ration logique sur ces mots Les op rations logiques sont le ET logique repr sent par un amp le OU logique repr sent par un le compl ment logi que repr sent par un le d calage droite repr sent par un gt et le d calage gauche repr sent par un lt lt Pour ces deux derniers op rateurs le d calage fait perdre les bits d cal s et fait entrer des z ros de plus le nombre de d calages est sp cifi de la fa on suivante TOTO gt N o N repr sente le nombre de d calages droite dans ce cas qui seront r alis s sur la don n e dont la valeur est affect e l tiquette TOTO Enfin il est possible d utili ser des op rateurs de relation ou de comparaison Ce
3. MICRO INFORMATIQUE R alisez votre ordinateur individuel diteur et macro assembleur sur disquette OMME nous vous l avons annonc le mois der sera termin e l diteur sauve ment l dition Ce fonctionne nier nous allons vous pr senter aujourd hui le gardera le fichier ainsi dit sur ment est logique puisqu il per mode d emploi de l diteur et du macro assem disque avec le nom sp cifi et met de conserver toujours une l extension sp cifi e TXT par copie du fichier avant la der ot M bpian APPECREET TONNE d faut Cela signifie que vous ni re dition en cours alors aurez alors sur le disque deux qu il est parfaitement inutile de VE nsc 7 fichiers l un muni d une ex garder une copie d un fichier L diteur sur disquette de travail est galement possible d utiliser la syntaxe suivante EDIT FICHIER1 Fl CHIER2 dans ce cas le fichier appel FICHIER 1 doit exister et va tre charg en m moire de l diteur lorsque la session d dition sera finie le fichier ainsi dit sera sauvegard sur disque sous le nom FICHIER2 FICHIER1 restant bien s r pr sent sur le disque tel qu il tait avant dition Cette syn taxe respecte les r gles ci avant pour les num ros de lec teurs et les extensions tension BAK qui est votre fi toutes les tapes d
4. par Saint ignan Informatique RAR avec et sans les lecteurs de disquettes SOURCES lt FICHIER OBJET gt lt OPTIONS gt o FICHIER SOURCE est le nom du fichier assembler dont l extension par d faut est TXT et le lecteur par d faut celui de travail Si FICHIER OBJET est sp cifi le pro gramme assembl sera mis sur disque sous ce nom de fichier Si FICHIER OBJET n est pas pr cis le nom du fichier source est repris mais affect de l extension BIN pour bi naire et le programme assem bl est sauvegard sous ce nom l Des options peuvent tre ajout es sur cette ligne de commande en les faisant pr c der d un signe Nous allons en voir la liste ci apr s mais auparavant voici quel ques exemples de commandes d assemblage valables ASMB TOTO assemble le fichier TOTO TXT pris sur le lecteur de travail et place le r sultat en TOTO BIN sur le lecteur de travail ASM O TITI 1 PROG assemble le fichier TITI TXT pris sur le lecteur O et place le r sultat ainsi obtenu n PROG BIN sur le lecteur 1 Les options du macro assembleur Elles sont pr cis es sur la ligne de commande comme ex tu es d une lettre par option Si plusieurs options sont de mand es simultan ment il faut placer toutes les lettres correspondantes les unes la suite des autres dans n im porte quel ordre mais sans signe ou espace entre les let tres L option B interdit
5. Le principe en est fort simple Au moyen de directives ad qua tes on indique l assembleur qu il doit calculer une expres sion expression qui est fonc tion du param tre que nous avons voqu ci avant et selon le r sultat de ce calcul il doit assembler ou non tel ou tel morceau de programme Deux directives sont principale ment utilis es IF et ENDIF Leur utilisation se fait comme indiqu figure 9 L expression qui suit le IF est calcul e Si elle est vraie c est dire si elle donne un r sultat non nul les lignes comprises entre IF et IF EXPRESSION ENDIF sont assembl es si l expression est fausse c est dire si elle donne un r sultat nul les lignes comprises entre IF et ENDIF sont ignor es Pour simplifier encore la ma nipulation de cet assemblage conditionnel une troisi me di rective a t introduite c est le ELSE qui a quasiment le m me sens que dans le IF THEN ELSE du Basic La fi gure 10 vous indique comment placer ces directives et ce qui se passe alors Il est possible d imbriquer les boucles IF ELSE ENDIF les unes dans les autres mais il faut prendre la pr caution de faire des imbrications analo gues des cercles concentri ques c est dire qu il ne faut pas sortir d une boucle dont le ENDIF n a pas t atteint Pour simplifier encore votre travail il est possible de faire appel la directive IFN qui fonctionne comme le IF ma
6. diat lorsque l op rande est pr c d e du symbole di se ainsi LDA 10 chargera la valeur d cimale 10 dans l accumulateur A et LDB TOTO chargera la valeur af fect e l tiquette TOTO dans l accumulateur B Adressage relatif court et long l assembleur est inform du mode choisi gr ce l ins truction d une part puisque par exemple vous crirez BRA pour un branchement en adres sage relatif court et LBRA en adressage relatif long mais aussi par la valeur du d place ment qui suit l instruction d placement qui est cod sur 8 bits en relatif court et sur 16 bits en relatif long Par contre l assembleur ne se permet pas de corriger vos erreurs Ainsi supposons que vous criviez BRA TOTO et que TOTO soit au del de la plage 127 128 autoris e en adressage relatif court l assembleur pla cera un message d erreur ce niveau branchement relatif trop long mais ne changera pas le BRA en LBRA De m me si vous crivez LBRA TOTO et que TOTO puisse tre atteint en adres sage relatif court l assembleur ne changera pas le LBRA en BRA mais placera un avertisse ment ce niveau un avertisse ment et non une erreur car cela n emp chera pas le pro gramme de fonctionner Adressage tendu comme c est le mode le plus courant i g Priorit des op rateurs le 1 est le plus prioritaire et le plus simple d emploi vous n avez rien faire pour le signaler toute op
7. ditions in chier avant dition l autre de term diaires m me nom mais avec exten sion TXT qui est votre fichier apr s dition Cette fa on de faire est remarquablement in t ressante car elle permet en cas de grosses erreurs lors de l dition d un fichier de tou jours avoir sous la main la ver sion pr c dente pour pouvoir se rattraper Ce deuxi me mode de fonc tionnement conduit plusieurs remarques dict es par le bon sens et par le vieil axiome pourquoi faire compliqu lorsque l on peut faire sim pe l est fortement recom mand d utiliser pour tous les fichiers diter l extension par d faut TXT Il est fortement d conseill de donner un fichier une ex tension BAK car on risque alors de le confondre avec un fichier cr par l diteur l est vident que si l on dite plus de deux fois un m me fichier il va y avoir un probl me puisque lors de la deuxi me dition l diteur va chercher cr er un nouveau fichier avec extension BAK alors qu il existe d j puisqu il avait t cr lors de l dition pr c dente L diteur va alors vous demander s il peut effa cer le fichier muni de l exten sion BAK de l dition pr c dente le fait de r pondre N pour non termine pr matur La description de son mode d emploi va tre relativement rapide puisque ce programme est un sur ensemble de l di teu
8. s et de notions de base largement comment es et explicit es Table des mati res Les nombres Les variables Les fonctions Les fonctions arith m tiques Les fonctions trigo nom triques Les fonctions de conversion de type Les d finitions de fonction Les cha nes Les fonctions de cha ne Les instructions Les expressions Les expressions arithm tiques Les expres sions alphanum riques Les expressions logiques Les ins tructions d affectation Les sous programmes Les trans ferts de contr le La mise au point La correction program m e des erreurs Les boucles Listes et tableaux La lec ture des donn es L ex cu tion d un programme L affi chage l cran La d finition des zones d impression Les fichiers Index des mots r serv s Editeur McGraw Hill En vente la Librairie Parisienne de la Radio Introduction aux circuits logiques par J Letocha Ce volume d introduction aux circuits logiques est des tin principalement aux tu diants en lectrotechnique Chaque chapitre contient une s rie d objectifs un texte d in troduction un cours th orique et se termine par un ensemble de probl mes A l int rieur de chaque chapitre des sous sec tions ind pendantes traitent chacune d un sujet bien d fini La partie cours est illustr e par de nombreux exemples et sch mas En appendice son
9. contenu de DEC FLOPOS9 cette erreur est r par e figure 21 Nous pr sentons nos excu ses aux personnes qui ont un peu attendu leurs lettres d in _ formations 6809 et leurs pro grammes d but 1983 le d m nagement de l auteur a en effet allong quelque peu ses d lais de r ponse cette p riode EA Pour r pondre un pro bl me qui nous est tr s sou vent soumis nous consacre rons quelques lignes dans notre prochain num ro au choix d une imprimante Toujours pour r pondre des questions qui reviennent galement souvent l auteur pr cise que hormis les compo sants lectroniques classiques de cette r alisation qui peu vent tre approvisionn s quasi ment partout Pentasonic par exemple les poss de quasi ment tous les composants particuliers tels que circuits im prim s transformateur bo tier m moires de d codage d adresse pr programm es ne sont fournis sa connais sance et avec son autorisation que par trois soci t s qui sont Facim Saint Ignan Informati que et Micropross Il d cline en particulier toute responsabilit quant au mauvais fonctionne ment du syst me d un ap provisionnement de ces com posants particuliers surtout pour les m moires pr pro gramm es ailleurs et ce jus qu plus ample inform De m me et pour les lecteurs de disques souples malgr de bell s promesses faites par divers fournisseurs nous n avons essa
10. cune extension n est pr cis e TXT est prise par d faut ainsi EDIT TOTO ditera le fi chier TOTO TXT sur le lecteur N 1690 Mars 1983 Page 143 REALISATION Les caract res de contr le Leurs r les sont identiques ceux que nous avions d finis pour l diteur sur cassette Il faut cependant faire attention au fait que la commande TTY SET vue le mois dernier per met de red finir certains d en tre eux Si vous utilisez le DOS tel qu il vous est fourni les d finitions des caract res de contr le de l diteur DOS sont identiques celles de l diteur Sur cassette si vous avez mo difi la d finition de certains d entre eux et en particulier de EL BS et DL ces modifi cations seront prises en compte par l diteur disque qui se conformera alors celles ci Ainsi par exemple le carac t re d effac ment d une ligne est CNTRL X sur l diteur cas sette le DOS d origine et donc l diteur disque si au moyen de TTYSET vous avez d cid que ce caract re serait CNTRL Z ce sera CNTRL Z qui deviendra le caract re d ef facement de ligne pour l di teur disque Cela nous conduit renouveler le conseil que nous donnions le mois dernier au sujet de TTYSET sauf be soin vraiment imp rieux termi nal non standard par exem ple ne changez pas ces caract res de contr le Les nouvelles commandes Compte tenu des possibili t s tr s tendues de la ve
11. il suffit de faire pr c der l op rande du symbole contraire lt ainsi lt TOTO fera utiliser l adres sage direct quelle que soit la taille de TOTO Dans ce der nier cas l assembleur consi d re que les 8 bits de poids lieu d un cet assembleur LDA fort de l adresse TOTO sont contenus dans le DPR et il code uniquement les 8 bits de poids faible Pour viter toute confusion il faut imp rativement que l op rande pr c d e de ce symbole soit la premi re d une expression sinon l assembleur consid rera ce symbole comme un op rateur de rela tion et cela aura des r sultats totalement diff rents de ceux attendus Les instructions Nous n allons pas donner ici la liste des instructions 6809 qui a t publi e sous forme de tableau r sum et qui a t d crite ensuite dans nos arti cles d initiation Nous allons nous limiter quelques remar ques quant la syntaxe Toutes les instructions fai sant appel un registre doi vent tre crites accol es au registre LDA CMPA etc mais un espace est aussi tol r entre l instruction et le nom du registre si cette instruction existait d j en 6800 ainsi l on doit crire en 6809 CMPA mais l assembleur comprend aussi CMP A qui tait la syntaxe 6800 Toutes les instructions qui font appel plusieurs registres sont s par es de ceux ci par un espace et les registres in tervenant sont s par s les uns des
12. ou de codes conditions que l on trouve aussi sous l appellation CCR dans certaines fiches techniques DP pour le registre de page directe que l on trouve aussi sous l appellation DPR dans certaines fiches techniques PC pour le compteur ordinal le Program Counter Les expressions sont consti tu es par des donn es combi n es entre elles au moyen d op rateurs arithm tiques lo giques de relation ou de d ca lage Ces donn es peuvent tre constitu es par Des constantes num riques qui seront converties par l as sembleur en entiers cod s sur 16 bits S ils sont plus grands que ce que peut admettre un tel codage ils seront tronqu s en cons quence et cela sera signal par un avertissement sur le listing si l option W n a pas t mise en place Ces constantes num riques peu vent tre exprim es en d ci mal binaire hexad cimal et octal Il faut les faire pr c der d un pr fixe en cons quence comme indiqu dans le tableau de la figure 2 ainsi la valeur 10 consid r e en d cimal sera crite 10 en hexad cimal elle serait not e 10 et en octal 40 Des caract res alphanum ri ques qui sous r serve qu il soient pr c d s par une apos trophe seront convertis par l assembleur en leur code ASCII Ainsi A sera converti en 41 puisque le code ASCII de A est 41 Tous les caract res imprimables sont autoris s Des tiquettes qui respec tent les contrain
13. para m tre remplacera amp 1 le deuxi me amp 2 etc le neu vi me amp 9 Si un nombre insuf fisant de param tres est fourni Sur une ligne d appel de ABCD MACRO Toujours g n r IFNC amp 2 OUI EXITM ENDM G n r seulement si amp 2 OUI macro tous les amp N non satis faits seront remplac s par des z ros Les param tres pass s doi vent tre fournis comme indi qu ci avant s par s par un espace du nom de la macro et s par s entre eux par des vir gules Ils peuvent tre des constantes num riques mais aussi des tiquettes des cha nes de caract res ou m me des instructions Les cha nes de caract res doivent tre comprises entre deux guille mets ou deux apostrophes ou tre constitu es par une suite de caract res alphanum riques sans espace La fi gure 18 montre un exemple bien choisi qui met en applica tion le fait que les param tres peuvent tre peu pr s n im porte quoi Remarquez qu un m me symbole amp N peut appa ra tre plusieurs fois dans une macro il sera chaque fois remplac par la bonne valeur c est dire celle qui corres pond la N position dans la ligne d appel de la macro Pour accro tre encore la souplesse d utilisation des ABCD PARAMETRE1 OUI fera g n rer toute la macro ABCD PARAMETRE1 NON fera g n rer la premi re partie de la macro Fig 19 Exemple d uti
14. rande ne rentrant pas dans le cadre d un autre mode d adressage est consid r e comme tant en adressage tendu ainsi LDA TOTO chargera A par le contenu de la m moire d adresse TOTO Adressage direct lui non plus n a pas besoin d indica tion particuli re puisque c est en r alit une forme un peu sp ciale de l adressage tendu La seule chose utilis e par l assembleur pour faire la diff rence entre ces deux modes est le fait que l op rande soit sur 8 bits o sur 16 bits Si elle est sur 16 bits c est un adressage tendu si elle est sur 8 bits c est un adressage direct Comme cette m thode de s lection est un peu brutale et peut conduire parfois des r sultats ind si rables il est possible de forcer un adressage tendu m me lorsque l op rande tient sur 8 bits cela est d crit dans les lignes quiisuivent Adressage indirect tendu pour signaler ce mode l as sembleur il suffit que l op rande concern e soit comprise entr deux crochets attention pas deux parenth ses ou deux accolades ainsi LDA 1000 chargera A par la valeur conte nue dans la case m moire dont l adresse est elle m me conte nue en 1000 Attention si vous poss dez GCGGAO9 et une imprimante adapt e aux caract res fran ais voir article suivant les crochets ne peu vent tre imprim s puisque le crochet ouvert est en fait le symbole et le crochet ferm le symbole 8 cela n a aucune
15. ses toutes deux comme LDA par l assembleur Des chiffres de O 9 peuvent aussi tre pr sents dans ce champ Ce champ instruction est termin par un espace s il est suivi par une op rande ou par un es pace ou un retour chariot s il n est suivi par aucune op rande Le champ op rande suit toujours une instruction ou pseudo instruction dont il est s par par un espace comme dit ci avant propos du champ instruction peut contenir de nombreuses informations diff rentes puisque cela d pend de l instruction ou de la pseudo instruction qui le pr c de en particulier et comme expliqu Page 146 Mars 1983 N 1690 en d tail ci apr s on peut y trouver des tiquettes qui r pondent alors aux normes ex pos es ci avant pour le champ tiquettes des registres des constantes num riques des caract res alphanum riques des expressions math mati ques etc Les seules contrain tes relatives ce champ sont qu il ne doit pas contenir d es pace qu il doit tre termin par un espace ou un retour chariot Le champ commentaire per met de mettre des commentai res sur les lignes de listing il est optionnel mais s il est pr sent il doit respecter les r gles suivantes il doit commencer par un espace celui qui doit terminer le champ op rande ou le champ instruction par exemple il peut contenir tous _les caract res ASCII de code compris en
16. suivant TITI RMB 1 Le premier octet se serait encore appel TOTO mais le second EXPRESSION se serait appel TITI Atten tion RMB ne fait rien sur les octets r serv s c est dire qu ils ne doivent pas tre consid r s comme contenant une valeur pr d finie FCB permet de placer en m moire des constantes cod es sur 8 bits L utilisation en est la suivante ETI QUETTE FCB lt EXPRES SION 1 gt lt EXPRESSION2 gt lt EXPRESSIONN gt o EXPRES SIONN sont des expressions qui seront tronqu es si n ces saire pour tenir sur 8 bits Ainsi TOTO FCB 10 25 pla cera 10 hexad cimal en m moire et cette m moire aura pour adresse TOTO et placera 25 d cimal dans la case m moire d adresse suivante qui pourra alors tre r f renc e par TOTO 1 par exemple FDB a le m me r le que FCB mais place en m moire des mots de 16 bits La syn taxe est la m me que pour FCB mais les expressions sont tron qu es si n cessaire 16 bits Le placement en m moire a lieu conform ment aux r gles propres aux microprocesseurs Motorola savoir poids forts l adresse n poids faibles l adresse n 1 Si l expression qui suit le FDB tient sur 8 bits l octet de poids fort est mis 00 mais en aucun cas l assem bleur ne transforme le FDB en FCB Aucun message n est g n r dans ce cas puisque vous pouvez tr s bien d cider de coder sur 16 b
17. un disque prot g en criture et si vous le demandez un message d er reur vous rappellera gentiment l ordre Apr s la frappe de la com mande sous une des formes ci avant l diteur se charge en m moire se lance et deux cas peuvent alors se produire Le nom de fichier sp cifi n existe pas dans ce cas l diteur affiche le message NOUVEAU FICHIER et se place en mode d insertion de ligne partir de la ligne1 00 Lorsque la session d dition sera termi n e l diteur sauvegardera ce que vous aurez ainsi dit dans un fichier qu il cr era avec le nom que vous avez donn Le nom de fichier sp cifi existe dans ce cas l diteur change son extension de ce qu elle tait TXT en principe en BAK et laisse le fichier ainsi d baptis tel quel sur le dis que de plus il charge ce fi chier dans sa m moire de tra vail et se place ensuite en mode d attente de commande Lorsque la session d dition L appel de l diteur Pour lancer l diteur sur dis quette il suffit de frapper EDIT NOM DE FICHIER o NOM DE FICHIER repr sente le nom que vous voulez donner au fichier que vous allez ainsi cr er ou le nom d un fichier d j existant mais que vous d sirez diter Si aucun num ro de lecteur n est pr cis celui de travail est pris par d faut et si au
18. 008 B 1000 LDA 1000 sage de param tres Soit par 000B D 08 LDB E1000 Pompe e petit programme SAR NOP LES PARAMETRES VONT MEME de la figure 15 qui a pour fonc LOGE 12 NOP DANS LES COMMENTAIRES tion d ajouter NUM1 NUM2 et 000F 86 03 RES LDA 3 DE oM et de mettre le total 591 oh o TOTO TST MioooM dans SOMME Bien que ce pro et DEEE ENDM EE ee gramme d pende de valeurs qui lui sont ext rieures Fig 18 Exemple montrant la polyvalence des param tres dans une macro instruction N 1690 Mars 1983 Page 153 REALISATION NUM 1 NUM2 et NUM3 il est possible d en faire une macro instruction visible en fi gure 16 Nous y remarquons que les trois nombres ont t remplac s par le symbole et commercial amp suivi par un chiffre de 1 3 Lorsque nous allons appeler cette macro dans notre programme nous allons le faire de la fa on sui vante ADD3 NUM1 NUM2 NUM3 cela aura pour effet de faire substituer l assembleur amp 1 par NUM1 amp 2 par NUM2 et amp 3 par NUM3 et il produira le listing de la figure 17 En d autres termes il est possible de d finir dans une macro jusqu neuf param tres qui seront imp rativement re pr sent s par un et commer cial amp suivi par un chiffre de 1 9 Lors de l appel de la macro la ligne d appel devra contenir autant de param tres que n cessaire pour la macro concern e et le premier
19. A l adresse 1A et 1B se trouve l adresse d un sous pro gramme qui est appel au d but de chaque commande SAVE ou WRITE et qui peut servir par exemple mettre en marche un magn tophone en enregistrement Dans la version d origine de l diteur ces adresses contiennent FD4C qui est l adresse d un sous programme de TAV BUGOS qui g n re des carac t res de synchronisation sur la cassette pour un meilleur fonc tionnement de l interface cas sette Si vous ne souhaitez pas utiliser cette possibilit il suffit de mettre 0000 en 1A et 1B A l adresse 1C et 1D se trouve l adresse d un sous pro gramme qui est appel la fin de toute commande WRITE ou SAVE Si vous ne souhaitez pas utiliser cette possibilit il vous suffit de laisser ces adresses le 0000 qui s y trouve d origine A l adresse 1E et 1F se trouve l dresse du sous pro gramme de sortie de caract re appel lors d un SAVE ou d un WRITE Dans la version d ori gine ces adresses contiennent FD37 qui est l adresse du sous programme de sortie d un caract re sur l interface cassette de TAVBUGOS9 Vous pouvez y mettre tout sous pro gramme correspondant vos d sirs la seule contrainte tant que le caract re sortir se trouve dans l accumulateur et qu aucun registre du 6809 ne doit tre d truit A l adresse 20 et 21 se trouve l adresse du sous pro gramme d entr e de caract re appel lors d un READ Dans la version
20. FE Fig 6 Instructions de contort comprises par l assem _bleur 6809 N 1690 Mars 1983 Page 149 REALISATION directive est facultative car l assembleur peut s arr ter seul lorsqu il ne trouve plus rien dans le fichier assem bler Une autre utilisation de cette directive est de permet tre de donner au fichier ainsi assembl une adresse de transfert voir la commande SAVE de la notice du DOS et ce automatiquement il suffit de terminer le programme par END EXPRESSION o expres sion est une tiquette ou la valeur de l adresse de d but du programme pour que le fi chier BIN cr par l assembleur soit muni de cette valeur comme adresse de transfert RMB permet de r server des octets en m moire et de leur donner un nom sous forme d une tiquette l utilisation en est la suivante ETIQUETTE RMB lt EXPRESSIONZ o ETIQUETTE est l tiquette qui correspondra ou au pre mier des octets ainsi r serv s et o EXPRESSION in dique le nombre d octets r server Ainsi TOTO RMB 2 r serve 2 octets de m moire le premier s appelant TOTO Plusieurs utilisations sont pos sibles lors de r servations de multiples octets selon votre fa on de travailler ainsi dans l exemple ci avant les 2 octets r serv s pourront tre appel s par TOTO pour le pre mier et par TOTO 1 pour le second mais vous auriez aussi pu faire TOTO RMB 1 puis la ligne
21. SOMME EQU LBSR chaque fois que c est n ASLB cessaire serait tout simple ROLA Re De de ADD3 ns ne ment r crit dans le pro Dre 000 D3 08 ADDD NUM3 gramme principal Nous allons 000E DD OB STD SOMME voir qu en fait cela va beau ASLB He coup plus loin mais ne br lons ml Fig 15 Exemple de programme d addition pas les tapes des trois nombres NUM1 NUM2 et NUM Nous allons prendre en Fi5 13 Exemple de macro instruction exemple une macro instruction simple comme indiqu fi gure 13 La succession d ins kKAPPEL DE LA MACRO INSTRUCTION DANS UN PROGRAMME tructions que nous avons crites permet de r aliser un d calage 0000 ASLD4 arithm tique gauche de qua 9000 58 ASLB tre positions du registre D 9001 49 ROLA double accumulateur form 0002 58 me par la mise bout bout de A et Sar a ASLB B Pour faire une macro ins 0005 49 ROLA truction de cela il suffit 0006 58 ASLB d crire comme nous l avons 0007 49 ROLA fait ASLD4 MACRO en d but ENDM de cette suite d instructions pour que l assembleur voyant le mot cl MACRO affecte l tiquette qui pr c de la EXEMPLE DE MACRO INSTRUCTION AVEC PARAMETRES macro instruction constitu e par toutes les instructions Fig 14 Exemple d assemblage et d appel de la macro de la figure 13 comprises entre le mot ADDS MACRO MACRO et le mot ENDM DE an ASLD 4 est le nom de la ADDD amp 3 macro instruction la s
22. autres par des virgules Par exemple vous crirez TFR A DP ou EXG A B ou PSHS A B CC DP etc Les mn moniques propres au 6800 et qui existent en tant qu instructions 6809 mais qui ne s crivent plus de la m me fa on sont aussi compris par Ainsi com prend il LDAA LDAB STAA STAB CPX qu il interpr te respectivement par LDA LDB STA STB et CMPX Les instructions typique ment 6800 qui n existent plus en 6809 sont aussi comprises par cet assembleur qui les tra duit automatiquement par la ou les instructions 6809 donnant la m me fonction La figure 4 donne la liste de ces instructions typiquement 6800 Enfin et comme si ce n tait pas suffisant cet as sembleur comprend aussi des mn moniques du 6801 et les remplace par la ou les ins tructions 6809 qui accomplis sent la m me fonction ces mn moniques sont indiqu s fi gure 5 De plus il autorise aussi des mn moniques de confort qui sont plus par lants que ceux d origine et qui sont eux pr sent s fi gure 6 Les directives de l assembleur Ces directives que l on ap pelle aussi pseudo instruc tions ont plusieurs fonctions mais quelles que soient celles ci ces directives ne doivent pas tre confondues avec des instructions du programme assembler Elles n ont une ac tion qu au niveau de l assem bleur pour lui donner certaines indications relatives des ti quettes ou des actio
23. cepts expos s ci apr s vont peut tre vous sembler tranges si vous tes n ophyte en programmation assembleur ne vous en inqui tez pas il vous suffira de ne pas faire appel ces possibilit s au d but par la suite lorsque vous serez devenu un pro _grammeur chevronn vous ap pr cierez leur existence L assemblage conditionnel Supposons que vous ayez un programme susceptible de tourner sur plusieurs syst mes diff rents mais que chaque syst me n cessite des sous Nom de l option Fonction de l option NOP NOC MAC NOE Fig 8 Tableau des options de leurs fonctions et du choix pris par d faut par l assembleur N 1690 Mars 1983 Page 151 REALISATION programmes d entr e sortie diff rents Plut t que de pr parer quatre fichiers source de ce programme avec pour cha cun les sous programmes cor respondants il est possible gr ce l assemblage condi tionnel de n avoir qu un fichier source contenant tous les sous programmes possibles et par changement d un seul pa ram tre au sein d une directive EQU par exemple de faire as sembler le programme corres pondant au syst me d sir Cette possibilit est extr me ment int ressante car elle al l ge votre stock de fichiers de fa on importante de plus elle vous permet d avoir imm dia tement un programme pour le syst me d sir en ne faisant qu une dition tr s rapide au niveau du source g n ral
24. cette affectation de valeur est temporaire et plusieurs directi ves SET peuvent appara tre dans le m me listing La valeur affect e l tiquette ainsi d fi nie un instant donn est celle de la derni re directive SET rencontr e L utilisation est identique EQU savoir ETIQUETTE SET EXPRESSION REG permet d affecter une tiquette une liste de regis tres qui revient souvent dans un programme En effet en 6809 certaines instructions telles que PSHS PULS PSHU PULU peuvent travailler sur plusieurs registres qui sont alors sp cifi s apr s l instruc tion ainsi pour sauvegarder des registres sur la pile S cri rons nous PSHS A B X Y par exemple Si une liste donn e revient souvent et pour vous conomiser du travail il est possible de lui donner une ti quette au moyen de cette di rective de la fa on suivante ETIQUETTE REG LISTE DE RE GISTRES o LISTE DE REGIS TRES est constitu e par les noms des registres concern s tels qu ils ont t d finis ci avant s par s par des virgu les Si nous reprenons notre exemple nous pourrons _ crire TOTO REG A B X Y qui s utilisera alors sous la forme PSHS TOTO Attention le symbole di se est obligatoire dans ce cas toutes les fois qu une liste de registres est d finie au moyen d une ti quette SETDP permet d indiquer l assembleur la valeur conte nue dans le registre de page direct DP ou DPR p
25. d dition Pour tre franc l utilisation de cette commande est assez peu fr quente Par contre NEW vous sera vite utile si vous ditez des programmes de plusieurs K octets en assembleur Adaptation vos besoins Un certain nombre de para m tres relatifs aux commandes SAVE READ et WRITE peu vent tre modifi s par vos soins pour adapter l diteur lors une situation particuli re Pour ce faire il faut charger l diteur en m moire sans le lancer avec un GET O EDIT CMD puis r ali ser les modifications d sir es un SAVE O EDIT CMD 0 0 permet ensuite de remettre celui ci sur disque comme par le pass Ces modifications sont relatives aux sous pro grammes qui sont appel s lors d un READ d un SAVE et d un WRITE A l adresse 16 et l adresse 17 se trouve l adresse d un sous pro gramme qui est appel en d but de chaque commande READ ce programme peut par exemple mettre en marche automatiquement un magn to phone en lecture ou toute autre fonction Si vous ne vou lez pas utiliser cette possibilit il suffit de laisser en 16 et 17 le 0000 qui s y trouve d ori gine A l adresse 18 et 19 se trouve l adresse d un sous pro gramme qui est appel la fin de chaque commande READ Ce sous programme peut par exemple arr ter un magn to phone automatiquement Si vous ne voulez pas de cette possibilit il suffit de laisser en 18 et 19 le 0000 qui s y trouve d origine
26. d origine on y trouve FD46 qui est l adresse du sous programme d entr e de caract re partir de l interface cassette de TAVBUGO9 Vous pouvez mettre ce que vous voulez mais il faut que le ca ract re rentr soit plac dans l accu A et qu aucun registre du 6809 autre que A ne soit modifi Ces possibilit s de modifica tions sont int ress ntes par exemple si vous travaillez avec la carte IVGO9 comme terminal vous disposez sur la carte CPUO9 d une liaison s rie de peut tre raccord e n im porte quel appareil en dispo sant un autre micro ordina teur par exemple et il est alors possible que l diteur lise des informations en prove nance de cet appareil Cette possibilit peut tre mise profit pour r cup rer des pro grammes r alis s sur un autre syst me et dont les disquettes ne seraient pas compatibles Les exemples peuvent tre multipli s l infini et nous fai sons confiance votre imagi nation pour trouver des appli cations cette possibilit Le macro assembleur L assembleur fourni d ori gine avec le DOS st en r alit un macro assembleur les connaisseurs appr cieront les novices ne pourront appr cier qu apr s avoir lu la notice ci apr s _La syntaxe d appel de l as sembleur est avec les conven tions pr sent es le mois der nier ASMB lt FICHIER libre Cette liaison pliqu ci avant et sont consti Photo 1 Le bo tier propos
27. e 1 et 255 qui peut tre pr c d d un signe ou et qui indique le nombre d ins tructions sauter apr s cette ligne dans Signe ou avant dans le cas IFN EXPRESSION Lignes assembl es si expression vraie ENDIF Fig 9 Utilisation IF ENDIF IF EXPRESSION Assemble si expression vraie Assemble si expression fausse Assemble si expression vraie ENDIF Fig 11 Utilisation du IFN ELSE E ELSE a Assemble si expression fausse ENDIF Fig 10 Utilisation du IF ELSE ENDIF ENDIF Page 152 Mars 1983 N 1690 IFC CHAINE1 CHAINE2 Assemble si CHAINE1 CHAINE2 Assemble si CHAINE1 CHAINE2 Fig 12 Utilisation du IFC le cas d un sentation d un signe si l expression est fausse Attention ce mode de tra vail tr s particulier n est auto ris qu au sein de macro ins tructions et non dans les parties conventionnelles d un programme toute utilisa tion incorrecte donne lieu un message d erreur Il est bien s r possible d employer cette forme avec IFN ou IFNC dans ce cas les lignes sont saut es si l expression ou la comparai son est vraie Une seule pr caution est n cessaire lors de l emploi de l assemblage conditionnel il faut que toutes les tiquettes qui apparaissent dans les ex pressions utilis es pour la d ci sion de l assemblage condi tionnel aient t d finies au pr alable Les mac
28. e celui que va produire l assembleur et qui pourrait d j exister sur le dis que En effet si cette option n est pas sp cifi e et que vous demandiez un assemblage conduisant un nom de fichier d j pr sent sur la disquette nom de fichier qui pourrait r sulter par exemple d un as semblage pr c dent l assem bleur vous demande l autorisation d effacer le fi chier d j existant si vous r pondez non l assemblage de mand n a pas lieu Attention vous ne pouvez r pondre cette question que par O pour oui ou N pour non nous avons en effet oubli d y inclure le Y pour yes L option D interdit l impres sion de la date qui a lieu en haut de chaque page de listing si vous avez sp cifi l option PAG dans la source de votre programme voir plus avant la signification de PAG L option W interdit l impres sion des warnings ou aver tissements en fran ais En effet l assembleur d tecte les erreurs d assemblage et vous les signale mais il peut aussi d tecter des points de listings qui ne sont pas forc ment des erreurs mais o votre attention doit tre appel e par exemple si vous utilisez un LBSR un endroit o vous pourriez met tre un BSR votre programme fonctionnera quand m me mais vous aurez utilis une ins truction trop performante et plus longue que celle que vous auriez pu mettre l assem bleur vous l indiquera sauf si vous demandez l op
29. e soit celui ci char gera tout ce qu il pourra char ger en m moire et vous pour rez ensuite travailler sur la portion ainsi charg e comme si de rien n tait Lorsque vous allez faire appel la partie qui n a pu tre charg e lors d une recherche de cha ne de carac t res par exemple l diteur _ vous indiquera qu il ne trouve pas ce que vous lui demandez il vous suffit alors de vous pla cer sur la ligne de votre choix du fichier en cours d dition et de frapper NEW L diteur va sauvegarder tout ce qui se trouve avant la ligne sur la quelle vous vous tes plac et va utiliser l espace ainsi lib r pour charger la suite du fichier Ce processus peut tre r p t autant de fois que n cessaire sans risque quant la coh sion du fichier Attention Tout ce qui pr c de la ligne sur laquelle vous vous placez lors de la frappe du NEW tant sauve gard sur disque il n est plus possible d y faire appel Si vous vous apercevez d un oubli il faut quitter l diteur puis y r rentrer pour recom mencer au d but commande FLUSH fonc tionne de la m me fa on que la commande NEW mais qu elle a sauvegard ce qui se trouve avant la ligne sur la quelle vous vous tes plac elle ne lit plus rien sur le disque mais place l diteur en mode d attente de commande cela permet par exemple d ajouter au moyen d un READ un autre fichier de grande taille au fi chier en cours
30. eut en appeler un autre jusqu 12 niveaux d imbrication OPT permet de sp cifier un certain nombre d options en plus de celles que vous avez pu d finir sur la ligne d appel de l assembleur Ces options sont r sum es dans le tableau Pagination du listing impression code conditionnel non assembl Impression des lignes d appel des macros Impression des macros en mode expanse MICRO INFORMATIQUE de la figure 8 et s utilisent de la fa on suivante OPT OP TION1 OPTION2 OP TIONN L option PAG permet la pagination du listing avec num rotation des pages et im pression des titres et sous titres ventuels ainsi que de la date en haut de chaque page son utilisation est fortement conseill e pour avoir des lis tings propres et faciles clas ser L option CON permet d imprimer le code d assem blage conditionnel qui a t saut MAC fait imprimer les lignes d appel des macro ins tructions EXP fait imprimer les macro instructions en mode expans voir la suite du mode d emploi pour ces d finitions Le tableau de la figure 8 pr cise aussi quelles options sont prises par d faut et quelle est le contraire des options pr sent es ci avant NOE pour contraire de EXP etc Nous en avons termin avec les directives d assemblage dites classiques Nous allons maintenant voir ce que permet ce macro assembleur au ni veau assemblage conditionnel et macro instructions Certains con
31. hnique de vous rap peler que ce mode est en fait un mode POST incr ment c est dire que l incr menta tion du registre se fait apr s l ex cution de l instruction concern e par ce mode d adressage Adressage auto d cr ment la notation est tout aussi logique que pour le mode pr c dent et il faut crire O R ou R ou O0 R o R o R repr sente le regis tre concern Un signe signi fie une d cr mentation d une unit et deux signes de deux unit s Le fait de placer les signes avant le registre aide se souvenir que c est un mode PRE d cr ment c est dire que la d cr mentation a lieu avant l ex cution de l instruc tion concern e par ce mode Adressage index indirect tous les modes pr c dents peuvent tre utilis s en mode indirect il suffit comme pour le mode tendu indirect de les entourer par deux crochets ainsi LDA 5 X sera un mode index avec d placement constant indirect Attention si les modes auto incr ment ou auto d cr ment sont utilis s avec une indirection l incr mentation ou la d cr menta tion doit imp rativement tre de deux et non de un puisque l indirection fait que l on va chercher une adresse et non une donn e et que les adres ses sont cod es sur 16 bits et n cessitent donc deux cases m moire Adressage relatif par rap port au PC ce mode d adres sage est tout simplement si gnal
32. ier le nombre de lignes que vous souhaitez gar der ensemble sur une page Si le nombre de sauts de lignes demand ne permet pas de respecter cette valeur un saut page est automatiquement g n r Cette utilisation de M est cependant assez rare Cette di rective tout comme PAG n est pas imprim e sur le lis ting Cette directive est option nelle si vous ne souhaitez sau ter que quelques lignes en effet les lignes vides de tout caract re fournies l assem bleur sont traduites au niveau du listing par des lignes vides galement Donc lorsque vous frappez la source de votre pro gramme et si la frappe des SPC vous ennuie il suffit de _ laisser des lignes vides aux en droits qui vous conviennent cela aura le m me effet au ni veau du listing NAM ou TTL permet de donner un titre dont la lon gueur peut atteindre 32 carac t res un listing Si l option pagination a t choisie ce titre est imprim automatique ment en haut de chaque page Le titre ainsi d fini n a aucun rapport avec le nom du fichier assembl et vous pouvez faire ce que vous voulez ce ni veau L utilisation est l men taire puisqu il suffit d crire TTL ou NAM TEXTE o TEXTE repr sente le titre la num rotation des tion est choisi Il est possible d avoir autant de directives TTL que vous le souhaitez dans un m me programme pour don ner des noms diff rents des sections diverses d un m me pr
33. importance au niveau assem bleur qui lui interpr te correc tement les codes il n y a que sur votre listing que vous lirez et 8 au lieu des crochets Adressage index il en existe de multiples formes comme nous l avons vu lors de son tude dans nos articles d initiation nous allons les passer en revue mais vous allez vite constater que les no tations adopt es sont parfaite ment logiques Adressage tendu avec d placement constant il suffit d crire l op rande sous la forme D R o D repr sente le gt d placement qui peut tre une valeur num rique mais aussi une tiquette et R le registre utiliser comme index puisque X Y U et S peuvent employer ce mode d adressage Ainsi LDA 5 X LDB TOTO U LDX O Y etc sont corrects Adressage index avec ac cumulateur comme d place ment il suffit d employer la notation pr c dente o D de vient un des accumulateurs B ou D Adressage index auto in cr ment la notation en est la suivante O R ou R ou O R ou R En effet ce mode d adressage fait toujours appel un d placement nul d o le O et le fait que pour vous conomiser de la frappe l assembleur vous autorise m me omettre le O De plus ce mode existe avec une incr mentation de 1 ou de 2 mat rialis e par un signe ou deux signes Le fait que les signes soient plac s la fin de l op rande est un moyen mn motec
34. is qui inverse le sens de la condi tion comme le montre la fi gure 11 Enfin il existe encore une troisi me forme de la directive IF qui est le IFC pr sent fi gure 12 La d cision d assem blage conditionnel n a plus lieu en fonction de la valeur d une expression mais si les deux cha nes de caract res sont identiques ou non Ces cha nes doivent tre sp cifi es de la fa on suivante Elles doivent tre s par es par une virgule sans aucun es pace Chaque cha ne doit tre comprise entre deux d limi teurs qui peuvent tre soit l apostrophe soit le guille met ou Chaque cha ne doit tre constitu e par une suite de ca ract res sans espace interca laire Ainsi ABCD sera une cha ne valide mais AB CD ne le sera pas et il faudra alors le noter AB CD ou AB CD Une cha ne vide peut tre sp cifi e en mettant deux d li miteurs c te c te sans ca ract re entre eux Cette directive IFC existe aussi en version IFNC et les portions de codes assembl es indiqu es figure 12 sont alors invers es de m me que le IFN inversait la figure relative au IF Enfin derni re forme de cet assemblage conditionnel le IF SKIP Cette forme n utilise plus qu un IF tout seul sans ENDIF pour terminer la zone condi tionnelle Le IF s utilise alors de la fa on suivante IF EXPRESSION N ou IFC CHAINE CHAINE2 N o N est un nombre d cimal compris entr
35. its des mots de 8 bits si vous placez par ORG END RMB FCB FDB FCC EQU SET REG SET DP PAG SPC NAM ou TTL SEIL ERR RPT LIB OPT D finition d une origine Fin d un programme R servation m moire D finition d une constante 8 bits D finition d une constante 16 bits D finition d une constante ASCII Affectation d une valeur d finitive Affectation d une valeur provisoire D finition d une liste de registre Affectation d une valeur au DPR Saut page du listing Saut ligne du listing D finition d un titre D finition d un sous titre D finition d un message d erreur R p tition d une ligne Acc s un fichier disque D finition d options Fig 7 Liste et fonctions des directives de l assembleur Page 150 Mars 1983 N 1690 xemple en m moire une suite d adresses ce qui impose un codage sur 16 bits et que celles ci soit inf rieures FF ce qui permet de les coder sur 8 bits FCC a le m me r le que FCB et utilise la m me syntaxe mais en n tant pas suivie par des expressions mais par une ou plusieurs cha nes de carac t res comprises entre deux d limiteurs identiques mais quel conques Les caract res compris entre ces d limiteurs sont alors convertis en leurs codes ASCII et sont plac s les uns la suite des autres en m moire Les d limiteurs peu vent tre n importe quels ca ract res non alphanum riques Une m me cha ne doit tre compri
36. la contribue accro tre la souplesse de cet diteur Tel que l diteur est fourni le fait de r pondre C lors des commandes SAVE READ ou WRITE lance les sous pro grammes de dialogue avec un magn tophone cassette contenus dans TAVBUGOS9 il est possible de modifier cela comme indiqu ci apr s et de faire lancer les programmes de votre choix ce qui permet entre autres possibilit s de faire dialoguer cet diteur avec quasiment n importe quoi et pourquoi pas avec un autre micro ordinateur un ZX 81 dont vous voulez r cup rer certains programmes Basic par exemple Les commandes vraiment nouvelles par rapport la ver sion cassette sont au nombre de trois et nous allons en voir le r le La commande ABORT per met de terminer la session d dition en cours et de rendre le contr le au DOS mais d une facon tr s particuli re En effet lorsque vous frappez ABORT le fichier en cours d dition n est pas sauvegard sur disque et son pr d ces seur qui s tait vu affecter l extension BAK re oit nou veau l extension TXT En d au tres termes le fait de frapper ABORT annule tout ce que vous avez pu faire depuis le lancement de l diteur waka commande NEW permet de travailler avec des fichiers tellement importants qu ils ne peuvent rentrer en m moire en une seule fois Si vous tes dans ce cas vous lancerez l diteur sans vous soucier de quoi que c
37. la cr a tion du fichier binaire lors de l assemblage cette option est utilis e en g n ral avant l as semblage d finitif d un pro gramme pour voir sur le listing les messages d erreurs ven tuels L option L interdit la sortie d un listing d assemblage seul le fichier binaire est cr si l option B n a pas t sp ci fi e Les lignes conduisant un message d erreur de l as sembleur sont tout de m me visualis es malgr cette com mande L option S supprime l im pression de la table des ti quettes en fin de listing Si cette option n est pas sp ci fi e tous les symboles utilis s sont imprim s en fin de listing par ordre alphab tique avec la valeur qui leur a t affect e par l assembleur L option G interdit l impres sion de lignes multiples au ni veau des directives FCC FCB FDB et ne laisse appara tre sur le listing que la ligne contenant la directive voir plus avant pour la signification de ces sigles en ASE MICRO INFORMATIQUE L option N fait imprimer sur le listing les num ros de lignes ceux ci tant identi ques ceux utilis s par l di teur cela peut faciliter la cor rection d ventuelles erreurs M me si cette option n est pas demand e les messages d er reur sont toujours affich s avec un num ro de ligne pour la raison expos e ci avant L option Y efface automati quement le fichier binaire de m me nom qu
38. les au sein d une macro ne sont pas autoris es en effet chaque appel de la macro concern e il y aurait g n ration de la m me tiquette et cela conduirait l assembleur g n rer un message d erreur de d finition multiple d un symbole Les directives LIB sont inter dites au sein des macro ins tructions Une fois qu une macro a t d finie dans un programme elle ne peut plus tre annul e ni red finie La table des noms de macro est explor e par l assembleur avant la table des instructions du 6809 ce qui signifie que vous pouvez remplacer un mn monique 6809 par la macro de votre choix sans cr er d erreur Un contr le du nombre de param tres demand s et du nombre de param tres fournis lors de l appel d une macro n est pas r alis par l assem bleur ce qui signifie que tous les param tres non pourvus seront remplac s par des z ros sans que cela g n re de mes sage d erreur sur le listing Quelques informations Cet article tant fort long nous allons tre brefs quel ques photos ci jointes vous montrent le bo tier r alis par Saint Ignan Informatique pour notre mini ordinateur pr ci sons que ce bo tier re oit les cartes au format Facim et au format Exorciser Moto rola Nous vous en parlerons avec plus de d tail le mois pro chain Nous avons oubli de vous Fig 21 Contenu de la PROM DECFLOP 09 donner le
39. lisation de la directive EXITM FONCTION DE DUP ASLDN MACRO DUF amp i ASLB ROLA ENDD ENDM j APPEL DE ASLDN AVEC N 9000 ASLDN 3 0000 58 ASLB 0001 49 ROLA _ 0002 58 ASLB 0003 49 ROLA 0004 58 ASLB EER ROLA f ENDM APN Baga 154 Mars 1983 N 1690 Fig 20 Exemple d l utilisation as la directive DUP macro instructions deux pos sibilit s vous sont encore of fertes La premi re est celle de la directive EXITM Cette direc tive permet de ne pas g n rer tout le corps de la macro mais au contraire d en sortir pr ma tur ment Cela peut sembler il logique premi re vue mais ce n est pas le cas si vous vous rem morez les possibili t s d assemblage conditionnel vues ci avant La figure 19 vous montre un exemple d uti lisation de cette directive ainsi que deux lignes d appel de cette macro qui conduiront ou non sa g n ration compl te La derni re possibilit est celle offerte par les directives DUP en ENDD Ces deux direc tives permettent de dupliquer autant de fois que vous le d si rez mais pas au del de 255 fois un certain nombre de lignes d instructions La fi gure 20 vous donne le principe d emploi de DUP et un exem ple d utilisation Remarquez que l int r t principal de cette directive r side dans le fait que le nombre de duplications puisse tre un param tre A propos de ce nombre il est toujours plac apr s DUP dont il e
40. nfon dre avec le tiret utilis par exemple pour les mots com pos s Les majuscules et les minuscules ne sont pas quiva lentes ainsi l tiquette XYZ est diff rente de xyz Une ti quette doit imp rativement commencer par une lettre La longueur d une tiquette peut tre quelconque mais l assem bleur ne prend en compte que les six premiers caract res At tention donc INITIALISATION et INITIAL seront pour vous des tiquettes diff rentes alors que l assembleur les tronquera INITIA six carac t res et les verra donc comme la m me chose il vaut donc mieux prendre l habit de de n utiliser que des tiquettes de six caract res au maximum Une tiquette doit tre termi n e par un espace si elle se trouve en d but de ligne et qu elle est suivie par un des champs d crits ci apr s ou par un retour chariot si elle constitue le dernier champ d une ligne Enfin une ti quette ne doit pas tre le nom d un registre du 6809 ce qui vous interdit B CC DP X Y U S D PC comme tiquet tes ce qui est logique car cela peut conduire tr s vite des confusions importantes Le champ instruction ou pseudo instruction contient une des instructions du 6809 ou une des pseudo instructions reconnues par l assembleur et d crites ci apr s Ce champ est compos de lettres majus cules ou minuscules mais celles ci sont quivalentes ainsi LDA et Ida sont compri
41. ns ac complir Leur liste compl te est r sum e dans le tableau de la figure 7 et nous allons en tudier le r le ci apr s ORG est utilis e pour indi quer l assembleur l origine de ce qui suit cette directive elle s utilise sous la forme ORG EXPRESSION l exclusion de _toute autre forme Si aucune directive ORG n est plac e dans un programme l assem bleur utilise 0000 par d faut peut y avoir autant de directi ves ORG que vous voulez dans MICRO INFORMATIQUE un programme et leur ordre peut tre quelconque un ORG 100 peut appara tre apr s un ORG 2000 sans pour cela que l assembleur se trompe END est utilis e pour indi quer l assembleur qu il a at teint la derni re ligne du pro gramme assembler Cette Mn monique i Fonction A B A Compare B et A GC O0 0 V S TS X 1 X Sp ts a T a a A B gt A 1 56 ta 1 gt V AB A gt CCR B gt A CCR gt A SEX X gt S E Attente d interruption Fig 4 Instructions 6800 comprises par l assembleur 6809 Mn moniques Fonction D calage gauche de D D calage droite de D Pousse X sur la pile Tire X de sur la pile M D D M Fig 5 Instructions 6801 comprises par l assembleur 6809 Mn moniques Fonction BEC ou LBEC BES ou LBES Branchement si pas d erreur Branchement si erreur O F masque de FIRO 0 Z 1 F
42. ogramme par exemple STTL permet de d finir un sous titre qui sera imprim en dessous du titre d fini par un TTL en haut de chaque page si l option pagination a t choi sie Ce sous titre peut avoir jusqu 32 caract res et au tant de directives STTL que vous le souhaitez peuvent ap para tre dans un m me pro gramme L utilisation est iden tique celle de TTL ou NAM puisqu il suffit d crire STTL TEXTE Pour d sactiver cette fonction en cours de listing il suffit de placer un STTL sans texte ERR permet de faire affi cher des messages d erreur qui vous sont propres c est dire des messages qui ne sont pas g n r s par l assembleur mais par vous m me Bien que cela vous paraisse trange c est une pratique tr s utile en as semblage conditionnel pour sa voir ce qui se passe comme nous le verrons dans la suite de ce mode d emploi L utilisa la suivante TEXTE o TEXTE est le mes sage qui sera imprim lorsque l assembleur passera sur la di rective ERR Le fait que d as _ sembleur passe sur cette direc tive est pris en compte au niveau du nombre total d er reurs d tect es qui est affich en fin de listing RPT permet d indiquer l assembleur que la ligne qui suit doit tre r p t e N fois Cela s utilise de la fa on sui vante RPT N LIGNE A REPETER o N sp cifie le nombre de r p titions de la ligne Ainsi ou ASR
43. our que celui ci puisse savoir pour quelles adresses il doit em ployer l adressage direct Ainsi si vous avez plac 10 dans le DP lorsque vous aurez fait un SETDP 10 l assem bleur saura que toutes les adresses comprises entre 1000 et 10FF peuvent tre r f renc es en adressage direct L utilisation est fort simple SETDP VALEUR o VALEUR est le mot de 8 bits contenu dans le DP Autant de SETDP que n cessaire peuvent appa ra tre dans un m me pro gramme un instant donn l assembleur consid re comme valide le dernier rencontr Si aucune directive SETDP n est utilis e dans un programme l assembleur consid re que le DP contient 00 et travaille donc en adressage direct de 00 FF ceci afin d tre com patible avec le 6800 PAG permet de faire sau ter une page au niveau du lis ting sous r serve que l option pagination ait t demand e voir ci apr s Cette directive n est pas imprim e sur le lis ting sauf en cas d erreur au niveau de son utilisation Il est possible apr s le saut page ainsi demand de faire conti nuer pages du listing la valeur de votre choix en faisant suivre PAG d une expression dont la valeur sera ce nouveau nu m ro SPC permet de faire sauter des lignes sur le listing et s uti lise de la fa on suivante SPC N M o N repr sente le nom bre de lignes faire sauter et o la valeur optionnelle M per met de sp cif
44. que n cessaire fit de faire RPT N puis une ERR lorsque l on fait des d calages multiples n est il pas n ces saire de frapper autant d ASL il suf seule fois ASR ou ASL ils se ront r p t s N fois D autres utilisations sont possibles l assembleur ne se souciant pas du contenu de la ligne r p ter Certaines directives telles que IF ou MACRO sont impossibles r p ter car cela est illogique si vous le de mandez quand m me la direc tive RPT est ignor e LIB permet d appeler au sein de votre programme source un fichier disque quel conque L utilisation en est la suivante LIB NOM DE Fl CHIER o NOM DE FICHIER est le nom du fichier que vous voulez voir inclure dans votre listing l emplacement du LIB L extension par d faut est TXT et le lecteur par d faut est celui de travail Cette direc tive est tr s utile pour des sous programmes que vous utilisez souvent dans vos pro grammes Ainsi si vous avez par exemple un sous pro gramme de sortie de caract res sur le terminal il vous suf fit de le frapper une fois pour toutes et de le placer dans un fichier D s que vous en aurez besoin dans un programme et l emplacement voulu il vous suffira de faire un LIB avec ce nom de fichier il peut y avoir autant de LIB que vous le sou haitez dans un programme et les LIB peuvent m me tre im briqu s les uns dans les autres c est dire qu un LIB p
45. r sur cassette dont nous vous avons pr sent la notice dans le num ro 1686 de no vembre 1982 Nous allons donc vous demander de pren dre ce num ro c t de vous pour lire les lignes qui vont sui vre et que nous allons pr sen ter en cons quence Tout d abord nous allons voir les diff rences tr s peu nombreuses entre l diteur disque et l diteur cassette puis nous verrons les comman des suppl mentaires dont dis pose celui ci Pour terminer une dition Bien que ce soit possible comme nous allons le voir ci apr s au niveau des comman des suppl mentaires par rap port la version cassette il n est pas n cessaire de faire de SAVE ou de WRITE en effet et comme expliqu ci avant lors de la fin d une ses sion d dition mat rialis e par la commande S TOP ou LOG m me commande que pour l diteur sur cassette l diteur disque sauvegarde automati quement le fichier en cours d dition sur le disque confor m ment aux indications de nom qui avaient t donn es lors de l appel de l diteur Le contr le est ensuite rendu au DOS ce qui est mat rialis par l apparition des trois signes caract ristiques Attention si le fichier dit est long et mal gr la rapidit des disquettes il faudra un certain temps apr s la frappe de S ou LOG pour que le DOS reprenne la main Une remarque s impose aussi il est impossible d effec tuer une dition sur
46. ro instructions Cette possibilit qui n existe que sur les macro as sembleurs offre une souplesse et une puissance de program mation consid rable comme vous pourrez vous en rendre compte l usage Une macro instruction n est rien d autre qu un ensemble d instructions 6809 dans notre cas que vous pouvez ensuite appeler dans le programme par un seul nom qui est le nom de la macro instruction En d autres termes avec un macro assem bleur vous pouvez cr er des mn moniques nouveaux et des instructions nouvelles Cette fa on de faire vous mon tre clairement que l utilisation de macro instructions passe par deux phases une phase d d finition ou de cr ation de la macro pendant laquelle vous lui donnez son nom et vous indiquez la liste des ins tructions qu elle va remplacer et une phase d utilisation pro prement dite o vous placerez son nom aux endroits d sir s dans votre programme et o lorsqu il arrivera ces en droits l assembleur op rera automatiquement la substitu tion du nom par la suite d ins tructions que vous avez d finie au pr alable Grossi rement et si l on s en tient cette pr on peut assimiler une macro instruction un _Sous programme qui au lieu MICRO INFORMATIQUE EXEMPLE DE MACRO INSTRUCTION ADDITION DE TROIS NOMBRES 0008 NUM1 EQU ASLD4 MACRO 0008 NUM2 EQU i ASLB 0008 NUM3 EQU d tre appel par un BSR ou ROLA 0008
47. rsion cassette de cet diteur elles sont tr s peu nombreuses comme vous allez le constater ci apr s Tout d abord et ind pen damment de ce que nous avons expos ci avant sur l ap pel de l diteur et la fin d une dition il est possible d utiliser les commandes SAVE READ et WRITE vues pour la version Cassette et ces commandes peuvent travailler avec les dis quettes avec les cassettes ou avec tout autre dispositif votre convenance comme in diqu ci apr s au paragraphe adaptation vos besoins La commande GAP est toujours pr sente galement mais n a de signification qu avec les Page 144 Mars 1983 N 1690 cassettes Ces trois comman des READ WRITE et SAVE fonctionnent comme expliqu pour la version cassette mais apr s la frappe de l une d elles l diteur vous pose la question CASSETTE OU DISQUETTE laquelle vous devez r pondre par C ou D Si vous r pondez C Vous tes ramen au cas de l diteur sur cassette si vous r pondez D l diteur vous de mande le nom du fichier qui doit tre utilis par cette com mande En d autres termes cela signifie que lors de l di tion d un fichier dont le nom a t d fini lors de la frappe de la commande EDIT vous pou vez Sauvegarder tout ou partie de celui ci sous un autre nom de fichier commandes SAVE et WRITE mais vous pouvez aussi inclure dans votre fichier un tout autre fichier com mande READ Ce
48. s op ra teurs conduisent toujours une r ponse du type vrai ou faux puisqu ils effectuent une comparaison lls sont donc quasi exclusivement employ s en assemblage conditionnel d crit ci apr s Ces op rateurs sont l galit la diff rence lt gt inf rieur lt sup rieur gt inf rieur ou gal lt et sup rieur ou gal gt Comme pour les langages volu s l assembleur respecte une priorit entre ces op ra teurs priorit qui vous est indi qu e dans le tableau de la fi gure 3 Modes d adressage Nous n allons pas ici passer en revue les modes d adres sage du 6809 qui ont t vus en d tail dans un article de notre s rie d initiation la micro informatique auquel nous vous demandons de vous reporter en cas de probl me Signes et ET et O logiques Page 148 Mars 1983 N 1690 Expressions entre parenth ses Op rateurs de d calage Multiplication et division Addition et soustraction Op rateurs de comparaison Compl ment logique Nous allons seulement insister sur la fa on de signaler l as sembleur quel mode vous utili sez Adressage inh rent vous n avez aucune indication donner p isque ce mode d adressage n en est pas vrai ment un mais fait plut t partie de certaines instructions parti culi res Adressage imm diat l as sembleur consid re que vous faites appel de l adressage imm
49. se entre deux d limi teurs identiques mais deux cha nes pr sentes sur une m me ligne peuvent utiliser des d limiteurs diff rents De plus des valeurs hexad cima les donc imp rativement pr c d es du symbole dollar peu vent tre plac es sur des lignes d cha nes de caract res apr s un FCC la valeur hexa d cimale sur 8 bits est plac e sans alt ration Dans ce cas ou dans le cas de plusieurs cha nes sur une m me ligne des virgules doivent tre utili s es comme s parateurs entre les cha nes Par exemple TOTO FCC ABC placera 41 42 43 hexad cimal qui sont les ASCII de A B C en m moire partir d une adresse qui sera rep r e par TOTO TOTO FCC 10 ABCD 2 A placera en m moire 10 41 42 43 02 41 partir d une adresse qui sera rep r e par TOTO EQU permet de donner une valeur une tiquette de fa on permanente c est dire qu une fois cette directive crite pour une tiquette don n e elle ne doit pas appara tre nouveau ailleurs pour la m me tiquette L utilisation est tr s simple puisqu il suffit d crire ETIQUETTE EQU EX PRESSION pour affecter ti quette la valeur de l expres sion ainsi TOTO EQU 1000 donnera la valeur hexad ci male cause du dollar 1000 l tiquette TOTO SET joue un r le analogue EQU puisque cette directive permet aussi de donner une valeur une tiquette mais
50. st s par par un espace et peut tre constitu par une ex pression dont la valeur doit tre comprise entre 1 et 255 Les boucles DUP ENDD ne doivent pas tre enchev tr es c est dire qu il ne doit pas y avoir de DUP ENDD dans une boucle DUP ENDD Remarques et restrictions relatives aux macro instructions Les macro instructions ne sont pas difficiles d emploi une fois que l on a os essayer il faut cependant respecter quel ques r gles principales rappe l es ci dessous Tout d abord le nom d une macro joue un double r le celui d tiquette lors de la d fi nition de la macro puisque l on crit NOM MACRO et c est MACRO qui est la direc tive d assemblage Ensuite ce nom joue le r le d une instruc tion toutes les fois que l on appelle la macro il m me tre pr c d d une ti peut quette et tre suivi d op ran des qui sont les param tres pass s la macro Une macro doit toujours tre d finie avant d tre appe l e d o notre conseil d j donn de d finir les macros en d but de programme Les macros peuvent tre en chev tr es lors de leur appel mais aussi lors de leur d fini tion c est dire qu une macro peut faire appel ou r f rence d autres macros Les lignes de commentaires sont effac es des macro ins tructions par l assembleur pour conomiser la place m moire Les tiquettes loca
51. t donn es les solutions de nombreux probl mes propos s en fin de chapitres Table des mati res Sys t mes de num ration Base d un syst me de num ration Changement de base Op ra tions arithm tiques en binaire La compl mentation Codes Codage Alg bre de Boole Les op rations ou fonctions de base de l alg bre de Boole Application un r seau lectri que Axiomes ou lois fonda mentales de l alg bre de Boole Evaluation d une fonc tion logique Table des fonc tions de deux variables Rela tions de base de l alg bre de Boole Th or mes de De Mor gan Dualit de l alg bre de Boole Simplification alg bri que des quations bool ennes Repr sentation simplifica tion implantation des fonc tions logiques Modes de re pr sentation des fonctions logiques Formes canoniques Simplification par la table de Karnaugh Quelques circuits in t gr s d implantation d une fonction logique Implantation d une fonction logique grand nombre de variables Probl mes de logique combina toire Logique s quentielle Circuits synchrones et circuits asynchrones La bascule JK Etude des bascules en circuits int gr s Applications des bas cules Les compteurs Les re gistres d calage Appendice Lexique Index Editeur McGraw Hill N 1690 Mars 1983 Page 155
52. tes indiqu es ci avant lors de la description du champ tiquette Ces ti quettes sont alors remplac es par l assembleur par la valeur qui leur a t affect e lors de leur d finition Un caract re particulier qui est l ast risque et qui repr sente le compteur ordinal PC Etiquette Bord de la Deer D feuille E 0 7 0 Instr L D X SEPARATEUR SEPARATEUR RSS Ces donn es peuvent tre combin es au moyen d op ra tions arithm tiques qui sont l addition la soustraction la multiplication et la division en ti re c est dire que si les nombres ne se divisent pas en entiers le reste est ignor Le calcul de l expression est r a lis au moment de l assem blage par l assembleur et ne doit pas tre confondu avec le programme assembler pro prement dit Un exemple d uti lisation de cette possibilit est le suivant soit un circuit d in terface type PIA par exemple SEPARATEUR Instr DECA GNE que fois pourront tre d finis Instr L DA SEPARATEUR SEPARATEUR Li ne SEPARATEUR Op rande al AE O eri Commentaire SEPARATEUR DE D cimal Binaire Octal Hexad cimal Fig 2 Symboles relatifs aux diverses bases dont l adresse du premier re gistre interne est d finie par l tiquette PIA les autres re gistres du PIA qui se trouvent des adresses imm diatement sup rieures d une unit cha
53. tion W Attention alors qu un listing comportant des messages d erreur ne conduit g n rale ment pas un fichier binaire utilisable car certaines lignes de programme n ont pu tre _ assembl es correctement un listing contenant des war N 1690 Mars 1983 Page 145 REALISATION R CTEUR HS VFS Patrig f e BASE IINA LEO TRGE PES Sr SAUOENS PHANTE Photo 2 La face arri re de ces bo tiers nings est g n ralement utili sable sans probl me L option P permet de sp ci fier un num ro de page partir duquel commencera l impres sign du listing Son utilisation se fait de la fa on suivante PX o X est un nombre d ci mal repr sentant le num ro de page o commencer X doit tre compris entre 1 et 65535 et doit tre suivi par une vir gule ou un espace exclusive ment cela implique que cette option si elle est demand e soit la derni re de la liste des options Sortie de listing sur imprimante Comme toutes les autres commandes du DOS vues le mois dernier cet assembleur ne dispose pas en interne d un programme de sortie sur impri mante il faut faire appel la commande P du DOS sous la forme P ASMB etc selon la proc dure expliqu e le mois dernier pour celle ci Tout ce que produira alors l assem bleur compte tenu des options que vous avez demand es sera dirig sur l imprimante plut t que sur le terminal du syst me La synta
54. tre 20 et 7F c est dire tous les caract res ASCII imprimables il doit se terminer par un retour chariot car il est imp rativement le dernier champ d une ligne Pour conclure cette pr sen tation des divers champs d une ligne respectant la syntaxe as sembleur nous vous pr sen tons en figure 1 quelques lignes correctes avec la repr sentation des divers champs et s parateurs Un seul type de ligne ad mise par l assembleur fait ex ception aux r gles ci avant c est la ligne de commentaires Il est en effet possible de pla cer en n importe quel endroit d un programme des lignes dites de commentaires leur contenu peut tre quelconque commentaires mais aussi motifs d coratifs de pr senta tion du listing nom de soci t etc la seule condition tant que ces lignes commencent imp rativement par une ast risque plac e en premier carac t re de la ligne concern e Registres et expressions De tr s nombreuses instruc tions font appel aux noms des registres du 6809 ou des expressions au sens large Nous allons voir ci apr s com ment sont d finis ces l ments Les registres voir si n cessaire nos articles d initia tion sont repr sent s par les appellations suivantes A B D pour les accumula teurs B D X et Y pour les deux index X et Y U et S pour les deux poin teurs de piles utilisateur et sys t me er CC pour le registre d tat
55. uite des Fa STD SOMME instructions est le corps de la ENDM l macro ou son expansion Fig 16 R alisation avec une macro instruction du programme de la figure 15 Une telle d finition doit tre faite pour toutes les macro instructions que vous voulez utiliser dans un programme le KAPPEL DE MACRO AVEC FARAMETRES 0000 ADD3 NUM1 NUM2 NUM3 nombre de macro n est limit que par la taille de votre m Nc sr tpi moire et ces d finitions doi 0004 D3 Ob ADDD NUM3 vent intervenir avant toute uti 0006 DD 00 STD SOMME lisation de la macro ENDM concern e une bonne habi ER tude consiste les placer en Fig 17 Appel de la macro de la figure 16 avec passage de param tres d but de programme pour PE _ LES PARAMETRES PEUVENT TOUT REMPLACER La figure 14 vous montre alors comment l on appelle la DEMO MACRO macro dans le listing source et LDA amp i ce qu en fait l assembleur au LDB E amp i niveau du listing d finitif du NOP Es LES PARAMETRES VONT MEME programme Nous constatons NOP DANS LES amp 2 qu il remplace bel et bien la amp 3 a macro par la liste d instruc amp 4 TST M amp 1M tions quivalentes ENDM Si les macro instructions ne se limitaient qu cela leur in i t r t serait assez limit mais KAPPFEL DE LA MACRO PRECENDENTE il y a mieux lorsque l on no 12 2 gla r5 M Seg 0 aborde la possibilit de pas 0008 DEMO 1000 COMMENTAIRES LDA 3 TOT t Soit 0
56. xe assembleur Si vous suivez nos articles d initiation la micro informa tique conjointement ceux ci vous devez commencer sa voir que l on ne peut fournir l assembleur un programme frapp n importe comment il faut respecter une certaine Syntaxe pour que l assembleur distingue les tiquettes des instructions ou des commen taires C est cett syntaxe que nous allons d crire mainte nant Pr cisons qu elle est commune de nombreux as sembleurs et qu elle est en particulier compatible des as sernbleurs propos s par Moto rola et Thomson Efcis sur leurs syst mes de d veloppement Exorciser et Th mis Cet assembleur est un as sembleur deux passes c est dire qu il lit deux fois la source du programme la pre mi re fois il construit une table de toutes les r f rences symboliques tiquettes et la deuxi me fois il assemble r el lement Une ligne source c est dire une ligne de ce que vous allez assembler revoir si n cessaire notre article d initia tion du mois de janvier est compos e de quatre champs Le champ tiquette ou symbole qui doit commencer au premier caract re de la ligne par une lettre majuscule ou minuscule Si la ligne ne comporte pas ce champ elle doit commencer par un es pace Les tiquettes peuvent contenir des lettres majuscules et minuscules et des chiffres de O 9 ainsi que le symbole soulign ne pas co
57. y que des Tan don et des MPI pour l instant et nous continuons ne pr co niser que ces mod les Les an nonceurs garantissant la com patibilit de leurs lecteurs avec notre syst me le font sous leur seule et enti re res ponsabilit MICRO INFORMATIQUE Conclusion Cet article vous aura peut tre sembl un peu lourd di g rer surtout si vous n tes pas un passionn d assem bleur il tait cependant n cessaire pour vous pr senter compl tement ce programme dont les possibilit s une fois que l on sait les exploiter sont immenses Si certains points vous semblent obscurs n ou bliez pas notre conseil maintes fois r p t essayez et vous verrez C TAVERNIER A suivre BIBLIOGRAPHIE Initiation Business Basic par Eddie Adamis Ce livre explore progressive ment et compl tement le lan gage Business Basic de l Apple III plus particuli rement orient vers les applications de _ gestion Les caract ristiques essen tielles de ce langage y sont mises en vidence ainsi que les r gles et les concepts g n raux et fondamentaux afin de permettre au lecteur de comprendre et d assimi ler ais ment fonctionnement de chaque ins le principe de truction commande op rateur ou symbole d en utiliser toutes les res sources dans des programmes qu il aura pu concevoir et cr er l i m me de fa on progressive partir d exemples donn

Download Pdf Manuals

image

Related Search

Related Contents

取扱説明書:2039KB  4軸コントローラ MMC−400 2軸コントローラ MMC−200 取扱説明書  Manuale d`uso  FICHE PRODUIT CURB  HP Photosmart M547 6.2mp 3x Optical 6x Digital Zoom Camera green L24  Tektronix 2715 Spectrum Analyzer user manual  Brochure WV  SPI-110mini 取扱説明書  Manual Aquecedor Halógeno Mondial A-07 02-13  Rapport d`activité 2011  

Copyright © All rights reserved.
Failed to retrieve file