Opérateurs logiques ET, OU, XOR
SC91-A dispose des instructions logiques de base à savoir ET, OU et XOR, ces instructions ont un fonctionnement similaire, seul
leur encodage varie. Les instructions sont donc AND, OR et XOR.
Elles utilisent 1 destination et 2 opérandes.
Impact les flags C8, C16, S, S8, S16, O8, O16, P et Z.
En résumé :
Usage : AND Rdd,Rnn,Rmm
Exemple : AND R31,R30,R29
Résultat : R31 <= R30 ET R29
Usage : OR Rdd,Rnn,Rmm
Exemple : OR R31,R30,R29
Résultat : R31 <= R30 OU R29
Usage : XOR Rdd,Rnn,Rmm
Exemple : XOR R31,R30,R29
Résultat : R31 <= R30 OU EXCLUSIF R29
Les rotations ROT
L'instruction ROT, permet d'effectuer les rotations de step bits d'un registre source et de stocker le résultat
de cette opération dans un registre de destination. Cette instruction permet les rotations à gauche et à droite, les rotations circulaires ou
non, avec injection de zéro, un, signe ou retenue selon le mode choisi et sa direction :
- left - Décalage des données vers la gauche.
- right - Décalage des données vers la droite.
- rot - Rotation : le bit entrant est le bit sortant.
- zero - Décalage : le bit entrant est un zéro, le bit sortant est mis en carry.
- one - Décalage : le bit entrant est un un, le bit sortant est mis en carry.
- carry - Décalage : le bit entrant est la carry (C), le sortant est mis en carry.
- sign - Décalage : le bit entrant est celui de signe (S).
Impact les flags C8, C16, C, S, S8, S16, O8, O16, O, P et Z.
Remarque : Les modes carry et sign ne sont pas compatibles avec plus d'un pas.
En résumé :
Usage : ROT Rdd,Rnn,step,dir,mode
Exemple : ROT R31,R30,2,left,zero
Résultat : R31 <= R30 << 2