Help me

Signaler
Messages postés
63
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
27 avril 2013
-
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
-
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

Messages postés
572
Date d'inscription
jeudi 28 novembre 2002
Statut
Membre
Dernière intervention
14 février 2021
2
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
Messages postés
202
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
29 septembre 2008
2
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+