Assembleur pour TO7-70

Des MO et des TO...

Modérateur : Politburo

Répondre
smague

Assembleur pour TO7-70

Message par smague »

BUT:entrer des

nombres de 2 chiffres au clavier et les afficher.Le moniteur du TO7-70 comporte un programme lecture d une touche et un programme affichage d un

caractère.Ils sont dénommés respectivement :GETC (Get a character) qui debute à l adresse E806

(TO7-70)PUTC (Put a character) qui debute à l adresse E803 (TO7-70).Pour utiliser un sous-programme

moniteur connaitre son adresse n est passuffisant.il faut egalement se preoccuper des conditions d entree et de sortie.GETC dans notre cas ne presente

aucune condition d acces car si aucunetouche n est appuyée l'accumulateur B est chargé avec la valeur 0 etsinon il est chargé avec le code ASCI de la

touche pressée.PUTC emet vers l 'ecran le contenu de l accumulateur B qui doit etre uncode ASCII.l accès aux sous-programmes moniteur s effectue par

un JSR sousprogCela donne la sequence suivante : LDS #$8000 init de SBOUCLE JSR GETC TSTB BEQ BOUCLE JSR PUTC

BRA BOUCLEon ne sort de ce programme que par un RESET TSTB positionne les drapeaux N et Z en fonction du contenu de B et C estmis à zero,donc si

aucune touche n est appuyée le contenu de B est 0 etBEQ branche à BOUCLE.BRA (branch always) renvoie toujours à l etiquette BOUCLE.pour resoudre le

probleme il faut retirer 30 au code ASCII (les chiffresde 0 à 9 etant codés de 30 à 39) et associer les chiffres pour en faireun nombre.A chaque

entrée d un nouveau chiffre,il faut multiplier lenombre précédent par 16 (un 0 à droite) et ajouter le chiffre frappé.Comment terminer le programme

?On pourra considerer qu une touche saisie qui ne correspond pas à unchiffre entrainera la fin du programme.Il faut pour cela faire un test du contenu

de B par rapport aux chiffresde 0 à 9.CMPB associé aux instructions de branchement BMI (branchement sinegatif) ou BHI (branchement si superieur

à...)resoudra le probleme.d ou l organigramme du programme: debut init S,A|------->| entree touche| (B)=(B)-30| (B) chiffre ?

-----> NON -----> fin| -> OUI | (A)=(A)*16+(B)|-------------|LISTING COMPLET________________ * entrée de nombres au clavier

(TO7-70) * le registre A contient le nombre * limité à 2 chiffresGETC EQU $E806PUTC EQU $E803 ORG $7000DEBUT

LDS #$8000 CLRAENTREE JSR GETC TSTB BEQ ENTREE JSR PUTC SUBB #$30 BMI FIN CMPB #$9 BHI FIN

ASLA ASLA ASLA ASLA STB TAMPON ADDA TAMPON BRA ENTREEFIN SWITAMPON FCB 0 END DEBUT

__________________________________________________
Avatar du membre
rene
El Presidente
El Presidente
Messages : 1450
Enregistré le : 16 mai 2002 20:08
Localisation : Toulouse
Contact :

Message par rene »

joli poeme en motorolien
René
Répondre

Retourner vers « Thomson »