15. arm instruction conditionelle Flashcards
comment résoudre ce problème :
But: comparer deux nombres placés dans R1 et R2
* Si R1 > R2, mettre R3 dans R0
* Sinon, mettre R4 dans R0
3 choses nécessaires
- Une instruction pour comparer R1 et R2
- Un endroit pour stocker le résultat de la comparaison
- Des instructions conditionnelles, activées seulement si la
comparaison répond à certains critères
Le registre d’état (CPSR) décrit
l’état du processeur
à quoi servent les flags
stocker
de l’information additionnelle sur
les opérations arithmétiques
effectuées par l’ALU.
combien de flag et leur nom
4
Dépassement (overflow) #28
Retenue (carry/borrow) #29
Valeur nulle (zero) #30
Nombre négatif (negative) #31
4 types de détections de conditions dans cpsr
N: Détection de signe négatif
- Z: Détection de zéro
- C: Détection de retenue (carry) ou d’emprunt (borrow)
- V: Détection de débordements (overflow)
comment fonctionne N dans CPSR
Détection de signe négatif
* 1 si résultat < 0, 0 autrement
comment fonctionne Z dans CPSR
Z: Détection de zéro
* 1 si résultat = 0, 0 autrement
* Souvent utilisé pour détecter les égalités
comment fonctionne C dans CPSR
C: Détection de retenue (carry) ou d’emprunt (borrow)
* 1 si l’opération a impliqué une retenue, 0 autrement
* Ex. retenue d’addition de nombres positifs
comment fonctionne V dans CPSR
V: Détection de débordements (overflow)
* 1 si l’opération a impliqué un débordement, 0 autrement
* Ex. débordement signé lors d’une addition
L’instruction — compare deux nombres, et
modifie les drapeaux de l’ALU
L’instruction CMP compare deux nombres, et
modifie les drapeaux de l’ALU
CMP R1, R2 ; calcule R1 - R2, change les drapeaux
Les instructions arithmétiques et logiques
modifient les drapeaux de l’ALU lorsque la lettre —
est rajoutée après le nom de l’instruction
Les instructions arithmétiques et logiques
INSTRUCTION Rd, Rs, Op
; exécute l’instruction
modifient les drapeaux de l’ALU lorsque la lettre —
est rajoutée après le nom de l’instruction
INSTRUCTIONS Rd, Rs, Op
; exécute l’instruction et met à jour les drapeaux
ex
SUBS R0, R1, R2 ; R0 ⃪ R1 - R2
; et met à jour les drapeaux
L’instruction
met l’opérande —- dans le registre —, si la
condition — est vraie
L’instruction
MOVcc Rd, Op
met l’opérande Op dans le registre Rd, si la
condition cc est vraie
Exemple:
MOVEQ R3, R1
; R3 ⃪ R1 seulement si le drapeau Z est 1
ADDNE R2, R2, R1
; R2 ⃪ R2 + R1 seulement si le drapeau Z est 0