Accueil
Démo
Exercices formatifs
Travaux pratiques
Simulation libre
Sessions sauvegardées

Branchement conditionnel

Refaites la même chose que pour l'exercice précédent, mais cette fois-ci avec des branchements.

Soient les registre R0 et R1. Écrivez un programme qui:

  1. si R1 est négatif, place le résultat de R0 + R1 dans R2;
  2. si R1 est positif, place le résultat de R0 - R1 dans R2;
  3. si R1 est égal à 0, place R0 dans R2.
SECTION INTVEC

B main

SECTION CODE

main
; valeurs de test pour R1 et R2 -- modifiez-les!
MOV R0, #2
MOV R1, #-1


; comparaison -- mets à jour les drapeaux de l'ALU
CMP R1, #0x00

; saute au bon endroit en fonction du résultat de la comparaison
BLT negatif
BGT positif
BEQ nul

negatif ; que faire si R1 est (strictement) négatif
ADD R2, R0, R1
B fin

positif ; que faire si R1 est (strictement) positif)
SUB R2, R0, R1
B fin

nul     ; que faire si R1 est égal à 0
MOV R2, R0
fin

B fin

SECTION DATA

Registre Généraux (User)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 (sp)
R14 (lr)
R15 (pc)

Registre Généraux (FIQ)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8 FIQ
R9 FIQ
R10 FIQ
R11 FIQ
R12 FIQ
R13 FIQ (sp)
R14 FIQ (lr)
R15 (pc)

Registre Généraux (IRQ)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 IRQ (sp)
R14 IRQ (lr)
R15 (pc)

Registre Généraux (SVC)

Nom Valeur
R0
R1
R2
R3
R4
R5
R6
R7
R8
R9
R10
R11
R12
R13 SVC (sp)
R14 SVC (lr)
R15 (pc)

État courant

 CPSRSPSR
Negatif (N)
Zero (Z)
Retenue (C)
Dépassement (V)
Ignore IRQ
Ignore FIQ

Configurations

Interruptions

Activer
Type
 cycles
 cycles (premier)
Vitesse d'exécution :  ms

Français

SECTION INTVEC B main SECTION CODE main ; valeurs de test pour R0 et R1 -- modifiez-les! MOV R0, #2 MOV R1, #-1 negatif ; que faire si R1 est (strictement) négatif positif ; que faire si R1 est (strictement) positif) nul ; que faire si R1 est égal à 0 fin B fin SECTION DATA

Instruction courante

Mémoire

Suivre PC
Cycle courant :