Besoin d'aide microprocesseur 8086

Résolu/Fermé
claudios - 12 déc. 2011 à 21:56
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 14 déc. 2011 à 04:50
Bonjour, est ce que quelqu'un pourrait m'aidé à résoudre cet exercice ecrire un programme assembleur qui permet de faire la multiplication de (15*6) en décimal.

2 réponses

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
12 déc. 2011 à 22:13
Et qu'est-ce qui te bloques ?
Car s'il s'agit simplement de mettre 15 et 6 dans des registres et d'effectuer la multiplication, mieux vaut que tu apprennes à le faire si tu veux être capable de faire quoi que ce soit en asm !
0
le problème c'est que je ne sait même pas par où commencé.
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
12 déc. 2011 à 22:24
Hé bien visiblement il faudrait que tu commences par apprendre l'asm !
Regarde dans les liens juste au dessus, tu y trouveras sans doute ton bonheur...
Quand à la solution, c'est aussi simple que ça :
 
 Mov  EAX,15  // Charge 15 dans le registre EAX
 Mov  EDX,06  // Charge 06 dans le registre EDX
 Mul  EDX     // Multiplie EAX (tacite) par EDX
              // Le résultat se trouve dans EAX
0
merci beaucoup
0
mov ax,15(10)
mov bx 6(10)
Mul bx // (10): pour dire que c'est en base 10, ca change quoi si j'utilise le registre bx a la place de dx!!!
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
Modifié par nicocorico le 14/12/2011 à 04:55
Tu peux utiliser bx sans problème, ainsi que tous les autres registres de travail, y compris esi, edi, ebp... tant que tu veilles à ce qu'ils n'aient pas d'autres dépendances.
Il faut aussi s'intéresser à d'autres instructions, telles que Imul, qui te permet de multiplier n'importe quel registre par une constante :
  Mov   EAX,15;
  Imul  EAX,06;

Ou même 2 registres et une constante :
  Mov   EAX,15;
  Mov   EDX,02;
  Imul  EAX,EDX,03;

Quand à la base employée, tant que tu n'ajoute rien c'est forcément du décimal, donc il est est inutile de le préciser !
Le chêne aussi était un gland, avant d'être un chêne
0