Revenir au plan du site
Sauts inconditionnels sans retour
JR
Cette instruction permet d'effectuer un saut relatif, en avant ou en arrière avec une amplitude 8 bits, soit de -128 à 127. Il n'existe pas de version 16 bits de ce saut relatif. Certains assembleurs pourront automatiquement le remplacer par un saut 16 bits absolu mais comme le saut ne sera plus relatif, le code ne pourra s'exécuter correctement que de l'emplacement mémoire prévu à l'assemblage. Les autres assembleurs afficheront une erreur de saut relatif trop long.
JR unLabel ; sauter vers un label proche
JR $ ; sauter sur soi-même, boucle infinie
|
- Il existe des versions conditionnelles de ce saut
- Le saut relatif présente l'intérêt d'avoir un micro-code plus compact (2 octets au lieu de 3 pour JP) et de pouvoir charger le programme qui n'utilise que des sauts relatifs, n'importe où en mémoire.
JP
Cette instruction permet d'effectuer un saut absolu dans l'espace d'adressage 16 bits. On peut donner en argument un label ou des trois registres suivants: HL,IX,IY
JP unLabel ; sauter vers un label dans l'espace mémoire adressable
|
Attention, contrairement à ce que la syntaxe suivante suggère, on utilise bien la valeur du registre et non celle pointée par le registre! Rasm peut assembler l'instruction sans les parenthèses.
JP (HL) ; sauter vers l'adresse HL
JP (IX) ; sauter vers l'adresse IX / Il n'est pas possible d'utiliser d'offset 8 bits avec cette instruction
JP (IY) ; sauter vers l'adresse IY / Il n'est pas possible d'utiliser d'offset 8 bits avec cette instruction
|
- Il existe des versions conditionnelles du saut JP label
- Avec l'utilisation de saut absolu, l'adresse de chargement et d'exécution d'un programme ne peut pas être modifiée.
RET
L'instruction RET (abréviation de return) effectue un saut à l'adresse lue et retirée du haut de la pile. L'adresse aura été placée auparavant sur la pile typiquement par une instruction d'appel à une sous-routine.
RET ; note : pas de paramètre
|
- Il existe des versions conditionnelles de ce saut
Sauts inconditionnels avec retour
CALL
Cette instruction effectue un saut absolu dans l'espace d'adressage 16 bits. L'adresse de l'instruction suivante est enregistrée dans la pile. Ainsi le programme appelant peut revenir où il en était avec un RET.
CALL unLabel ; sauter vers l'adresse absolue du label
|
- Il existe des versions conditionnelles de ce saut
RST
Cette instruction est un saut absolu spécifique qui ne peut s'utiliser qu'avec les adresses #00,#08,#10,#18,#20,#28,#30 ou #38. L'adresse de l'instruction suivante est enregistrée dans la pile. Ainsi le programme appelant peut revenir où il en était avec un RET.
- Il existe des versions conditionnelles de ce saut pour l'adresse #38 (supportées par Rasm)
- L'instruction RST est essentiellement utilisée pour des appels systèmes, celui-ci étant généralement situé en début de mémoire.
- L'instruction RST est l'instruction de saut la plus compacte et la plus rapide qui soit car elle ne prend qu'un seul octet.