assembly_project/Principale.asm
2023-03-13 11:05:25 +01:00

79 lines
2 KiB
NASM

;************************************************************************
THUMB
REQUIRE8
PRESERVE8
;************************************************************************
include REG_UTILES.inc
;************************************************************************
; IMPORT/EXPORT Système
;************************************************************************
IMPORT ||Lib$$Request$$armlib|| [CODE,WEAK]
; IMPORT/EXPORT de procédure
IMPORT Init_Cible
EXPORT main
;*******************************************************************************
;*******************************************************************************
AREA mesdonnees, data, readwrite
;*******************************************************************************
AREA moncode, code, readonly
;*******************************************************************************
; Procédure principale et point d'entrée du projet
;*******************************************************************************
main PROC
;*******************************************************************************
MOV R0,#0;
BL Init_Cible;
; SET
LDR R12,=0x40010C00
MOV R5,#(0x01 << 10)
STRH R5,[R12,#0x10] ;On stocke la variable R5 à l'adresse 0x0X40010C10
; RESET
MOV R5,#(0x01 << 10)
STRH R5,[R12,#0x14] ;On stocke la variable R5 à l'adresse 0x0X40010C10
; ALLUMER LA LED
LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
ORR R5, R5,#(0x01 << 10) ;OU LOGIQUE pour calculer la valeur a mettre dans l'output
STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans l'output
;ETEINDRE LA LED
LDR R5,[R12,#0x0C] ;Valeur à l'adresse de l'output
AND R5, R5,#~(0x01 << 10) ;OU LOGIQUE pour calculer la valeur a mettre dans l'output
STRH R5,[R12,#0x0C] ;Etat du port B (R5) stocké dans l'output
B . ; boucle inifinie terminale...
ENDP
END
;*******************************************************************************