Author Topic: Statistiques des erreurs "mémoire"  (Read 3653 times)

0 Members and 1 Guest are viewing this topic.

Offline persalteas

  • LV5 Advanced (Next: 300)
  • *****
  • Posts: 231
  • Rating: +44/-4
  • z80 poweeer
    • View Profile
    • Tout-82
Statistiques des erreurs "mémoire"
« on: May 31, 2012, 10:49:42 am »
Bonjour tout le monde...

J'ai discuté récemment avec un programmeur en ASM (tomboul) qui programmait sur d'autres machines que des TI, et qui a remarqué que la 82 était aussi une z80... (topic original: http://tout82.free.fr/forum/sujet.php?sujet=3268&page=1 )

Il nous a soutenu après que la TI ne pouvait pas embriquer un nombre infini de boucles d'un coup sans provoquer de plus en plus forts ralentissements, et il a ensuite fait des petits tests, avec des résultats apparement sans logique...

Je me suis dit que j'allais demander ici ou il y a plus de programmeurs ASM, peut être avez vous déjà compris comment fonctinne la calculatrice sur ce point...

Une chose est sure: chaque instruction plante au bout d'un moment, mais a des temps différents selon la RAM libre.

Quote

"0:prgmBUG" avec comme programme BUG:
Code: [Select]
:Ans+1
:prgmBUG

avec ce code j'arrive à 1475 pour 23ko de ram libre pour une 82statfr avec un plantage mémoire arrivant assez rapidement au bout d'environ 10 secondes.

Si j'y ajoute un if:
Code: [Select]
if Ans>=0
Ans+1
prgmBUG
le plantage mémoire arrive au bout de 2mn30 et ans=1473



Si je change le if en if then ... end:
Code: [Select]
if Ans>=0
then
Ans+1
prgmBUG
end
le plantage arrive au bout d'un trentaine de secondes et ans=462



Si je change le if en for:
Code: [Select]
for(i,0,1)
Ans+1
prgmBUG
end
plantage mémoire au bout de 5 secondes et ans=400


Si je ne fais plus de récursif mais un goto hors 'for':
Code: [Select]
lbl 1
for(i,0,1)
Ans+1
goto 1
end
plantage mémoire au bout de 5 secondes et ans=548


Si je fais un if au lieu du for:
Code: [Select]
lbl 1
if ans>-1
then
Ans+1
goto 1
end
plantage mémoire au bout de 60 secondes et ans=655


Si je fais un if avec >=0 au lieu du >-1
Code: [Select]
lbl 1
if ans>=0
then
Ans+1
goto 1
end
plantage mémoire au bout de 80 secondes et ans=673


on pourrait continuer longtemps plusieurs expérience dans ce genre, mais franchement je ne vois pas encore le lien logique entre le temps d'exécution, le nombre d'incrémentations selon les instructions utilisées ou non !!!

ceci mérite réflexion avant conclusion.

Est-ce que quelqu'un sait comment fonctionne la calculatrice sur ce point ? Comment trouver une logique là dedans ?
(Pour ces tests, c'est une TI 82 stats.fr qui a été utilisée, modèle matériellement égal à la TI 83 plus et logiciellement égale à la TI 83)

Merci pour votre savoir immense  :thumbsup: