GIF-1001
Cours 8, p.5
Un exemple de programme
NAME main ;Nom du fichier/module
PUBLIC __iar_program_start ;Rend l'étiquette __iar_program_start disponible pour d'autres fichiers
SECTION .intvec : CODE (2) ;Le texte qui suit doit être assemblé dans la mémoire FLASH
CODE32 ;Les instructions qui suivent sont sur 32 bits
__iar_program_start ;Étiquette __iar_program_start: IAR commence le programme ici
B main ;Saut/Branchement vers l'étiquette main
;MaVarA = MaVarB + MaVarC
main LDR R0, MaVarB ;Lecture de mémoire, met MaVarB, 0x000000BB, dans R0
LDR R1, MaVarC ;Lecture de mémoire, met MaVarC, 0x000000CC, dans R1
ADD R2, R0, R1 ;R2 = R0 + R1
LDR R3,=MaVarA
STR R2, [R3] ;Écriture de mémoire, met R2 (MaVarB + MaVarC) dand MaVarA
B main ;Boucle infinie: retour à l'étiquette main
DATA ;Le texte qui suit doit être assemblé comme des constantes en FLASH
MaVarB DC32 0x000000BB ; Déclaration de MaVarB, sur 32 bits, valeur initiale = 0xBB
MaVarC DC32 0x000000CC ;Déclaration de MaVarC sur 32 bits, valeur initiale = 0xCC
SECTION `.noinit`:DATA(2) ;Variables en mémoire RAM!
MaVarA DS32 1 ;Déclaration de MaVarA comme une variable de 1*32 bits
END ;Fin du fichier/module