1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| LDX 0,i ; début de la chaine
;pointeur à la chaine de caractères lus
haut : STRO msg,d
boucle: CHARI temp,x ; lecture la temperature
LDA 0,i ; efface le registre A
LDBYTEA temp,x ; charge la temperature lu
ADDX 1,i ; position suivante
CPA 10,i ; dernier caractère ?
BREQ fini
CPA '0',i ; entre 0 et 9 ?
BRLT paschiff ; n'est pas un chiffre
CPA '9',i
BRGT paschiff
ADDA sum,x
STA sum,x
DECO somme,x
CHARO sum,x
LDX compteur,d
ADDX 1,i
STX compteur,d
paschiff: BR haut
BR boucle
finch: LDA 0,i ;delimiteur de fin
STBYTEA temp,x
DECO compteur,d
fini: STRO termine,d
msg: .ASCII "\x0aDonnez une temperature\x0a"
.BYTE 0
temp: .WORD 0
count: .WORD 0
sum: .WORD 0
compteur:.BLOCK 2
somme: .ASCII "\x0asomme = "
.BYTE 0
termine: .ASCII "\x0a\x0aFin normale du programme.\x00"
.END |
Partager