RECURSIVITE EN ASM

Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
- - Dernière réponse : BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
- 13 août 2005 à 10:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/33202-recursivite-en-asm

Afficher la suite 
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
pourquoi c'est en 16 bits ?
BruNews
Messages postés
21054
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
7 novembre 2014
13 -
On se demande pourquoi les gens associent ASM et moyen-âge, c'est pourtant pas obligatoire.
cs_Nasman
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
-
Merci pour la source (plus il y en aura sur le site et plus on pourra progresser). Cependant je trouve dommage que pour un tutoriel la partie récursivité soit un peu noyée dans le reste. C'est peut-être le prix à payer pour avoir un programme complet qui fonctionne et qui affiche des résultats.

Pour ma part je pense qu'il serait préférable (pour une question de clarté)de scinder les différents éléments du programme en plusieurs tutoriels du genre :
-comment saisir des données au clavier
-comment afficher un message
-comment convertir une chaine de caractère en nombres
-comment convertir un nombre en chaine ascii
-comment appeler un sous programme
-la gestion de la pile
-le passage de paramètres entre plusieurs applications (asm et langage évolué).
-optimisation d'un programme (les trucs et astuces genre xor ax,ax...)en vue de le rendre plus compact ou plus rapide

En règle générale, moins il y en a dans un programme et plus il est facile à comprendre - c'est le but recherché d'un tutoriel.

Pour terminer il est vrai que le 16 bits est un peu dépassé à l'heure des 32 et 64 bits mais il est vrai que l'enseignement de l'assembleur s'effectue trop souvent sur du 16 bits.
cs_patatalo
Messages postés
1466
Date d'inscription
vendredi 2 janvier 2004
Statut
Modérateur
Dernière intervention
14 février 2014
1 -
salut,

j'aime pas trop la recursivité par call car il y a des risques de debordement de pile ( surtout en 16 bits ) ce qui oblige a calculer le nombre max de recursivité par rapport à la taille de la pile.

@++
cs_Nasman
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
-
La récursivité génère un système de boucles imbriquées. Il est souvent plus économique d'utiliser une boucle, comme par exemple
mov cx,n
mov ax,1
fact mul ax,cx ;effectue fact(n)=n.fact(n-1)
loop fact ;si cx>0 on continue sinon fini
;ax contient le résultat