Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
Système exploitation
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Cours L3 Info
Système exploitation
Compare revisions
4d06256bbb734e182dcd64c20b11e44f7439b4a0 to bd5f9181ff3be047fd1ab3ff648e13788c1551d6
Compare revisions
Changes are shown as if the
source
revision was being merged into the
target
revision.
Learn more about comparing revisions.
Source
cours-l3-info1/systeme-exploitation
Select target project
No results found
bd5f9181ff3be047fd1ab3ff648e13788c1551d6
Select Git revision
Loading items
Swap
Target
cours-l3-info1/systeme-exploitation
Select target project
cours-l3-info1/systeme-exploitation
1 result
4d06256bbb734e182dcd64c20b11e44f7439b4a0
Select Git revision
Loading items
Show changes
Only incoming changes from source
Include changes to target since source was created
Compare
Commits on Source
2
Projet: Fin des commentaires + Ajout des variable pour la suite
· c99676fe
Lucas B
authored
4 months ago
c99676fe
Plus jeune et plus agee
· bd5f9181
Lucas B
authored
4 months ago
bd5f9181
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
Projets/enregistrement.asm
+280
-57
280 additions, 57 deletions
Projets/enregistrement.asm
with
280 additions
and
57 deletions
Projets/enregistrement.asm
View file @
bd5f9181
; Name : Enregistrement
; Description: Logiciel d'enregistrement des personnes sans memoire avec 6 actions possibles (Ajouter une personne,
; supprimer une personne, lister toute les personnes, afficher la personne la plus jeunes est la plus ages,
; afficher l'age moyen de toute les personnes et quitter le programme!
; Ce logiciel est en assembleur et est realiser dans le cadre du cours d'architecture des ordinateurs de la
; licence Informatique de l'Université Clermont Auvergne
; Author : Lucas BATTAGLIA
; Contact : Lucas.BATTAGLIA@etu.uca.fr
; Version : 2.4
; Date : 2025 - 03 - 27
; Git : https://gitlab.isima.fr/cours-l3-info1/systeme-exploitation/-/tree/master/Projets
section
.data
;/***************************************************************************************************************************/
...
...
@@ -75,13 +88,23 @@ v_nom: db "1234567890...", 0
vlen_nom:
equ
$
-
v_nom
; Variable pour enregistrer un seul age (3 caractere max -> 0 a 999 ans)
v_age:
d
b
"123"
,
0
v_age:
d
d
123
vlen_age:
equ
$
-
v_age
; Variable pour enregistrer un second age (3 caractere max -> 0 a 999 ans)
v_age2:
dd
0
vlen_age2:
equ
$
-
v_age
; Variable pour enregistrer l'adresse d'une personne (dans la liste)
v_addr:
dd
0
; Variable pour enregistrer l'adresse d'une seconde personne (dans la liste)
v_addr2:
dd
0
; variable pour la liste des personnes (petite taille)
;
v_personnes: db "Timeo 1
0
", 10, "Hugo 19", 10, "Lucas 2
0
", 10, "Eric 50", 10, "Virginie 45", 10, "Marc 45", 10, "Beatrice 40", 10, "David 50", 10, "Sandrine 50", 10, "Henri 70", 10, "Evelyne 65", 10, "Tony 70", 10, "Danielle 64", 10, "Yvone 80", 0 ; Ne mettre aucune donner deriere pour evite qu'elle soit ecrasse
v_personnes:
db
"Timeo 1
2
"
,
10
,
"Hugo 19"
,
10
,
"Lucas 2
1
"
,
10
,
"Eric 50"
,
10
,
"
Virginie
45
", 10, "
Marc
45
", 10, "
Beatrice
40
", 10, "
David
50
", 10, "
Sandrine
50
", 10, "
Henri
70
", 10, "
Evelyne
65
", 10, "
Tony
70
", 10, "
Danielle
64
", 10, "
Yvone
80
"
,
0
; Ne mettre aucune donner deriere pour evite qu'elle soit ecrasse
; variable pour la liste des personnes (grande taille generer par IA)
v_personnes:
db
"
Danielle
45
", 10, "
Laetitia
24
", 10, "
Amandine
26
", 10, "
Noemie
17
", 10, "
Ch
ristophe
58
", 10, "
Isabelle
50
", 10, "
Guillaume
74
", 10, "
Laetitia
67
", 10, "
Marc
21
", 10, "
Justine
20
", 10, "
Timeo
68
", 10, "
Isabelle
60
", 10, "
Josiane
56
", 10, "
Gilles
11
", 10, "
Tony
22
", 10, "
Lise
38
", 10, "
Ch
loe
41
", 10, "
Francois
61
", 10, "
Patricia
18
", 10, "
R
é
gis
56
", 10, "
Catherine
80
", 10, "
Sylvie
18
", 10, "
Bl
andine
18
", 10, "
Emilie
47
", 10, "
Bertrand
56
", 10, "
Jocelyne
74
", 10, "
Julien
16
", 10, "
Ophelie
55
", 10, "
Timeo
40
", 10, "
Emilie
33
", 10, "
M
é
lissa
31
", 10, "
Justine
41
", 10, "
Thibault
23
", 10, "
Lucie
19
", 10, "
Bertrand
77
", 10, "
Mickael
39
", 10, "
Gerard
19
", 10, "
Gabriel
21
", 10, "
Sylvain
59
", 10, "
Herv
é
67
", 10, "
Nicolas
49
", 10, "
Jacques
16
", 10, "
Corentin
38
", 10, "
Nathan
38
", 10, "
Ch
ristine
24
", 10, "
Lucie
80
", 10, "
Jacques
46
", 10, "
Beatrice
77
", 10, "
Mickael
72
", 10, "
Es
telle
56
", 10, "
J
é
r
é
mie
13
", 10, "
G
é
raldine
28
", 10, "
Jacques
14
", 10, "
Colette
64
", 10, "
Bruno
24
", 10, "
Ophelie
31
", 10, "
Camille
14
", 10, "
Matthieu
55
", 10, "
Valentin
39
", 10, "
Emilie
26
", 10, "
Jean
-
Philippe
47
", 10, "
Manon
51
", 10, "
Thierry
18
", 10, "
Raphael
49
", 10, "
Gabriel
55
", 10, "
Jacques
46
", 10, "
Josiane
45
", 10, "
Serge
60
", 10, "
Francois
44
", 10, "
Sylvain
34
", 10, "
Martine
26
", 10, "
Corentin
49
", 10, "
Xavier
75
", 10, "
Colette
31
", 10, "
Amandine
21
", 10, "
Emma
30
", 10, "
Bruno
77
", 10, "
Antoine
44
", 10, "
Maxime
16
", 10, "
Serge
15
", 10, "
Olivier
59
", 10, "
Lucie
67
", 10, "
Helene
66
", 10, "
Al
ice
16
", 10, "
Cl
aire
42
", 10, "
Patricia
60
", 10, "
Beatrice
18
", 10, "
Stephanie
14
", 10, "
Catherine
76
", 10, "
Manon
54
", 10, "
Hugo
51
", 10, "
Jacques
75
", 10, "
Virginie
76
", 10, "
Yvone
36
", 10, "
Arthur
57
", 10, "
M
é
lissa
75
", 10, "
Delphine
80
", 10, "
Fanny
13
", 10, "
Lucas
20
", 10, "
Ludovic
72
", 10, "
Veronique
26
", 10, "
Julien
64
", 10, "
Ch
loe
46
", 10, "
Pascale
60
", 10, "
Severine
42
", 10, "
Laetitia
15
", 10, "
Matthieu
67
", 10, "
Es
telle
47
", 10, "
Paul
29
", 10, "
Beatrice
30
", 10, "
Herv
é
66
", 10, "
Stephanie
21
", 10, "
Es
telle
22
", 10, "
Kevin
26
", 10, "
M
é
lissa
32
", 10, "
Lise
38
", 10, "
Emilie
23
", 10, "
Cl
ement
26
", 10, "
Martine
58
", 10, "
Nathalie
48
", 10, "
Es
telle
27
", 10, "
Sylvain
17
", 10, "
Sebastien
20
", 10, "
Nathalie
25
", 10, "
Cedric
53
", 10, "
Jean
-
Pierre
27
", 10, "
G
é
raldine
66
", 10, "
Damien
51
", 10, "
Manon
64
", 10, "
Mathilde
45
", 10, "
Raphael
26
", 10, "
Herv
é
39
", 10, "
Olivier
64
", 10, "
Sylvie
22
", 10, "
R
é
gis
50
", 10, "
Emilie
58
", 10, "
Baptiste
34
", 10, "
Fanny
23
", 10, "
Juliette
80
", 10, "
Marie
60
", 10, "
Virginie
74
", 10, "
Mireille
59
", 10, "
Dominique
72
", 10, "
Dominique
47
", 10, "
Eric
55
", 10, "
Eric
45
", 10, "
Loic
58
", 10, "
Nathalie
78
", 10, "
Virginie
67
", 10, "
Ch
ristophe
19
", 10, "
Matthieu
38
", 10, "
Thibault
37
", 10, "
R
é
gis
63
", 10, "
Sandrine
36
", 10, "
Ludovic
18
", 10, "
Jean
-
Philippe
31
", 10, "
Juliette
34
", 10, "
Camille
60
", 10, "
Al
ice
35
", 10, "
Sylvie
78
", 10, "
Lise
78
", 10, "
Danielle
65
", 10, "
Herv
é
48
", 10, "
Monique
48
", 10, "
Ch
ristophe
49
", 10, "
David
28
", 10, "
Maxime
45
", 10, "
Maxime
34
", 10, "
Juliette
10
", 10, "
Cedric
14
", 10, "
Liam
25
", 10, "
Henri
24
", 10, "
Fr
é
d
é
ric
74
", 10, "
Morgane
79
", 10, "
M
é
lissa
67
", 10, "
Jerome
71
", 10, "
Herv
é
13
", 10, "
Gilles
75
", 10, "
Laurent
72
", 10, "
Liam
80
", 10, "
Josiane
30
", 10, "
Patricia
25
", 10, "
Jean
-
Pierre
45
", 10, "
Bruno
24
", 10, "
Antoine
68
", 10, "
Veronique
64
", 10, "
Pascale
24
", 10, "
Lionel
46
", 10, "
Tony
80
", 10, "
Marie
62
", 10, "
Serge
63
", 10, "
Fr
é
d
é
ric
50
", 10, "
Lise
25
", 10, "
Cl
ement
33
", 10, "
Caroline
62
", 10, "
Lionel
45
", 10, "
Cedric
65
", 10, "
Amandine
43
", 10, "
Raphael
35
", 10, "
Baptiste
15
", 10, "
Henri
27
", 10, "
Mireille
30
", 10, "
Pascale
74
", 10, "
Juliette
66
", 10, "
Julien
54
", 10, "
Cl
ement
24
", 10, "
Timeo
17
", 10, "
Lucie
57
", 10, "
Nathalie
14
", 10, "
Valentin
14
", 10, "
Sandrine
70
", 10, "
Adrien
80
", 10, "
Bl
andine
73
", 10, "
Guillaume
16
", 10, "
Olivier
24
", 10, "
Arthur
43
", 10, "
J
é
r
é
mie
12
", 10, "
Severine
31
", 10, "
Olivier
32
", 10, "
Laetitia
32
", 10, "
Mickael
67
", 10, "
Timeo
30
", 10, "
G
é
raldine
35
", 10, "
Marc
78
", 10, "
Cl
aire
26
", 10, "
Sophie
65
", 10, "
Bl
andine
21
", 10, "
Ch
ristine
38
", 10, "
Ch
ristine
73
", 10, "
Sylvain
23
", 10, "
Danielle
35
", 10, "
Arnaud
38
", 10, "
Eric
32
", 10, "
Maxime
53
", 10, "
Bl
andine
73
", 10, "
Camille
68
", 10, "
Jean
11
", 10, "
David
54
", 10, "
Pascale
39
", 10, "
Dominique
70
", 10, "
Aur
é
lie
22
", 10, "
Ax
el
49
", 10, "
Gerard
55
", 10, "
Fr
é
d
é
ric
45
", 10, "
Xavier
34
", 10, "
Liam
61
", 10, "
Manon
22
", 10, "
Severine
78
", 10, "
Jean
23
", 10, "
Justine
30
", 10, "
Dominique
31
", 10, "
Amandine
52
", 10, "
Dominique
32
", 10, "
Elodie
67
", 10, "
Valentin
25
", 10, "
Veronique
11
", 10, "
Jean
-
Philippe
24
", 10, "
Al
exandre
17
", 10, "
Marie
73
", 10, "
Sylvain
50
", 10, "
Delphine
69
", 10, "
Francois
31
", 10, "
Jerome
72
", 10, "
Camille
48
", 10, "
Ch
loe
40
", 10, "
Catherine
34
", 10, "
Lucie
15
", 10, "
Ch
loe
43
", 10, "
Juliette
36
", 10, "
Jean
-
Pierre
34
", 10, "
Evelyne
29
", 10, "
Corentin
52
", 10, "
Kevin
49
", 10, "
Morgane
55
", 10, "
M
é
lissa
32
", 10, "
Sandrine
39
", 10, "
Jean
-
Fran
ç
ois
24
", 10, "
Ch
loe
41
", 10, "
Coralie
14
", 10, "
Camille
19
", 10, "
Sandrine
17
", 10, "
Jean
-
Luc
27
", 10, "
Corentin
65
", 10, "
Danielle
44
", 10, "
Francois
25
", 10, "
Pascal
76
", 10, "
Damien
51
", 10, "
Ophelie
31
", 10, "
Paul
54
", 10, "
Emma
42
", 10, "
Gabriel
14
", 10, "
Emma
33
", 10, "
Jean
-
Fran
ç
ois
10
", 10, "
Noemie
12
", 10, "
Fr
é
d
é
ric
31
", 10, "
Gilles
49
", 10, "
Mickael
10
", 10, "
Henri
44
", 10, "
Virginie
64
", 10, "
Ludovic
18
", 10, "
Colette
38
", 10, "
Vincent
65
", 10, "
Bruno
69
", 10, "
Arnaud
53
", 10, "
Lise
77
", 10, "
Jocelyne
78
", 10, "
Al
ice
29
", 10, "
David
32
", 10, "
Jean
-
Pierre
57
", 10, "
Julien
66
", 10, "
J
é
r
é
mie
10
", 10, "
Vincent
75
", 10, "
Elodie
25
", 10, "
Thomas
54
", 10, "
Emma
12
", 10, "
Edouard
33
", 10, "
Morgane
72
", 10, "
Sandrine
79
", 10, "
Arthur
67
", 10, "
Jerome
79
", 10, "
Beatrice
13
", 10, "
Damien
54
", 10, "
Jean
-
Philippe
80
", 10, "
Bruno
47
", 10, "
Es
telle
63
", 10, "
Cedric
75
", 10, "
Jocelyne
50
", 10, "
Ch
ristine
39
", 10, "
Damien
51
", 10, "
G
é
raldine
40
", 10, "
Thomas
41
", 10, "
Yvone
67
", 10, "
Celine
74
", 10, "
Colette
33
", 10, "
Jean
-
Fran
ç
ois
47
", 10, "
Adrien
67
", 10, "
Severine
56
", 10, "
Francois
25
", 10, "
Mireille
65
", 10, "
Nathalie
55
", 10, "
Raphael
16
", 10, "
Olivier
10
", 10, "
Marie
70
", 10, "
Gabriel
30
", 10, "
Morgane
44
", 10, "
Cl
aire
26
", 10, "
Tony
76
", 10, "
Baptiste
65
", 10, "
Mireille
74
", 10, "
Coralie
42
", 10, "
Timeo
21
", 10, "
Edouard
46
", 10, "
Virginie
56
", 10, "
Al
exandre
27
", 10, "
Delphine
14
", 10, "
Yvone
46
", 10, "
Ax
el
31
", 10, "
Vincent
44
", 10, "
Mickael
48
", 10, "
Amandine
38
", 10, "
Evelyne
68
", 10, "
Cl
ement
29
", 10, "
Bertrand
43
", 10, "
Jerome
43
", 10, "
Jean
-
Pierre
59
", 10, "
Stephanie
31
", 10, "
Celine
72
", 10, "
Sylvie
25
", 10, "
Gilles
11
", 10, "
Severine
80
", 10, "
G
é
raldine
23
", 10, "
Delphine
38
", 10, "
Hugo
54
", 10, "
Sophie
77
", 10, "
Xavier
18
", 10, "
Colette
33
", 10, "
Matthieu
27
", 10, "
Gerard
52
", 10, "
Lionel
56
", 10, "
Adrien
35
", 10, "
Beatrice
50
", 10, "
Sebastien
50
", 10, "
Baptiste
35
", 10, "
J
é
r
é
mie
34
", 10, "
Evelyne
62
", 10, "
Henri
54
", 10, "
Cl
ement
47
", 10, "
Laurence
77
", 10, "
Evelyne
24
", 10, "
Sabrina
31
", 10, "
Gilles
78
", 10, "
Evelyne
60
", 10, "
Loic
23
", 10, "
Sabrina
18
", 10, "
Gerard
16
", 10, "
Elodie
61
", 10, "
Kevin
17
", 10, "
Valentin
37
", 10, "
Danielle
60
", 10, "
Jean
-
Michel
62
", 10, "
Henri
74
", 10, "
Thomas
69
", 10, "
Thierry
32
", 10, "
Marie
36
", 10, "
Ch
ristine
22
", 10, "
Celine
23
", 10, "
David
29
", 10, "
Thierry
36
", 10, "
Laurence
33
", 10, "
Nathan
37
", 10, "
Maxime
75
", 10, "
Patricia
73
", 10, "
Liam
13
", 10, "
Caroline
71
", 10, "
Patricia
79
", 10, "
Delphine
38
", 10, "
Sabrina
24
", 10, "
Ludovic
43
", 10, "
Veronique
47
", 10, "
Lucas
21
", 10, "
Baptiste
45
", 10, "
Mathieu
36
", 10, "
Ophelie
17
", 10, "
Nathan
44
", 10, "
Manon
74
", 10, "
Hugo
75
", 10, "
Lionel
26
", 10, "
Paul
65
", 10, "
Philippe
60
", 10, "
Antoine
46
", 10, "
Vincent
69
", 10, "
Arthur
23
", 10, "
Philippe
23
", 10, "
Jean
-
Paul
44
", 10, "
Ophelie
48
", 10, "
Kevin
28
", 10, "
Caroline
13
", 10, "
R
é
gis
59
", 10, "
Arthur
74
", 10, "
Bertrand
72
", 10, "
Martine
58
", 10, "
Raphael
36
", 10, "
Florence
41
", 10, "
Pascal
13
", 10, "
Thierry
49
", 10, "
Gerard
31
", 10, "
Veronique
58
", 10, "
Jocelyne
45
", 10, "
Jean
-
Michel
20
", 10, "
Al
exandre
42
", 10, "
Gabriel
12
", 10, "
Jean
-
Paul
47
", 10, "
Monique
70
", 10, "
Laetitia
37
", 10, "
Coralie
59
", 10, "
Jean
-
Fran
ç
ois
47
", 10, "
Jerome
70
", 10, "
Mathilde
44
", 10, "
Justine
63
", 10, "
Melanie
38
", 10, "
Jocelyne
80
", 10, "
Stephanie
34
", 10, "
Coralie
67
", 10, "
Jean
25
", 10, "
Jean
-
Fran
ç
ois
41
", 10, "
Valentin
67
", 10, "
Ch
ristophe
26
", 10, "
R
é
gis
14
", 10, "
Liam
75
", 10, "
Cl
aire
38
", 10, "
Philippe
22
", 10, "
Mathieu
12
", 10, "
Adrien
22
", 10, "
Fabienne
26
", 10, "
Jean
-
Philippe
13
", 10, "
Lionel
23
", 10, "
Marc
34
", 10, "
Tony
55
", 10, "
Eric
75
", 10, "
Pascale
35
", 10, "
Cl
aire
54
", 10, "
Laurent
58
", 10, "
Isabelle
56
", 10, "
Eric
57
", 10, "
Vincent
62
", 10, "
Julien
67
", 10, "
Tony
73
", 10, "
Ludovic
65
", 10, "
Jean
-
Luc
51
", 10, "
Laurence
65
", 10, "
Stephanie
67
", 10, "
David
30
", 10, "
Aur
é
lie
20
", 10, "
Aur
é
lie
24
", 10, "
Celine
17
", 10, "
Martine
20
", 10, "
Isabelle
70
", 10, "
Celine
18
", 10, "
Adrien
17
", 10, "
Jean
-
Michel
56
"
,
0
;v_personnes: db "Danielle 45", 10, "Laetitia 24", 10, "Amandine 26", 10, "Noemie 17", 10, "Christophe 58", 10, "Isabelle 50", 10, "Guillaume 74", 10, "Laetitia 67", 10, "Marc 21", 10, "Justine 20", 10, "Timeo 68", 10, "Isabelle 60", 10, "Josiane 56", 10, "Gilles 11", 10, "Tony 22", 10, "Lise 38", 10, "Chloe 41", 10, "Francois 61", 10, "Patricia 18", 10, "Régis 56", 10, "Catherine 80", 10, "Sylvie 18", 10, "Blandine 18", 10, "Emilie 47", 10, "Bertrand 56", 10, "Jocelyne 74", 10, "Julien 16", 10, "Ophelie 55", 10, "Timeo 40", 10, "Emilie 33", 10, "Mélissa 31", 10, "Justine 41", 10, "Thibault 23", 10, "Lucie 19", 10, "Bertrand 77", 10, "Mickael 39", 10, "Gerard 19", 10, "Gabriel 21", 10, "Sylvain 59", 10, "Hervé 67", 10, "Nicolas 49", 10, "Jacques 16", 10, "Corentin 38", 10, "Nathan 38", 10, "Christine 24", 10, "Lucie 80", 10, "Jacques 46", 10, "Beatrice 77", 10, "Mickael 72", 10, "Estelle 56", 10, "Jérémie 13", 10, "Géraldine 28", 10, "Jacques 14", 10, "Colette 64", 10, "Bruno 24", 10, "Ophelie 31", 10, "Camille 14", 10, "Matthieu 55", 10, "Valentin 39", 10, "Emilie 26", 10, "Jean-Philippe 47", 10, "Manon 51", 10, "Thierry 18", 10, "Raphael 49", 10, "Gabriel 55", 10, "Jacques 46", 10, "Josiane 45", 10, "Serge 60", 10, "Francois 44", 10, "Sylvain 34", 10, "Martine 26", 10, "Corentin 49", 10, "Xavier 75", 10, "Colette 31", 10, "Amandine 21", 10, "Emma 30", 10, "Bruno 77", 10, "Antoine 44", 10, "Maxime 16", 10, "Serge 15", 10, "Olivier 59", 10, "Lucie 67", 10, "Helene 66", 10, "Alice 16", 10, "Claire 42", 10, "Patricia 60", 10, "Beatrice 18", 10, "Stephanie 14", 10, "Catherine 76", 10, "Manon 54", 10, "Hugo 51", 10, "Jacques 75", 10, "Virginie 76", 10, "Yvone 36", 10, "Arthur 57", 10, "Mélissa 75", 10, "Delphine 80", 10, "Fanny 13", 10, "Lucas 20", 10, "Ludovic 72", 10, "Veronique 26", 10, "Julien 64", 10, "Chloe 46", 10, "Pascale 60", 10, "Severine 42", 10, "Laetitia 15", 10, "Matthieu 67", 10, "Estelle 47", 10, "Paul 29", 10, "Beatrice 30", 10, "Hervé 66", 10, "Stephanie 21", 10, "Estelle 22", 10, "Kevin 26", 10, "Mélissa 32", 10, "Lise 38", 10, "Emilie 23", 10, "Clement 26", 10, "Martine 58", 10, "Nathalie 48", 10, "Estelle 27", 10, "Sylvain 17", 10, "Sebastien 20", 10, "Nathalie 25", 10, "Cedric 53", 10, "Jean-Pierre 27", 10, "Géraldine 66", 10, "Damien 51", 10, "Manon 64", 10, "Mathilde 45", 10, "Raphael 26", 10, "Hervé 39", 10, "Olivier 64", 10, "Sylvie 22", 10, "Régis 50", 10, "Emilie 58", 10, "Baptiste 34", 10, "Fanny 23", 10, "Juliette 80", 10, "Marie 60", 10, "Virginie 74", 10, "Mireille 59", 10, "Dominique 72", 10, "Dominique 47", 10, "Eric 55", 10, "Eric 45", 10, "Loic 58", 10, "Nathalie 78", 10, "Virginie 67", 10, "Christophe 19", 10, "Matthieu 38", 10, "Thibault 37", 10, "Régis 63", 10, "Sandrine 36", 10, "Ludovic 18", 10, "Jean-Philippe 31", 10, "Juliette 34", 10, "Camille 60", 10, "Alice 35", 10, "Sylvie 78", 10, "Lise 78", 10, "Danielle 65", 10, "Hervé 48", 10, "Monique 48", 10, "Christophe 49", 10, "David 28", 10, "Maxime 45", 10, "Maxime 34", 10, "Juliette 10", 10, "Cedric 14", 10, "Liam 25", 10, "Henri 24", 10, "Frédéric 74", 10, "Morgane 79", 10, "Mélissa 67", 10, "Jerome 71", 10, "Hervé 13", 10, "Gilles 75", 10, "Laurent 72", 10, "Liam 80", 10, "Josiane 30", 10, "Patricia 25", 10, "Jean-Pierre 45", 10, "Bruno 24", 10, "Antoine 68", 10, "Veronique 64", 10, "Pascale 24", 10, "Lionel 46", 10, "Tony 80", 10, "Marie 62", 10, "Serge 63", 10, "Frédéric 50", 10, "Lise 25", 10, "Clement 33", 10, "Caroline 62", 10, "Lionel 45", 10, "Cedric 65", 10, "Amandine 43", 10, "Raphael 35", 10, "Baptiste 15", 10, "Henri 27", 10, "Mireille 30", 10, "Pascale 74", 10, "Juliette 66", 10, "Julien 54", 10, "Clement 24", 10, "Timeo 17", 10, "Lucie 57", 10, "Nathalie 14", 10, "Valentin 14", 10, "Sandrine 70", 10, "Adrien 80", 10, "Blandine 73", 10, "Guillaume 16", 10, "Olivier 24", 10, "Arthur 43", 10, "Jérémie 12", 10, "Severine 31", 10, "Olivier 32", 10, "Laetitia 32", 10, "Mickael 67", 10, "Timeo 30", 10, "Géraldine 35", 10, "Marc 10", 10, "Claire 26", 10, "Sophie 65", 10, "Blandine 21", 10, "Christine 38", 10, "Christine 73", 10, "Sylvain 23", 10, "Danielle 35", 10, "Arnaud 38", 10, "Eric 32", 10, "Maxime 53", 10, "Blandine 73", 10, "Camille 68", 10, "Jean 11
", 0
section
.text
global
_start
...
...
@@ -413,8 +436,194 @@ l_recherche:
mov
edx
,
lent_recherche
; On affiche lent_recherche caractere
int
80h
; On execute l'appel Systeme
; TODO
mov
eax
,
v_personnes
; Charger la valeur de v_personnes dans eax
mov
[
v_i
],
eax
; Stocker la valeur de eax dans v_i (personne courante)
mov
edi
,
v_personnes
; Curseur pour le deplassement
cmp
byte
[
edi
],
0
; Si edi est deja a 0, il n'y a personne
je
l_finRechercheErreur
; Alors j'affiche une erreur
l_nextCharactere:
inc
edi
; On passe au caractere suivant
cmp
byte
[
edi
],
0
; Si edi est a 0, alors on a parcouru toute la liste
je
l_finRecherche
; On s'ocupe de l'affichage
cmp
byte
[
edi
],
10
; Si on passe a une nouvelle personne
je
l_new
; Je vais a l_new
cmp
byte
[
edi
],
'0'
; Si le caractere edi est plus petit que le caractere 0
jb
l_nextCharactere
; Alors je passe au caractere suivant
cmp
byte
[
edi
],
'9'
; Si le caractere edi est plus grand que le caractere 9
ja
l_nextCharactere
; Alors je passe au caractere suivant
mov
eax
,
0
; Accumulateur d'age
mov
ebx
,
0
l_lireNombre:
cmp
byte
[
edi
],
'0'
; Si le caractere edi est plus petit que le caractere 0
jb
fin_lireNombre
; Si oui, on sort (car ce n'est pas un chiffre)
cmp
byte
[
edi
],
'9'
; Si le caractere edi est plus grand que le caractere 9
ja
fin_lireNombre
; Si oui, on sort (car ce n'est pas un chiffre)
mov
bl
,
[
edi
]
; Mets la lettre de edi dans dl
sub
ebx
,
'0'
; Convertit le caractère ASCII en valeur numérique
imul
eax
,
10
; Multiplie par 10 pour ajouter le nouveau chiffre
jo
too_big
; Vérifie un éventuel débordement (overflow)
add
eax
,
ebx
; Ajoute la valeur du nouveau chiffre
jo
too_big
; Vérifie un éventuel débordement (overflow)
inc
edi
; On passe au caractere suivant
jmp
l_lireNombre
; On boucle sur la lecture de l'age
;/*********** Comparer l'age **************/
fin_lireNombre:
dec
edi
cmp
eax
,
[
v_age
]
jb
l_MAJjeune
l_suiteFLN:
cmp
eax
,
[
v_age2
]
ja
l_MAJvieux
jmp
l_nextCharactere
l_MAJjeune:
mov
[
v_age
],
eax
mov
ebx
,
[
v_i
]
mov
[
v_addr
],
ebx
jmp
l_suiteFLN
l_MAJvieux:
mov
[
v_age2
],
eax
mov
ebx
,
[
v_i
]
mov
[
v_addr2
],
ebx
jmp
l_nextCharactere
;/************** Nouvelle personne detecter ****************/
l_new:
inc
edi
; Je vais au prochain caractere
mov
[
v_i
],
edi
; Je l'enregistre comme etant la personne courante
dec
edi
; Je reviens au caractere actuele
jmp
l_nextCharactere
; Je continu ma boucle
l_finRechercheErreur:
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
er
; On affiche le contenu a partir du pointeur er
mov
edx
,
len_er
; On affiche len_er caractere
int
80h
; On execute l'appel Systeme
jmp
l_menu
; lorsque on a terminer on raffiche le menu
l_finRecherche:
mov
eax
,
1
mov
ebx
,
v_personnes
cmp
[
v_addr
],
ebx
je
l_affichageJ
mov
edi
,
v_personnes
l_rechNumJeune:
inc
edi
; On traite le caractere suivant
mov
ebx
,
[
v_addr
]
cmp
edi
,
ebx
; Si edi est a 0, alors on a parcouru toute la liste
je
l_affichageJ
; Je vais a l_affichageJ
cmp
byte
[
edi
],
10
; Si on passe a une nouvelle personne
je
l_inc
; Je vais a l_inc
jmp
l_rechNumJeune
; On boucle
l_inc:
inc
eax
jmp
l_rechNumJeune
l_affichageJ:
mov
[
v_i
],
eax
call
EcrireNombre
; Appel la fonction pour ecrire le numero de la personne
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
t_espace
; On affiche le retour a la ligne
mov
edx
,
1
; On affiche 1 caractere
int
80h
; Execute l'appel systeme
;/************ On affiche le nom et l'age de la personne **************/
mov
edi
,
[
v_addr
]
; Met edi a la valeur de v_add
l_boucleJ:
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
edi
; On affiche le caractere en cours
mov
edx
,
1
; On affiche 1 caractere
int
80h
; Execute l'appel systeme
inc
edi
; On incremente edi
cmp
byte
[
edi
],
10
; Si edi contient le caractere de nouvelle personne
je
l_suite
; On quit la boucle
cmp
byte
[
edi
],
0
; Si edi contient le caractere de fin de chaine
je
l_suite
; On quit la boucle
jmp
l_boucleJ
; On boucle tant que le nom n'est pas fini
l_suite:
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
t_newline
; On affiche le retour a la ligne
mov
edx
,
1
; On affiche 1 caractere
int
80h
; Execute l'appel systeme
mov
eax
,
1
mov
ebx
,
v_personnes
cmp
[
v_addr2
],
ebx
je
l_affichageV
mov
edi
,
v_personnes
l_rechNumVieux:
inc
edi
; On traite le caractere suivant
mov
ebx
,
[
v_addr2
]
cmp
edi
,
ebx
; Si edi est a 0, alors on a parcouru toute la liste
je
l_affichageV
; Je vais a l_affichageJ
cmp
byte
[
edi
],
10
; Si on passe a une nouvelle personne
je
l_incVieux
; Je vais a l_inc
jmp
l_rechNumVieux
; On boucle
l_incVieux:
inc
eax
jmp
l_rechNumVieux
l_affichageV:
mov
[
v_i
],
eax
call
EcrireNombre
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
t_espace
; On affiche le retour a la ligne
mov
edx
,
1
; On affiche 1 caractere
int
80h
; Execute l'appel systeme
mov
edi
,
[
v_addr2
]
; Met edi a la valeur de v_addr2
;/************ On affiche le nom et l'age de la personne **************/
l_boucleV:
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
edi
; On affiche le contenu a partir du pointeur er
mov
edx
,
1
; On affiche 1 caractere
int
80h
; Execute l'appel systeme
inc
edi
; On incremente edi
cmp
byte
[
edi
],
10
; Si edi contient le caractere de nouvelle personne
je
l_suiteFin
; On quit la boucle
cmp
byte
[
edi
],
0
; Si edi contient le caractere de fin de chaine
je
l_suiteFin
; On quit la boucle
jmp
l_boucleV
; On boucle tant que le nom n'est pas fini
l_suiteFin:
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
t_newline
; On affiche le contenu a partir du pointeur er
mov
edx
,
1
; On affiche 1 caractere
int
80h
; Execute l'appel systeme
jmp
l_menu
; lorsque on a terminer on raffiche le menu
...
...
@@ -451,67 +660,81 @@ l_exit:
lireNombre:
push
0
push
0
; On initialise l'accumulateur avec 0.
lire:
mov
eax
,
3
mov
ebx
,
0
mov
ecx
,
v_i
mov
edx
,
1
int
80h
cmp
byte
[
v_i
],
'0'
jb
fin_lire
cmp
byte
[
v_i
],
'9'
ja
fin_lire
sub
byte
[
v_i
],
'0'
pop
eax
imul
eax
,
10
jo
too_big
add
eax
,
[
v_i
]
jo
too_big
push
eax
jmp
lire
;/************ Lire un chiffre ************/
mov
eax
,
3
; Appel systeme write
mov
ebx
,
0
; Sur le fichier 0
mov
ecx
,
v_i
; on enregistre dans v_i
mov
edx
,
1
; On enregistre 1 caractere
int
80h
; On execute l'appel Systeme
;/************ Verification que se soit un chiffre ************/
cmp
byte
[
v_i
],
'0'
; On compare le caractere lu avec le caractere 0
jb
fin_lire
; Si plus petit que 0 on pars (ce n'est pas un nombre)
cmp
byte
[
v_i
],
'9'
; On compare le caractere lu avec le caractere 9
ja
fin_lire
; Si plus grand que 9 on pars (ce n'est pas un nombre)
sub
byte
[
v_i
],
'0'
; Convertit le caractère ASCII en valeur numérique
;/************ On décale les chiffres vers la gauche (en multipliant par 10) pour ajouter la nouvelle valeur. ************/
pop
eax
; Récupère le nombre déjà lu (dépilé)
imul
eax
,
10
; Multiplie par 10 pour ajouter le nouveau chiffre
jo
too_big
; Vérifie un éventuel débordement (overflow)
;/************* Ajoute le chiffre courant au nombre accumulé. **************/
add
eax
,
[
v_i
]
; Ajoute la valeur du nouveau chiffre
jo
too_big
; Vérifie encore une fois le débordement
;/************* Boucle pour le caractère suivant. **************/
push
eax
; Empile le nombre mis à jour
jmp
lire
; Continuer la lecture
fin_lire:
pop
eax
mov
[
v_tampon
],
al
ret
pop
eax
; Récupère le nombre accumulé
mov
[
v_tampon
],
al
; Stocke la valeur dans `v_tampon`
ret
; Retour (Fin de la fonction)
EcrireNombre:
mov
al
,
[
v_i
]
push
-
1
cmp
eax
,
9
jbe
afficher
mov
al
,
[
v_i
]
; Charge le nombre à afficher depuis `v_i`
push
-
1
; Marqueur de fin de pile
cmp
eax
,
9
; Si le nombre plus petit que 10, il peut être affiché directement
jbe
afficher
; Saut pour l'affichage
division:
mov
edx
,
0
mov
ecx
,
10
idiv
ecx
push
edx
cmp
eax
,
9
jbe
afficher
jmp
di
vision
mov
edx
,
0
; Remet `edx` à 0 pour le reste de la division
mov
ecx
,
10
; Divise par 10
idiv
ecx
; Divise eax par ecx
push
edx
; Stocke le dernier chiffre pour affichage
cmp
eax
,
9
; Vérifie si le quotient est encore à diviser
jbe
afficher
; Si le nombre plus petit que 10, il peut être affiché directement
jmp
di
vision
; Sinon on continue a divisé
afficher:
mov
[
v_tampon
],
al
add
byte
[
v_tampon
],
'0'
mov
eax
,
4
mov
ebx
,
1
mov
ecx
,
v_tampon
mov
edx
,
1
int
80h
pop
eax
cmp
eax
,
-
1
jne
afficher
ret
mov
[
v_tampon
],
al
; Stocke le chiffre dans `v_tampon`
add
byte
[
v_tampon
],
'0'
; Convertit en ASCII
;/************ Affichage du 1er chiffre dans la pile ************/
mov
eax
,
4
; Appel systeme write
mov
ebx
,
1
; Sur la sortie standart
mov
ecx
,
v_tampon
; On affiche le contenu a partir du pointeur v_tampon
mov
edx
,
1
; On affiche 1 caractere
int
80h
; On execute l'appel Systeme
pop
eax
; Récupère le prochain chiffre
cmp
eax
,
-
1
; Vérifie si on a atteint la fin de la pile
jne
afficher
; Si non, continue l'affichage
ret
; Fin de la fonction
too_big:
mov
eax
,
4
mov
ebx
,
2
mov
ecx
,
er
mov
edx
,
len_er
int
80h
;/************ Affichage de l'erreur ************/
mov
eax
,
4
; Appel systeme write
mov
ebx
,
2
; Sur la sortie standart
mov
ecx
,
er
; On affiche le contenu a partir du pointeur er
mov
edx
,
len_er
; On affiche len_er caractere
int
80h
; On execute l'appel Systeme
mov
eax
,
1
mov
ebx
,
0
int
80h
mov
eax
,
1
; Appel systeme exit
mov
ebx
,
0
; Code de retour 0 (succes, je ne connais pas les autres)
int
80h
; On execute l'appel Systeme
This diff is collapsed.
Click to expand it.