ASSEMBLEUR : Suite d'instruction ..?

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


A voir également:

3 réponses

nicocorico Messages postés 846 Statut Membre 138
 
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
1
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
0
[Dal] Messages postés 6373 Statut Contributeur 1 106
 
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
1
chiti_ Messages postés 1189 Statut Membre 128
 
Merci pour ces précieuses infos :)
0
chiti_ Messages postés 1189 Statut Membre 128
 
ahhh ! répondez !!!! s'il vous plait !!!!!!
0