; ************************************************************** ; Programme: SOMME1.TXT version PEP813 sous Windows ; ; version 1 - Programme qui lit des nombres à l'écran, les sauve ; dans un tableau et par la suite, en fait la sommation. ; ; auteur: Bernard Martin ; code permanent: non applicable ; courriel: martin.bernard@uqam.ca ; date: Eté 2020 ; cours: INF2171 ; ************************************************************** ; STRO bienvenu,d ; message de bienvenue à afficher LDX 0,i ; début du tableau boucle: DECI tableau,x ; lecture d'un nombre du tableau BREQ termine ; si le nombre lu est zéro, on termine ADDX 2,i ; élément suivant du tableau (2 octets) BR boucle STRO excede,d ; message d'excédent du tableau termine: LDA 0,i ; total := 0 suivant: SUBX 2,i ; élément précédent BRLT fin_add ; début du tableau ? ADDA tableau,x ; additionne en commençant par la fin du tableau BRV deborde ; au-delà de 32767 (-32768) BR suivant fin_add: STA total,d STRO msgtotal,d ; message du total DECO total,d ; affichage du total STRO normal,d ; message de fin normale BR fin deborde: STRO msgdebor,d ; message de débordement et de fin anormale fin: STOP ; ; variables ; N.B. Il est préférable d'afficher un long message sur plusieurs lignes car la largeur ; de la fenêtre d'output de PEP/8 n'est que de 52 caractères par défaut. bienvenu:.ASCII "Bienvenue à ce programme de sommation.\n\n" .ASCII "Entrez les nombres à additionner (0-pour terminer): \n\x00" msgtotal:.ASCII "\nLa somme des nombres est: \x00" excede: .ASCII "\nLe programme n'additionne que 5 nombres. \n\x00" msgdebor:.ASCII "\nLa somme excède le maximum (minimum) permis.\n\n" .ASCII "Fin anormale du programme.\n\x00." normal: .ASCII "\n\nFin normale du programme.\x00" total: .BLOCK 2 ; #2d ; tableau DOIT être à la fin du programme tableau: .BLOCK 10 ; #2h5a voir les 5 premiers éléments de 2 octets .BLOCK 0 ; les éléments suivants, soit 6 à 999... .END