Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • master
1 result

Target

Select target project
No results found
Select Git revision
  • master
1 result
Show changes

Commits on Source 2

7 files
+ 295
0
Compare changes
  • Side-by-side
  • Inline

Files

+188 −0
Original line number Diff line number Diff line
section .data

;/***************************************************************************************************************************/
;/************************************************* Different Texte Utiliser ************************************************/
;/***************************************************************************************************************************/

; Texte pour le menu
t_menu: db "1 Enregistrer du personnel", 10, "2 Lister des personnes enregistrées", 10, "3 Supprimer une personne spécifique", 10, "4 Afficher la personne la plus âgée, et la personne la plus jeune.", 10, "5 Afficher lge moyen de toutes les personnes enregistrées", 10, "6 Quitter le programme", 10
lent_menu: equ $ - t_menu

; Texte pour l'enregistrement
t_enregistrement: db "Enregistrement des personnes:", 10
lent_enregistrement: equ $ - t_enregistrement

; Texte pour le listing
t_lister: db "Liste des personnes:", 10
lent_lister: equ $ - t_lister

; Texte pour la suppresion
t_supprimer: db "Suppression la personne", 10
lent_supprimer: equ $ - t_supprimer

t_supprimerValid1: db "Personne "
lent_supprimerValid1: equ $ - t_supprimerValid1

t_supprimerValid2: db " a ete supprimée !", 10
lent_supprimerValid2: equ $ - t_supprimerValid2

t_supprimerErreur: db "Cette personne n'existe pas !", 10
lent_supprimerErreur: equ $ - t_supprimerErreur

; Texte pour la recherche
t_recherche: db "Plus âgée et plus jeune:", 10
lent_recherche: equ $ - t_recherche

; Texte pour la moyenne
t_moyenne: db "Age en moyenne:", 10
lent_moyenne: equ $ - t_moyenne

t_po: db "("
lent_po: equ $ - t_po

t_pf: db ")"
lent_pf: equ $ - t_pf

;/***************************************************************************************************************************/
;/*********************************************** Differente Variable Utiliser **********************************************/
;/***************************************************************************************************************************/

; Variable pour le choix de l'operation a effectuer
v_choix: db "12"
lenv_choix: equ $ - v_choix




section .text
global _start

_start:

;/***************************************************************************************************************************/
;/***************************************************** Gestion du menu *****************************************************/
;/***************************************************************************************************************************/
l_menu:

;/************ Affichage du menu ************/
mov eax, 4                      ; Appel systeme write
mov ebx, 1                      ; Sur la sortie standart
mov ecx, t_menu                 ; On affiche le contenu a partir du pointeur t_menu
mov edx, lent_menu              ; On affiche lent_menu variable
int 80h                         ; On execute l'appel Systeme

;/************ Choix de l'action a effectuer ************/
mov eax, 3                      ; Appel systeme read
mov ebx, 1                      ; Sur la sortie standart
mov ecx, v_choix                ; On enregistre a partir du pointeur v_choix
mov edx, 2                      ; On enregistre les 2 premiers caractere (le chiffre + entrer)
int 80h                         ; On execute l'appel Systeme

