grpE_RAMOUCHE_CASEAU/dossier/soft/PjtKEIL_StepSon/Src/GestionSon.s

61 lines
No EOL
1.2 KiB
ArmAsm

PRESERVE8
THUMB
; ====================== zone de réservation de données, ======================================
;Section RAM (read only) :
area mesdata,data,readonly
;Section RAM (read write):
area maram,data,readwrite
FlagSon dcb 0
EXPORT FlagSon
SortieSon dcw 0
EXPORT SortieSon
Index dcw 0
EXPORT Index
;LDRD{cond} Rt, Rt2, [Rn, ±Rm] ; register offset, doubleword ; ARM only <-- INSTRUCTION A UTILISER
; ===============================================================================================
;Exportation de la fonction callbackson()
EXPORT callbackson
;Section ROM code (read only) :
area moncode,code,readonly
; écrire le code ici
callbackson proc
push{lr}
ldr r1, =FlagSon ; on affecte à r1 l'adresse de FlagSon (r1 = pointeur sur FlagSon)
ldr r2, [r1] ; on affecte à r2 la valeur contenu dans r1
SI
cmp r2, #0 ; si Flag = 0
bne SINON
ALORS ; on passe Flag à 1 + on allume B1
mov r2, #1
b FINSI
SINON ; sinon on passe Flag à 0 + on éteint B1
mov r2, #0
FINSI
ldr r1, =FlagSon
str r2, [r1] ; on stocke la nouvelle valeur de r2 dans r1 (on met à jour FlagSon)
pop {PC}
endp
END