Registre d'état du 68K |
Le registre d'état du 68K est un registre 16 bits dont le poids faible est constitué des bits code conditions et le poids fort est utilisé pour le système.
source Motorola
Les bits C, V, Z, N sont positionnés par toutes les opérations arithmétiques et logiques. Ainsi la séquence de code suivante : move.b #$1,d0 sub.b #$1,d0 positionne Z à 1 et ne modifie pas les autres bits. La séquence suivante : move.b #$1,d0 sub.b #$2,d0 positionne Z à 0, c à 1 et N à 1 puisque le résultat est négatif. Il existe une instruction qui permet de positionner les bits condition sans modifier l'opérande destination. Il s'agit de l'instructions CMP. Elle réalise la différence de deux opérandes sans modifier l'opérande destination et positionne les bits C, V, Z, et N en fonction du résultat. Ainsi la séquence d'instructions suivante : move.b #$0a,d0 move.b #$0b,d1 cmp.b d1,d0 positionne les bits condition en fonction du résultats de la différence d0 – d1 sans modifier ni le contenu de d0 ni le contenu de d1. Ici comme le résultat est négatif, N et C sont positionnés à 1. En revanche si la dernière instruction est substituée par l'instruction : cmp.b #$0a,d0 alors seul Z sera positionné à 1 puisque le résultat est nul. Enfin cette dernière instruction est remplacé par cmp.b #$d0,d1 comme le résultat est positif tout les bits conditions sont positionnés à 0. |