Exercice : Branchements Conditionnels

Exercice : Branchements Conditionnels

La séquence classique d’instructions pour réaliser des branchements conditionnels (des tests du type si (r1==r0) alors … finsi) sur les microprocesseurs est :

		cmp r1, r0 // r1 - r0 --> Mise à jour NZCV  
		bxx label  // goto label si la condition xx est validée
		...
		...
label:  

xx est une condition comme égal à (r1==r0), différent de (r1!=r0), plus petit que (r1<r0), … Le but de cet exercice est de voir comment le microprocesseur peut évaluer la condition à tester à partir du résultat de la soustraction implicite qui est effectuée par l’instruction cmp (compare).

On considère un microprocesseur faisant la comparaison de deux registres d’un octet chacun. Quel que soit la manière dont on considère la représentation binaire des nombres (binaire naturel ou complément à 2), le microprocesseur calcule la soustraction de la même manière et positionne toujours de la même façon les indicateurs N, Z, C, V.

  • N : recopie du bit de poids fort du résultat
  • Z : résultat nul
  • C : recopie du bit de retenue sortante.
  • V : overflow lors d’un calcul sur des nombres représentés en complément à 2

Fichier Tableur à compléter :

branchements_conditionnels.ods


Mise à jour des bits d’états NZCV

bc1.svg

Le graphe ci dessus définit 8 zones de couleur.
Chaque zone correspond à différents intervalles de valeurs hexadécimales pour r0 et r1.
Dans chacune de ces zones, les valeurs des octets r0 et r1 peuvent être classés l’un par rapport à l’autre : r1<r0, r1=r0, r1>r0.
Ce classement dépend de la nature signée (complément à 2) ou non signée (binaire naturel) de la représentation des nombres codés dans r0 et r1.

Q1. Indiquer sur ce graphe le positionnement des indicateurs NZCV dans chacune des zones. Pour cela, réaliser bit à bit l’opération r1r0 r_1-r_0 , correspondant à : r1+r0ˉ+1 r_1+\bar{r_0}+1 .


Nombres Non Signés

Q2. Sur le graphe ci-dessous, classer les octets r0 et r1 dans chacune des zones et sur les frontières spécifiées si on considère que les nombres sont non signés (représentés en binaire naturel).

bc2.svg

tv1.svg

Q3. A partir de la table de vérité, établir les équations qui doivent être vérifiées lorsque les nombres sont non signés pour les classements suivants :

• r1 < r0
• r1 = r0
• r1 ≤ r0
• r1 > r0
• r1 ≥ r0

Certaines combinaisons de N,Z,C,V n’apparaissent jamais. Elles peuvent être utilisées pour simplifier les équations logiques.


Nombres Signés

Q4. Sur le graphe 3, classer les octets r0 et r1 dans chacune des zones et sur les frontières spécifiées si on considère que les nombres sont signés (représentés en complément à 2).

bc3.svg

tv1.svg

Q5. A partir de la table de vérité, établir les équations qui doivent être vérifiées lorsque les nombres sont non signés pour les classements suivants :

• r1 < r0
• r1 = r0
• r1 ≤ r0
• r1 > r0
• r1 ≥ r0

Certaines combinaisons de N,Z,C,V n’apparaissent jamais. Elles peuvent être utilisées pour simplifier les équations logiques.