sauts et opérations bits
Les instructions d'opérations arithmetiques

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 :

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.

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
Les appels de procédures
Simple-Cpu The Simple CPU project The Simple CPU project
Un projet de disk91
Small CPU project