ASSEMBLEUR : Suite d'instruction ..?
chiti_
Messages postés
1189
Statut
Membre
-
chiti_ Messages postés 1189 Statut Membre -
chiti_ Messages postés 1189 Statut Membre -
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
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
A voir également:
- ASSEMBLEUR : Suite d'instruction ..?
- Logiciel assembleur - Télécharger - Édition & Programmation
- Assembleur pdf - Guide
- Assembleur - Forum Programmation
- Problème assembleur - Forum Assembleur
- Assembleur pc gamer ✓ - Forum Études / Formation High-Tech
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
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
chiti_
Messages postés
1189
Statut
Membre
128
Merci beaucoup; ça me rassure, car ça m'as mit complètement à coté de la plaque, alors que c'étais pas moi qui ai fait l'erreur XD
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
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