;/************ Redirection dans le programme ************/
cmp byte [v_choix], '1'         ; Si le choix est 1 (Enregistrer une personne)
je l_enregistrement             ; Je vais vers le label l_enregistrement
cmp byte [v_choix], '2'         ; Si le choix est 2 (Lister les personnes)
je l_lister                     ; Je vais vers le label l_lister
cmp byte [v_choix], '3'         ; Si le choix est 3 (Supprimer une personne)
je l_supprimer                  ; Je vais vers le label l_supprimer
cmp byte [v_choix], '4'         ; Si le choix est 4 (rechercher la personne la plus agée et la plus jeune)
je l_recherche                  ; Je vais vers le label l_recherche
cmp byte [v_choix], '5'         ; Si le choix est 5 (Calculer la moyenne d'age)
je l_moyenne                    ; Je vais vers le label l_moyenne
cmp byte [v_choix], '6'         ; Si le choix est 6 (Quitter le programme)
je l_exit                       ; Je vais vers le label l_exit

jmp l_menu                      ; Sinon je reaffiche le menu (l_menu)

;/***************************************************************************************************************************/
;/************************************************** Choix 1 Enregistrement *************************************************/
;/***************************************************************************************************************************/
l_enregistrement:

;/************ Affichage du message d'enregistrement ************/
mov eax, 4                      ; Appel systeme write
mov ebx, 1                      ; Sur la sortie standart
mov ecx, t_enregistrement       ; On affiche le contenu a partir du pointeur t_enregistrement
mov edx, lent_enregistrement    ; On affiche lent_enregistrement variable
int 80h                         ; On execute l'appel Systeme

; TODO

jmp l_menu                      ; lorsque on a terminer on raffiche le menu

;/***************************************************************************************************************************/
;/****************************************************** Choix 2 Lister *****************************************************/
;/***************************************************************************************************************************/
l_lister:

;/************ Affichage du message pour le listing ************/
mov eax, 4                      ; Appel systeme write
mov ebx, 1                      ; Sur la sortie standart
mov ecx, t_lister               ; On affiche le contenu a partir du pointeur t_lister
mov edx, lent_lister            ; On affiche lent_lister variable
int 80h                         ; On execute l'appel Systeme

; TODO

jmp l_menu                      ; lorsque on a terminer on raffiche le menu

;/***************************************************************************************************************************/
;/***************************************************** Choix 3 Supprimer ***************************************************/
;/***************************************************************************************************************************/
l_supprimer:

;/************ Affichage du message pour la suppression ************/
mov eax, 4                      ; Appel systeme write
mov ebx, 1                      ; Sur la sortie standart
mov ecx, t_supprimer            ; On affiche le contenu a partir du pointeur t_supprimer
mov edx, lent_supprimer         ; On affiche lent_supprimer variable
int 80h                         ; On execute l'appel Systeme

; TODO

jmp l_lister                      ; lorsque on a terminer on affiche la lister des personnes mise a jours
jmp l_menu                        ; Si il y a une erreur on reafiche le menu


;/***************************************************************************************************************************/
;/***************************************************** Choix 4 Recherche ***************************************************/
;/***************************************************************************************************************************/
l_recherche:

;/************ Affichage du message pour la recherche du plus âgée et du plus jeune ************/
mov eax, 4                      ; Appel systeme write
mov ebx, 1                      ; Sur la sortie standart
mov ecx, t_recherche            ; On affiche le contenu a partir du pointeur t_recherche
mov edx, lent_recherche         ; On affiche lent_recherche variable
int 80h                         ; On execute l'appel Systeme

; TODO

jmp l_menu                      ; lorsque on a terminer on raffiche le menu


;/***************************************************************************************************************************/
;/****************************************************** Choix 5 Moyenne ****************************************************/
;/***************************************************************************************************************************/
l_moyenne:

;/************ Affichage du message pour la moyenne ************/
mov eax, 4                      ; Appel systeme write
mov ebx, 1                      ; Sur la sortie standart
mov ecx, t_moyenne              ; On affiche le contenu a partir du pointeur t_moyenne
mov edx, lent_moyenne           ; On affiche lent_moyenne variable
int 80h                         ; On execute l'appel Systeme

; TODO

jmp l_menu                      ; lorsque on a terminer on raffiche le menu

;/***************************************************************************************************************************/
;/*********************************************** Choix 6 Quitter le programme **********************************************/
;/***************************************************************************************************************************/
l_exit:

;/************ Arret du programme ************/
mov eax, 1                      ; Appel systeme exit
mov ebx, 0                      ; Code de retour 0 (succes)
int 80h                         ; On execute l'appel Systeme

TP2-gdb/fibo.c

0 → 100644
+17 −0
Original line number Diff line number Diff line
#include <stdio.h>
#include <stdlib.h>

int fibo(int n){
    if(n==0||n==1){
        return 1;
    }
    return fibo(n-1)+fibo(n-2);
}

int main(){
  int n;
  printf("Enter a number: ");
  scanf("%d", &n);
  printf("The fibonacci sequence is: %d\n", fibo(n));
  return 0;
}
 No newline at end of file

TP2-gdb/hello-line.c

0 → 100644
+22 −0
Original line number Diff line number Diff line
#include <stdio.h>
int main(void) {      // list 7
    printf("Hello World\n"); // list 8

    int x;

    printf("Enter x: "); // list 12
    scanf("%d", &x);

    for(int i = 0; i < x; i++) {
        printf("#"); // list 16
    }

    printf("\n"); //list 19
    return 0;
}

// Le debuger confirme que l'on est sortie correctement
    //[Inferior 1 (process 2011) exited normally]


// Tant qu'il n'y a pas eut de retour a la ligne il n'affiche pas les # (effet du buffer)
 No newline at end of file

TP3-asm/Hithere.asm

0 → 100644
+21 −0
Original line number Diff line number Diff line
 section .data
 message : db 'Bonjour chez vous ! ' ,10
 longueur : equ $-message
 message2 : db 'Hi there ! ', 10
 longueur2 : equ $-message2
 section .text
 global _start
 _start :
 mov eax , 4        ; Numéro d'appel système pour `sys_write`
 mov ebx , 1        ; Descripteur de fichier 1 (stdout)
 mov ecx , message
 mov edx , longueur
 int 80h            ; Appel de l'interruption système (x86 pour 32 bit, syscall pour 64bit)
 mov eax , 4        ; Numéro d'appel système pour `sys_write`
 mov ebx , 1        ; Descripteur de fichier 1 (stdout)
 mov ecx , message2
 mov edx , longueur2
 int 80h            ; Appel de l'interruption système (x86 pour 32 bit, syscall pour 64bit)
 mov eax , 1        ; Numéro d'appel système pour `sys_exit`
 mov ebx , 0        ; Code de retour (0 = succès)
 int 80h            ; Appel de l'interruption système (x86 pour 32 bit, syscall pour 64bit)
 No newline at end of file

TP3-asm/bonjour.asm

0 → 100644
+14 −0
Original line number Diff line number Diff line
 section .data
 message : db 'Bonjour', 10, 'chez vous ! ' ,10
 longueur : equ $-message
 section .text
 global _start
 _start :
 mov eax , 4        ; Numéro d'appel système pour `sys_write`
 mov ebx , 1        ; Descripteur de fichier 1 (stdout)
 mov ecx , message
 mov edx , longueur
 int 80h            ; Appel de l'interruption système (x86 pour 32 bit, syscall pour 64bit)
 mov eax , 1        ; Numéro d'appel système pour `sys_exit`
 mov ebx , 0        ; Code de retour (0 = succès)
 int 80h            ; Appel de l'interruption système (x86 pour 32 bit, syscall pour 64bit)
 No newline at end of file

TP3-asm/je_pense.asm

0 → 100644
+14 −0
Original line number Diff line number Diff line
section .data
message : db 'Je pense donc je suis', 10
longueur : equ $ - message
section .text
global _start
_start :
mov eax , 4
mov ebx , 1
mov ecx , message
mov edx , longueur
int 80h
mov eax , 1
mov ebx , 0
int 80h
 No newline at end of file

TP3-asm/lecture.asm

0 → 100644
+19 −0
Original line number Diff line number Diff line
section .data
message : db 'J'
longueur : equ $ - message
section .text
global _start
_start :
mov eax , 3
mov ebx , 1
mov ecx , message
mov edx , longueur
int 80h
mov eax , 4
mov ebx , 1
mov ecx , message
mov edx , longueur
int 80h
mov eax , 1
mov ebx , 0
int 80h
 No newline at end of file