Rédaction du programme MOYENNE ------------------------------ Afin d'écrire le programme PEP8 demandé, je vous suggère d'y aller une étape à la fois. 1-faire la partie de l'affichage en premier. Essayons avec AB12 comme entrée simulée. LDA 0xAB12,i isoler le 2 de AB12 avec l'instruction ANDA 0x000F,i le convertir en ASCII en ajoutant x30 (pour un chiffre) le conserver dans pos4 pos1: .block 1 ; première position pos2: .block 1 ; deuxième position pos3: .block 1 ; troisième position pos4: .block 1 ; quatrième position décaler AB12 -> FAB1 AB12 -> 1010 1011 0001 0010 binaire on doit décaler de 4 bits vers la droite (ASRA ASRA ASRA ASRA) -> 1111 1010 1011 0001 remarque: quand on décale à droite, le bit inséré à gauche est le signe de la valeur dans le registre ici, la valeur est négative et un "1" de tête est inséré. isoler le 1 de FAB1 avec l'instruction ANDA 0x000F,i le convertir en ASCII en ajoutant x30 le conserver dans pos3 pos1: .block 1 ; première position pos2: .block 1 ; deuxième position pos3: .block 1 ; troisième position pos4: .block 1 ; quatrième position décaler FAB1 -> FFAB isoler le B de FFAB avec l'instruction ANDA 0x000F,i le convertir en ASCII en ajoutant x37 (pour une lettre) le conserver dans pos2 pos1: .block 1 ; première position pos2: .block 1 ; deuxième position pos3: .block 1 ; troisième position pos4: .block 1 ; quatrième position décaler FFAB -> FFFA isoler le A de FFFA avec l'instruction ANDA 0x000F,i le convertir en ASCII en ajoutant x37 le conserver dans pos1 pos1: .block 1 ; première position pos2: .block 1 ; deuxième position pos3: .block 1 ; troisième position pos4: .block 1 ; quatrième position .block 1 ; délimiteur de fin de chaine STRO pos1,d ; affiche AB12 Afficher en décimal avec DECO. On devrait voir au terminal: AB12(-21742) 2-Faire la moyenne en divisant par 1 car il n'y a qu'une seule valeur voir: Travail pratique #1 (division signée) 3-Afficher la moyenne en hexa et en décimal en utilisant la méthode de l'étape 1 précédente. On devrait voir au terminal: AB12(-21742) => moyenne: AB12(-21742) 4-Lire les caractères FFFE au terminal (voir programme ASCII3). 5-Convertir les caractères FFFE en hexadécimal. voir: se baser sur le programme DECIMAL1 qui construit un nombre décimal. et refaire les étapes 1 à 3 6-Modifier l'entrée des données afin de traiter plusieurs nombres hexadécimaux. Faire le total et la moyenne. 7-ajuster les particularités: -à l'entrée: lettres minuscules -> lettres majuscules voir: cours du 15 mai: Guide explicatif sur l'annexe A des notes de cours. annexe A: Représentation décimale et hexadécimale des codes caractères ASCII -tester avec 3 nombres sur une même ligne -tester avec 10 nombres sur plusieurs lignes -arrondir la moyenne: si le reste*2 est >= au diviseur alors on ajoute 1 au quotient -traiter les espaces avant et après les données -traiter les nombres invalides comme 12G 12345 2*3 et les débordements 8-recommencer automatiquement le programme; après une erreur, on doit vider le tampon d'entrée (voir programme ASCII4). 9-écrire les phrases à afficher au terminal. 10-commenter le code source PEP8. 11-consulter la grille du correcteur pour ne rien oublier et s'assurer que les lignes de sortie sont IDENTIQUES à celles exigées. 12-exécuter le programme avec seulement les 5 essais obligatoires dans l'ordre présenté; copier/coller (CTRL+C/CTRL+V) le contenu complet de la fenêtre d'Input/Output du Terminal I/O incluant les messages de bienvenue et de terminaison dans NOTEPAD et sauvegarder sous resultats.txt. 13-dans Moodle, remettre le fichier source "moyenne.txt" et le fichier des résultats "resultats.txt" dans l'icone de remise d'un travail à la semaine 3. Pour un travail d'équipe, un seul membre doit effectuer la remise en mentionnant les 2 noms dans les commentaires du programme. Et voilà, laissons le correcteur évaluer le travail.