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

Fonction qui écrit en mémoire

Développez la fonction uwotm8 qui place le double du nombre contenu dans R1 à l'adresse 4096 en mémoire. Votre fonction doit s'assurer que les registres ne soient pas modifiés pour l'appelant.

SECTION INTVEC

B main

SECTION CODE

main

LDR SP, =maPile
ADD SP, SP, #40

; Par exemple, plaçons la valeur 0x12 dans R1
MOV R1, #0x12

; Appelons la fonction
BL uwotm8

; Vérifions qu'il y a bien 0x24 à l'adresse 4096
ASSERT 0x1000=0x24,0x1001=0,0x1002=0,0x1003=0

fin
B fin

; Écrivez votre fonction ici
uwotm8
PUSH {R0, R1}

ADD R1, R1, R1
MOV R0, #0x1000
STR R1, [R0]
POP {R0, R1}

BX LR

SECTION DATA

tmp ALLOC32 10
maPile ALLOC32 10

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 LDR SP, =maPile ADD SP, SP, #40 ; Par exemple, plaçons la valeur 0x12 dans R1 MOV R1, #0x12 ; Appelons la fonction BL uwotm8 ; Vérifions qu'il y a bien 0x24 à l'adresse 4096 ASSERT 0x1000=0x24,0x1001=0,0x1002=0,0x1003=0 fin B fin ; Écrivez votre fonction ici SECTION DATA tmp ALLOC32 10 maPile ALLOC32 10

Instruction courante

Mémoire

Suivre PC
Cycle courant :