diff --git a/Etape_2.uvoptx b/Etape_2.uvoptx
index 6a71f02..2b9736b 100644
--- a/Etape_2.uvoptx
+++ b/Etape_2.uvoptx
@@ -142,6 +142,22 @@
0
0
+ 128
+ 1
+ 134222544
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ .\FonctionEtape2.asm
+
+ \\Simu_Etape0\FonctionEtape2.asm\128
+
+
+ 1
+ 0
116
1
134222522
@@ -156,7 +172,7 @@
\\Simu_Etape0\FonctionEtape2.asm\116
- 1
+ 2
0
115
1
@@ -172,7 +188,7 @@
\\Simu_Etape0\FonctionEtape2.asm\115
- 2
+ 3
0
113
1
@@ -188,7 +204,7 @@
\\Simu_Etape0\FonctionEtape2.asm\113
- 3
+ 4
0
99
1
@@ -204,7 +220,7 @@
\\Simu_Etape0\FonctionEtape2.asm\99
- 4
+ 5
0
98
1
@@ -220,7 +236,7 @@
\\Simu_Etape0\FonctionEtape2.asm\98
- 5
+ 6
0
58
1
@@ -236,7 +252,7 @@
\\Simu_Etape0\FonctionEtape2.asm\58
- 6
+ 7
0
57
1
@@ -252,7 +268,7 @@
\\Simu_Etape0\FonctionEtape2.asm\57
- 7
+ 8
0
56
1
@@ -268,7 +284,7 @@
\\Simu_Etape0\FonctionEtape2.asm\56
- 8
+ 9
0
87
1
@@ -284,7 +300,7 @@
\\Simu_Etape0\Principale.asm\87
- 9
+ 10
0
80
1
@@ -300,7 +316,7 @@
- 10
+ 11
0
91
1
@@ -316,7 +332,7 @@
- 11
+ 12
0
92
1
diff --git a/FonctionEtape2.asm b/FonctionEtape2.asm
index 85f023a..27c3e16 100644
--- a/FonctionEtape2.asm
+++ b/FonctionEtape2.asm
@@ -124,6 +124,11 @@ WHILE_NBLED
ADD R6, R6, #1 ;On incrémente R6
CMP R6, #47 ; SI R6==47 alors on arrête la boucle
BNE WHILE_NBLED
+
+ MOV R0, #SCLK ;************
+ PUSH {R0} ;Reset_X(SCLK)
+ BL Reset_X; ;************
+ B . ;while(1)
ENDP
;**************************************************************************
diff --git a/README.md b/README.md
index 2d04234..7c2b96f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,63 @@
-# roue_assembler
+# But du projet
+Le but sera de faire fonctionner diverses LEDS Ã l'aide d'un STM32 et tout cela en langage Assembler
+# Réaliser un code assembler à partir de C
+Comme vous le savez le code en langage C peut être compilé puis récupéré en assembler. C'est justement ici une solution que j'ai trouvé pour mieux comprendre différents principes, ou si certaines instructions ne me paraissent pas clair.
+Bien évidemment le but du projet n'est pas de recopier bêtement du code que le compilateur peut réaliser, mais de comprendre et de voir comment faire différents algorithmes en Assembler.
+
+La première chose est d'installer le package suivant sur une machine Linux :
+```bash
+sudo dnf install arm-none-eabi-gcc
+```
+*J'utilise Fedora donc mon package manager est dnf, mais cela fonctionne avec apt ou pacman*
+
+Ensuite il suffit de créer un programme en C, voici en un par exemple qui m'a aidé à comprendre l'inversion des bits, ou comment le C récupère les arguments d'une fonction :
+```c
+void set(int pin);
+int invert(int x);
+
+void * gpioA = (void *)0x40010800;
+
+int main(void)
+{
+ add(5);
+ invert(0x20);
+ return 0;
+}
+
+void set(int pin){ *((short *)(globalPtr+0xc)) |= (0x01 << pin) }
+int invert(int x){ return ~x }
+```
+
+Ensuite je lance la commande suivante pour compiler le tout dans un niveau d'optimisation choisi :
+```bash
+arm-bibe-eabi-gcc -OX -c test.c -o test.o
+```
+
+|Argument|Type d'optimisation du compilateur|
+|---|---|
+|-O0|Zero|
+|-O1|Normale|
+|-O2|Maximale|
+
+Et enfin pour voir le résultat en assembler dans la le terminal :
+```bash
+arm-none-eabi-objdump -D test.o
+```
+
+Nous obtenons le résultat suivant :
+
+```assembly
+00000000 :
+ 0:e1e00000 mvnr0, r0
+ 4:e12fff1e bxlr
+
+00000008 :
+ 8:e3a01001 movr1, #1
+ c:e59f3010 ldrr3, [pc, #16]@ 24
+ 10:e5932000 ldrr2, [r3]
+ 14:e1d230b5 ldrhr3, [r2, #5]
+ 18:e1c33011 bicr3, r3, r1, lsl r0
+ 1c:e1c230b5 strhr3, [r2, #5]
+ 20:e12fff1e bxlr
+ 24:00000000 andeqr0, r0, r0
+```
\ No newline at end of file