Quelles différences entre "jmp", "jz", "jnz" et autre "jae?
Quelles différences entre "jmp", "jz", "jnz" et autre "jae?
Bonjour,
JMP adresse : saut inconditionnel.
Sauts conditionnels (uniquement saut court -128 +127 octets) :
JA/JNBE (above): saut si supérieur (non signé)
JNC/JAE/JNB : saut si C=0 (si supérieur ou égal en non signé)
JC/JB/JNAE (below): saut si C=1 (inférieur en non signé)
JE/JZ : saut si Z=1 (si égalité après CMP ou soustraction)
JNE/JNZ : saut si Z=0 (différent)
JP/JPE : saut si P=1 (parité paire (even))
JNP/JPO : saut si P=0 (odd=impaire)
JO : saut si O=1 (dépassement de capacité en nombres signés)
JNO : saut si O=0
JS : saut si S=1 (nombre signé négatif)
JNS : saut si S=0
JG/JNLE (greater): saut si supérieur (nombres signés)
JGE/JNL : saut si supérieur ou égal (nombres signés)
JL/JNGE (less): saut si inférieur (nombres signés)
JLE/JNG : saut si inférieur ou égal (nombres signés)
JCXZ : saut si CX=0 (par exemple pour tester comment un LOOPZ REPZ s'est fini).
Voila ...
jmp : saut inconditionnel
jz : branchement si le flag ZF est à 0 (utilisé lorsque le résultat d'une opération logique est différent)
jnz : le contraire de jz
jae : branchement si le résultat d'une opération logique non signée est supérieure ou égal
voilà![]()
Partager