  NAME    main
        
  PUBLIC  __iar_program_start
       
  SECTION .intvec : CODE (2)
  CODE32
        
__iar_program_start

  B       main

b DC32  0xAB      ; Constante "b" sur 32 bits
c DC32  0xF2      ; Constante "c" sur 32 bits
  
  SECTION .text : CODE (2)
  CODE32

; a = b + c
main    
  ; Programme principal: placez un "breakpoint" à la prochaine instruction
  
  LDR R0, b       ; Mettre la valeur de la constante b dans R0 
  LDR R1, c       ; Mettre la valeur de la constante c dans R1
  ; Question: 
  ; - Quel est le contenu de R0 et R1?
  
  ADD R2, R0, R1  ; R2 = R0 + R1
  ; Question: 
  ; - Quel est le contenu de R2?
  
  LDR R3, =a      ; Mettre l’adresse de la variable a dans R3
  STR R2, [R3]    ; Écrire le registre R2 dans la variable a 
  ; Questions: 
  ; - Quelle est l'adresse de a?
  ; - Visualisez son emplacement en mémoire
  ; - Est-ce que le système est en Big Endian ou Little Endian?
  
  B main          ; Et on recommence!
  
  SECTION  `.noinit`:DATA (2)	
a DS32  1         ; Variable "a" sur 32 bits

  END
