Help me

abdelkaderg54 Messages postés 63 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 27 avril 2013 - 23 avril 2007 à 23:37
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 - 24 avril 2007 à 09:38
SAlut tt le monde...


Je suis un debutant en assembleur et je cherche les programmes suivants:


1/Resoudre une equation de 2emme degre.


2/Faire la permutation entre deux blocs de memoire le premier bloc commance de l'adresse 1 à 10 et l'autre de 12 à 22.


Et en fin j'aimerai bien avoire des reponses convencontes et merci


Je travail sur l'assembleur 8086..


Et encore merci

2 réponses

ToutEnMasm Messages postés 587 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 13 décembre 2022 3
24 avril 2007 à 07:35
Salut,
Sur des sujets scolaires comme celui ci,la réponse convaincante est de faire une recherche avec google et de copier des exemples.
                                      ToutEnMasm
0
cs_Nasman Messages postés 202 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 29 septembre 2008 3
24 avril 2007 à 09:38
Bonjour,

Pour le point n°1, à savoir la résolution d'une équation polynomiale du second degré il faut:
- connaitre la méthode mathématique de résolution de ce type d'équation (dans l'espace des réels ou des complexes ?)


- soit de disposer d'un coprocesseur mathématique qui permet de travailler avec des nombres en virgule flottante et a la fonction racine carrée
- soit d'utiliser les algorithmes d'extraction de racines tel l'algorithme d'Héron d'Alexandrie

Il fonctionne ainsi
Soit n le nombre dont on veut extraire la racine et x0 une racine initiale comprise entre 1 et n
Il faut trouver x tel que x²= n          soit 2x²=x²+n
Soit          x=(x²+n)/(2x)                soit x=(x+n/x)/2
On calcule la suite de:
               xi+1=(xi+n/xi)/2
La convergence est rapide si x0 est judicieusement choisi (par exemple en ne prenant que les bits de poids fort et en n'en prenant que la moitié du nombre de bits. Par exemple pour n=25000 (base dix)
soit en binaire 11000011 0101000 (base 2). On gardera soit
x0 =1100001 (base 2) =  97 (base dix), soit 11000011 (base2) =195 (dix)
on aura
x1=10110001(base 2)=177              soit x1=10100001(base2)=161
x2=10111000(base 2)=184              soit x2=10011110(base2)=158
x3=10011111(base 2)=159              soit x3=10011110(base 2)=158
x4=10011110(base 2)=158              soit x4=10011110(base 2)=158
x5=10011110(base 2)=158              soit x5=10011110(base 2)=158

Il sera sans doute nécessaire de multiplier par un coefficient convenable si on veut avoir la précision souhaitée.
A+
0
Rejoignez-nous