On m'a demandé de créer une boucle simple en langage assembleur mais j'ai des problèmes car la boucle ne se termine pas quand elle le devrait, elle continue dans une boucle infinie.Impossible de sortir d'une simple boucle d'assemblage
J'ai besoin de donner à l'ECX une variable qui est prise en entrée, mais dans mon code ci-dessous même si je spécifie le compteur directement tombe toujours dans une boucle infinie.
Mon code est ici (mise à jour):
Le code peut contenir des erreurs autres que la boucle réelle.
// Edité pour l'explication des exigences des programmes ...
Le programme a besoin de prendre une entrée « n » qui sera utilisé comme compteur pour la boucle. Je prends alors l'entrée "n" plus de nombres, quand un nombre est positif j'ai besoin d'ajouter cela à la variable postot, quand négatif j'ai besoin d'ajouter cela à la variable negatot. Après avoir entré les numéros "n", j'imprime les résultats pour chaque variable et le programme se termine.
Edit 2:
Correction du problème de la boucle en effaçant la pile correctement donc j'ajouté:
add esp,8
et:
next: push ecx
...
pop ecx
loop next
Ce qui a résolu le problème de la boucle.
Je ne peux même pas dire quelle boucle est en cause. – bmargulies
Il n'y a qu'une seule boucle. – Ash