Assembleur 8086

Fermé
maya - 4 févr. 2006 à 20:28
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 5 mai 2008 à 21:32
bonsoir,pouvez vous m'aider sur 1 sujert?etablir 1 programme en assembleyr 8086 permettant d'effectuer l'adition de 2 nombres double-word 32 bits chacun N1 et N2 codés en BCD le resulta de l'addition doit etre en BCD.merci de me repondre

11 réponses

Yonnel.BALEZ Messages postés 7 Date d'inscription vendredi 27 janvier 2006 Statut Membre Dernière intervention 6 février 2006 2
6 févr. 2006 à 12:04
L'algorithme est senssiblement le même que lorsque tu fais une addition à la main.
Sauf qu'il faut utiliser les instruction BCD sur 20 chiffres.
Commence par programmer une addition de deux chiffres, ajouté à deux autres chiffres en BCD
exemple 12+34
tu commence par programmer 2+4 = 6
ici tu n'a pas de retenue
ensuite tu fait 1+3=4

en généralisant l'opération tu pourra voir comment placer tes boucles pour rendre le programme général.

Je ne me suis jamais servi de ces instructions, car je pense que c'est complètement dépassé. On peut faire nettement mieux en travaillant sur des chaines d'octets en base 256 sur le même algorithme. C'est ce j'ai fait. J'additionne, soustrait et multiplie des chaînes d'octets de longueur quelconque (<32000 octets).

Si tu y arrive en BCD , merci de me communiquer ton programme car cela m'interesse à titre d'information et d'exemple...
3
j'ai un problème de manipulation de tableau avec l'assemble 8086 est aussi pour les boucles j'ai besoin d'exercice corrigés ,merci
3
slt je cherche des exos corrigés en micro p 8086 pouvez vous m'aider merci
2
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
5 mai 2008 à 21:32
Pour un nouveau problème => ouvrez un nouveau sujet!

Merci de votre compréhension.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je veux justement savoir c'est quoi exactement l'utilité de la procedure dans un programme en assembleur8086,ca sert a quoi exactement.merci
0
Bonjour

pour l'utilité, à part pédagogique (argument passe-partout), bof...

Je suppose que ton prof veut te faire utiliser l'instruction DAA qui permet, après une addition de 2 octets (2 chiffres + 2 chiffres d'un seul coup) de retrouver un résultat en BCD. Je n'ai pas de manuel assembleur 8086 sous la main pour^être plus précis, mais si tu l'étudies tu dois bien avoir le jeu d'instructions avec les explications détaillées.
0
Salut,

Moi également je cherches ces exos corrigés si poss avec le 8051 si jamais un connaisseur peut nous aider n'hésitez pas.
merci

Bibipol
0
salut tou le monde
j'ai vraiment besoin à des exercices corrigés en programmation assembleur pour les processeurs INTEL
SVP aidez moi
0
je vx s il vous plais le corrige de se programme: un programme ki renvoie le nombre d onccurences d 1 caractere ds 1 chaine de caracteres; et le caractere et la chaine doivent etre lus. et merci bcq
0
bonsoir,g 1gros pb,je cherche la correction du pb suivant:ecrire 1programme en assembleur qui permet de tracer deux axe de longueur l, paralelle,et de largeur w.la longueur l et la largeur w sont d parametre a saisir.j'attend 1reponse rapidement mercie.
0
bourbet mouloud Messages postés 8 Date d'inscription mercredi 28 novembre 2007 Statut Membre Dernière intervention 16 décembre 2007
28 nov. 2007 à 09:04
bonjour
concerant l'addition de deux nombres en 32bits n'est pas sorcier.ce qu'il faut connaitre c'est juste les registres utilises:il faut qu'ils soient de taille 32 bits seulement commme:AX, BX, ......ETC.merci et bon courage.
-1
Bonjour,

AX, BX etc font 16 bits et pas 32
ADD fera une addition en binaire, pas en BCD

mais l'instruction à utiliser après l'addition n'est pas DAA (ça c'est du Z80) mais AAD (voir https://fr.wikipedia.org/wiki/Jeu_d%27instruction_x86#Instructions_originale_des_8086.2F8088)
0
bjr mouloud,
tu sais ,en 8086 y'a pas de registre en 32 bits.tt se qu'il faut faire C'est d'utiliser l'ADD et l'ADC voici le prg:
Z:=X+Y avec X:DD;Y:DD et le Z:DD bien sur
MOV AX,X
MOV BX,X+2
ADD AX,Y
ADC BX,Y+2
MOV Z,AX
MOV Z+2,BX
0