Copie d'un bit
L'opération CPYB permet de copier 1 bits d'un registre à un autre en spécifiant la position de lecture et d'écriture et en indiquant le mode d'écriture :
- 0 : Les bits de la destination sont préalablement mis à 0.
- = : Les bits de la destination sont concervés.
Impacte C qui prend la valeur du bit lu.
En résumé :
Usage : CPYB Rdd,Rnn,BITd,BITs,mode
Exemple : CPYB R31,R30,0,5,0
Résultat : R31 <= ((R30 & 0x00000020) >> 5) << 0
Exemple : CPYB R31,R30,7,12,=
Résultat : R31 <= (R31 & 0xFFFFEFFF) | (((R30 & 0x00000080) >> 7 )) << 12
Saut inconditionnel direct
L'opération JMPd réalise un saut absolu dans l'espace de mémoire. Les sauts sont toujours alignés sur un mot de 32bits
N'impacte aucun flag.
En résumé :
Usage : JMPd absoluteAddress&0xFFFFFFFC
Exemple : JMPd 0x12345678
Résultat : Saut à l'adresse 0x12345678
Saut inconditionnel par registre
L'opération JMPr réalise un saut absolu à m'adresse de mémoire indiquée par un registre. Les sauts sont toujours alignés sur un mot de 32bits
N'impacte aucun flag.
En résumé :
Usage : JMPr Rmm&0xFFFFFFFC
Exemple : JMPr R31
Résultat : Saut à l'adresse (R31&0xFFFFFFFC)
Saut conditionnel, relatif
L'opération JB effectue un saut relatif à partir de l'adresse courante du compteur ordinal (Adresse de l'instruction + 4) sur un mot de 32 bits. Le saut est décidé si le bit du registre indiqué à la valeur demandée. Un mode permet en plus de tester certaines combinaison de bits particulières adaptées aux flags.
- bit : Saut si le bit du registre indiqué vaut la valeur demandée.
- +Z : En plus du bit, le saut sera effectué si Z=1 (ou).
- -Z : En plus du bit, le saut ne sera effectué que si Z=0.
- G : En plus du bit, le saut ne sera effectué que si S=O.
- LE : En plus du bit, le saut sera effectué si S!=O (ou).
N'Impacte aucun flag.
En résumé :
Usage : JB mode,Rnn,bit,val,adresse
Exemple : JB bit,R02,3,1,@label ou JBS @label
Résultat : Saut à l'adresse label si le bit 3 de R02 vaut 1 (S=1)
Exemple : JB +Z,R02,3,1,@label ou JBSZ @label
Résultat : Saut à l'adresse label si le bit 3 de R02 vaut 1 (S=1) ou si (Z=1)
Exemple : JB bit,R31,1,0,@label
Résultat : Saut à l'adresse label si le bit 1 de R31 vaut 0