ASSEMBLEUR : Suite d'instruction ..?
chiti_
Messages postés
1045
Date d'inscription
Statut
Membre
Dernière intervention
-
chiti_ Messages postés 1045 Date d'inscription Statut Membre Dernière intervention -
chiti_ Messages postés 1045 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai ce programme
mov cx,256
mov ax,00ff h
mov ds,ax
xor bx,bx
saut: mov[bx],al
dec cx
inc bx
jnz saut
pouvez vous m'expliquer ce qu'il fait au just ????
car je suis confus entre
-Le JNZ teste si CX =0
-Le JNZ qui compare entre BX et CX
--
To really understand what's Death, we should live it
par ce que c'est pas tous les jours qu'on a le droit à un nouveau départ
j'ai ce programme
mov cx,256
mov ax,00ff h
mov ds,ax
xor bx,bx
saut: mov[bx],al
dec cx
inc bx
jnz saut
pouvez vous m'expliquer ce qu'il fait au just ????
car je suis confus entre
-Le JNZ teste si CX =0
-Le JNZ qui compare entre BX et CX
--
To really understand what's Death, we should live it
par ce que c'est pas tous les jours qu'on a le droit à un nouveau départ
3 réponses
-
L'instruction Jnz teste ici maladroitement si bx est à zéro,
et en fait c'est une erreur, il faut inverser 'dec cx' et 'inc bx'.
ainsi, la boucle prendra fin lorsque cx sera à 0...
Le chêne aussi était un gland, avant d'être un chêne -
Je suis un peu rouillé en assembleur, mais il me semble que :
JNZ teste si le ZF==0. Le Zéro Flag est mis à 1 si le résultat d'une opération affectant le Zéro Flag est zéro, autrement, il est vidé.
Dans ton programme seuls les opcodes XOR, DEC et INC affectent le Zéro Flag, INC étant le dernier avant le test, c'est donc lui qui fixe la valeur du Zéro Flag testé.
Le programme boucle sur "saut" tant que INC BX ne produit pas un résultat égal à zéro.
Tu peux sans doutes le vérifier avec un débogueur.
Et voilà quelques liens utiles :
https://pdos.csail.mit.edu/6.828/2004/readings/i386/INC.htm
https://pdos.csail.mit.edu/6.828/2004/readings/i386/appc.htm
Dal -
ahhh ! répondez !!!! s'il vous plait !!!!!!