Systèmes de numération et arithmétique
Systèmes de numération et arithmétique
Introduction
Comme les applications arithmétiques se développent rapidement, il est primordial que nous
soyons informés des systèmes de numérations et des processus arithmétiques.
Les nombres jouent un rôle important dans les systèmes informatiques. Les nombres sont la
base et l’objet des opérations informatiques. La tâche principale des ordinateurs c’est le calcul
qui traite tout le temps les nombres.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
2
La connaissance des systèmes de numération est d’une grande importance car ils simplifient
énormément certaine notion tel que, l’algèbre de BOOLE, la conception des circuits logiques,
la représentation des nombres signés, le codage de l’information et la représentation des
données, etc.
• système décimal
• système binaire naturel
• système hexadécimal
• Les conversions entre ces 3 systèmes
Généralités :
Notion de Numérisation :
Numériser = c'est pour se présenter les choses, images, nombres, mots parlés, chiffres, par des
symboles.
Exemple : 10 chiffres= 10 doigts ; Image TV= 250 000 points image-pixels Lettres de
l’alphabet.
Pourquoi numériser ?
On vit dans un monde numérique - calculs scientifiques, transactions bancaires,
enregistrements numériques, bientôt, la télévision
• Les données numériques sont moins sensibles au bruit (pour l'acquisition, la transmission
et la mémorisation de données).
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
3
Des millions de transistors ou interruptions sur une puce silicium - changent des millions
des fois par seconde -consomment peu d'énergie - coût très faible.
(-algèbre de Boole permet de minimiser l'usage du hardware. 2 états: vrai - faux et 1-0)
N = B −1 (1.1)
La règle ci-dessus peut être utilisée pour convertir un nombre d’une base quelconque en un
nombre décimal.
1. Le système décimal :
Le système décimal utilise les chiffres de 0 à 9 et la base 10 pour représenter les nombres. On
utilise la relation :
i max
(1.3)
D = Pi10i
i
Exemple :
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
4
On utilise la relation :
i max
(1.4)
D = Pi 2i
i
1*27+1*26+0*25+0*24+1*23+0*22+1*21+0*20=128+64+8+2=20210
Le bit situé le plus à droite est le bit de poids faible, bit associé à (20) (L.S.B)
Le bit situé le plus à gauche est le bit de poids fort, bit associé à (27) (M.S.B)
Conversion décimal-binaire :
La conversion d’un nombre décimal en nombre binaire s’obtient par une division successive
du nombre par 2 jusqu’à ce que le résultat de la division soit 0.
La plage des valeurs possibles à représenter va de 0 à 2n-1, n étant le nombre de bits. Ainsi :
En binaire les nombres sont représentés sur 8 bits, 16bits, 32bits ou 64bits.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
5
3. Le système hexadécimal :
Avec l'apparition des processeurs 8, 16 et surtout 32 bits, la notation binaire est vite devenue
pénible car elle comporte un grand nombre de bits ce qui reste de causer des erreurs lors de
l’écriture. La notation hexadécimale n'est qu'une façon d'écrire les nombres binaires avec une
représentation plus compacte.
Le système hexadécimal utilise la base 16, dont il utilise les chiffres de 0 à 15.
Les chiffres du système hexadécimal sont les nombres de 0 à 9 plus les lettres de A à F dont la
signification est :
On utilise la relation :
i max
(1.5)
D = Pi16i
i
5*162+A*161+F*160=5*162+10*161+15*160=1280+160+15=145510
Ceci n’est que la conversion d’un nombre hexadécimal en un nombre décimal.
Conversion décimal-hexadécimal :
La conversion d’un nombre décimal en nombre hexadécimal s’obtient par une division
successive du nombre par 16 jusqu’à ce que le résultat de la division soit 0.
Donc 4010=2D16
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
6
Les principales opérations arithmétiques effectuées sur les nombres binaires sont :
1. L’addition (+)
2. La soustraction (-)
3. La multiplication ( x)
4. La division ( : )
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
7
1. L’addition :
Remarque :
3. La multiplication :
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
8
Exemple :
4. La division :
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
9
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
10
8 bits permettent de couvrir l'intervalle [-127, +127], 16 bits l'intervalle [-32767, +32767].
a. S'ils ont même signe on les additionne, le signe du résultat étant égal au signe des
opérandes;
b. S'ils ont un signe différent, on soustrait le plus petit du plus grand, le signe du résultat étant
celui du plus grand des opérandes.
Exemple : Effectuer les opérations : (-13) + (+25) ; (-9) + (-40) ; (-25) + (+13) sur 8bits.
On cherche les codes des valeurs puis on effectue l’opération en examinant les signes.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
11
2. Code complément à 1
Principe :
Ce système est utilisé pour représenter des nombres positifs ou négatifs. En supposant que
l'on dispose de n bits, les nombres positifs de 0 à 2n-1-1 sont représentés en code binaire
naturel :
x > 0 → code1(x) = x (1.6)
Les nombres négatifs de valeur absolue inférieure à 2n-1 sont représentés par :
Exemple :
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
12
Propriétés
La somme des codes d'un nombre et de son opposé donne un mot binaire dont tous les bits
sont à 1 :
Code1(x) + Code1 (-x) = 2n - 1 (1.8)
Voici un exemple :
Code1 (5) + Code1 (-5) = 0101 + 1010 = 1111
Pour obtenir le code d'un nombre négatif, il suffit de complémenter le code de sa valeur
absolue, c’est dire inverser tous les bits.
Addition
• L'addition de deux nombres positifs ne pose pas de problème car il suffit d'additionner
leurs codes : le code du résultat est la somme des codes des opérandes.
• Examinons les cas où les deux opérandes sont l’une positive et l’autre négative où les deux
sont négatives. Nous aurons donc 3 cas à examiner :
Le dernier terme de cette équation ne modifie que le (n+1)ième bit du résultat (en fait codé sur
n bits), ce qui permet d'écrire :
Le code de la somme de deux nombres de signe différent est obtenu en incrémentant la somme
des codes des deux opérandes.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
13
• Ces exemples montrent que dans certains cas le code de la somme obtenu par addition des
codes des opérandes, dans d'autres cas il faut y ajouter 1.
Comme le dernier terme de cette équation modifie uniquement le (n+1)ième bit du résultat,
nous pouvons à nouveau écrire :
Exemples : Effectuer ces opérations sur 8 bits : (-13) + (+25) ; (-9) + (-40), (-25) + (+13).
Avantages et inconvénients
a. Un additionneur ;
b. 2 multiplexeurs pour l’obtention de des valeurs absolues de A et B ;
c. Un comparateur pour comparer les valeurs absolues de A et B ;
d. Un circuit logique qui en fonction des signes Sa et Sb des opérandes A et B et du résultat
de comparaison permet de générer une fonction F égale à 0 ou 1 ce qui permet d’effectuer
l’une des opérations
• Code1(A+B)=Code1(A)+Code1(B) ou
• Code1(A+B)=Code1(A)+Code1(B)+1.
• Si F=0 Code1(A+B)=Code1(A)+Code1(B)
• Si F=1 Code1(A+B)=Code1(A)+Code1(B) +1
On peut en déduire que lorsqu’une addition en code complément à 1 génère une retenue COUT
il faut l’ajouter au résultat soit :
Cette relation simplifie énormément le circuit d’addition en code complément à 1 qui se réduit
à un simple additionneur comme l’illustre la figure 7.b.
(a) (b)
3. Code complément à 2
Principe
Les nombres positifs sont codés comme d'habitude. Les nombres négatifs sont représentés
par :
x < 0 --> code(x) = 2n - |x| (1.10)
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
15
On en déduit des propriétés du code complément à 1 que le code d'un négatif est simplement
obtenu en incrémentant le complémentaire de sa valeur absolue :
Cette représentation incrémente le code des négatifs, et par là même décale d'une unité vers la
droite la demi-droite des négatifs par rapport au code complément à 1.
Addition
L'addition de deux nombres positifs est classiquement effectuée en additionnant leurs codes.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
16
On vous laissera le soin d’examiner les deux autres combinaisons de signe pour x et y.
Toutefois, la conclusion est que quels que soient les signes et les valeurs absolues respectives
des deux nombres concernés, le code complément à 2 de la somme de deux nombres et obtenu
en additionnant les codes complément à deux des deux opérandes.
Considérons par exemple l'addition de deux nombres de n bits A et B, dont le résultat est R et
désignons par Asigne, Bsigne et Rsigne respectivement les bits de signe A, B et R. et designons
par CIN et COUT les retenues d’entrée et de sortie du dernier additionneur (celui qui produit le
bit du signe comme résultat).Faisons maintenant toutes les opérations susceptibles de se
produire sur les 2 nombres A et B comme l’illustre la figure 8.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
17
L’indicateur de dépassement (Overflow flag) peut être exprimé par l'équation logique :
On peut aussi exprimer le dépassement en fonction des retenue d’entrée CIN et de Sortie Cout.
Le dépassement se produit lorsque les retenues CIN et COUT sont de valeurs différentes de qui
se traduit par la relation suivant :
OV 2 = C IN ⊕ COUT (1.18)
Le circuit correspondant est une porte XOR dont les entrées sont les retenues d’entrée CIN et
de Sortie COUT comme l’illustre la figure 10.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
18
Figure ; Circuit de détection du bit de dépassement en fonction des retenues CIN et COUT.
• La retenue d’entrée CIN est obtenue lors de l’addition des bits 6 des 2 opérandes (C’est-à-
dire elle est le passage d’un ‘1’ du bit 6 au bit 7)
• La retenue de sortie COUT quant à elle est obtenue de l’addition des bits 7 des 2 opérandes
(C'est-à-dire elle est le passage d’un 1 du bit 7 au bit 8).
Ceci explique que tous les processeurs actuels utilisent ce code pour effectuer des calculs en
arithmétique signée, et disposent de fonctions spéciales pour l'implémenter (cf. indicateur de
dépassement).
a. La méthode consiste à explorer le nombre à partir du bit de faible poids jusqu’à ce qu’on
repère le premier bit égal à1.
Remarque :
L’opération est valable aussi bien pour trouver le nombre négatif connaissons le positif est
vice versa.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
19
Exemple 2 :
On repère le premier bit égale à 1 ensuite on prend le complément à 1 des bits de rang
supérieur ce qui donne 00001110. Ce nombre représente +13.
Donc 11110010 représente -13.
Extension du signe :
Pour les codes complément à 1 et complément à 2, si l'on veut passer un entier signé x d'un
format n bits vers un format n+k bits, en gardant la même valeur, il suffit de faire une
extension de signe: le bit de signe est répété sur les nouveaux k bits de poids fort comme
m’illustre la figure 10.
Exemple :
Soit le nombre 10010110 (sur 8bits). Son extension sur 16bits est : 1111111110010110.
Principe
Les humains ont la mauvaise habitude de vouloir calculer en base 10. La représentation
"décimal codé binaire" revient à coder directement, digit par digit, la représentation décimale
d'un nombre. Ainsi, chaque digit (0-9), est représenté sur 4 bits, et un octet permet de
représenter deux digits comme l’indique le tableau suivant.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
20
Opération Commentaires
0000 0001 (01)
01+08 + 0000 1000 (08)
= 0000 1001 (09) Résultat correct
Ces exemples montrent que dans certains cas il faut ajouter un terme correctif (06 ou 60 ou 66
suivant les cas) au résultat de la somme des codes BCD pour obtenir le code BCD du résultat.
La nécessité d'effectuer une correction apparaît à peu près évidente dans le deuxième exemple
ci-dessus (01+08), puisque les 4 bits de poids faible correspondent à un terme supérieur à 9,
qui est le digit le plus grand autorisé en base 10. Cependant, la raison pour laquelle il faut
corriger est un peu moins évidente dans le dernier exemple (06+09). Cette fois-ci, la
correction découle de la retenue qui a été propagée depuis les 4 bits de poids faible vers les 4
bits de poids fort. Cette retenue est appelée retenue auxiliaire (auxilliary carry).
La correction doit être effectuée dans deux cas :
1. Représentation erronée du code du chiffre (1010, 1011, 1100, 1101, 1110, 1111)
2. Dans le cas d’une retenue auxiliaire (COUT=1)
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
21
La plupart des processeurs actuels possèdent un indicateur pour la retenue auxiliaire, et des
instructions pour gérer cette retenue dans le cadre d'opérations sur des nombres BCD. En
général, l'instruction DAA (Decimal Adjust for Addition) ajuste automatiquement le résultat
d'une addition en fonction de sa valeur et de la retenue auxiliaire, pour obtenir un résultat
codé BCD, en effectuant la correction (+06, 60 ou 66).
L'instruction ADD met la valeur de la somme de 88h et 33h, qui est 0BBh, dans le registre A.
Comme 0Bh > 9, l'instruction DAA ajoute le terme correctif 66h au contenu de A, d'où le
résultat : 0BBh + 66h = 121h
Après l'instruction DAA, le résultat 21h sera disponible dans le registre A et l'indicateur de
retenue sera à 1, pour indiquer le résultat décimal de la somme de 33 et 88 qui est 121.
Autres exemples :
a. (59+32) ;
b. (88+71) :
c. (59+88).
Opération Commentaires
0101 1001 (59)
59+32 + 0011 0010 (32)
= 1000 1011 8B Résultat faux : Mauvaise représentation du digit 1011
+ 0000 0110 (06) Terme correctif
= 1001 0001 (91) Résultat corrigé
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
22
Principe de fonctionnement :
• Si le résultat est faux alors le circuit de correction donne 1 en sortie ce qui permet de
fabriquer un 6 (0110) sur le second additionneur. Ce six (0110) est ajouté à la somme
erronée issue du premier additionneur et ainsi le résultat sera corrigé, soit : S=S+6
• Si le résultat est correct alors le circuit de correction donne 0 en sortie ce qui permet de
fabriquer un 0000 sur le second additionneur. Ce zéro (0000) est ajouter à la somme issue
du premier additionneur, soit : S=S+0
Opération Commentaires
08-03 0000 1000 (08)
- 0000 0011 (03)
= 0000 0101 (05) Résultat correcte.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
23
Comme après une addition, la nécessité d'une correction est à peu près évidente dans le
second exemple (22-7), mais l'est nettement moins dans l'exemple trois (51-9). Dans ce cas, la
correction est dûe à la retenue soustractive : il a fallu "emprunter" (borrow) un bit au digit de
poids fort, pour effectuer la soustraction des digits de poids faible.
De même que pour l'addition, certains processeurs possèdent une instruction qui effectue
automatiquement la correction nécessaire pour ajuster le résultat d'une soustraction de
nombres BCD.
L'instruction das (Decimal Adjust after Subtraction) soustrait le terme correctif 06h du
contenu résultat. Après l'instruction das, le résultat en code BCD sera coorect.
• L'instruction SUB met le résultat de l'opération 83h moins 38h, qui est 4Bh, dans le
registre A. Comme 0Bh > 9, l'instruction DAS (Decimal Adjust after Subtraction) soustrait
le terme correctif 06h du contenu de A, ce qui donne :
Principe de fonctionnement :
• Si le résultat est faux alors le circuit de correction donne 1 en sortie ce qui permet de
fabriquer un 6 (0110) sur le second soustracteur. Ce six (0110) est soustrait de du résultat
erronée issue du premier soustracteur et ainsi le résultat sera corrigé, soit : S=S - 6
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
24
• Si le résultat est correct alors le circuit de correction donne 0 en sortie ce qui permet de
fabriquer un 0000 sur le second v. Ce zéro (0000) est soustrait du résultat issu du premier
soustracteur ce qui ne modifie rien au résultat ; soit : S=S-0
Ainsi le nombre 1250 est représenté par 01258 soit 0000 0001 0010 0101 1001
Si l’on veut représenter -01259, il faut prendre le complément à 9 de chacun des chiffres ce
qui donne 01259 auquel il faut ajouter 1 soit :
-01259= 98741+1 =98742 soit 1001 1000 0111 0100 0010.
Exemples :
Addition et Soustraction :
La soustraction est traitée comme une addition. Il y a une seule relation de calcul :
Autrement dit on cherche les codes des 2 nombres en code BCD Etendu et on les additionne.
Remarque :
Exemples :
a. 245+135
b. 334 -212.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
25
Opération Commentaires
0010 0100 0101 (245)
(245)+(135) + 0001 0011 0101 (135)
= 0011 0111 1010 Résultat faux :
+ 0000 0000 0110 (000) Terme correctif
= 0011 1000 0000 (380)
Il comporte :
Principe de fonctionnement
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
26
5. Code hexadécimal
Pour représenter un nombre signé en hexadécimal on procède comme suit :
On cherche la valeur maximale que l'on peut exprimer dans ce format est : FF
La différence qui existe entre cette valeur maximale et 2A s'appelle le complément restreint
FF
- 2A
--------
D5
En binaire signé, un nombre est négatif si le chiffre binaire de gauche est 1, en hexadécimal,
un nombre est négatif si le chiffre hexadécimal de gauche est ≥ 8
Exemple : 8F est négatif 7B est positif 4FFF est positif A00B est négatif
Le passage du code hexadécimal au code complément à 2 et vice versa est très aisé.
Il suffit de représenter chaque digit par son équivalent binaire :
=
Exemple : la conversion de 2FC9h donne 0010 1111 1100 10012
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
27
a. En code binaire :
b. En code hexadécimal : 2E 10 06 20 80 32 00 20 76
On peut donc dire que le code hexadécimal et le code le code le plus compact. Il est très
utilisé dans l’écriture des programmes des microprocesseurs.
Un texte, ou chaîne de caractères, sera représenté comme une suite de caractères. Le codage
des caractères est fait par une table de correspondance indiquant la configuration binaire
représentant chaque caractère. Les codes les plus connus sont l’EBCDIC (en voie de
disparition) et le code ASCII (American Standard Code for Information Interchange).
Le code ASCII représente chaque caractère sur 7 bits (on parle parfois de code ASCII étendu,
utilisant 8 bits pour coder des caractères supplémentaires). Le tableau 1 ci-dessous donne le
code des caractères ASCII.
A chaque caractère est associée une configuration de 8 chiffres binaires (1 octet), le chiffre de
poids fort (le plus à gauche) étant toujours égal à zéro. La table indique aussi les valeurs en
base 10 (décimal) et 16 (hexadécimal) du nombre correspondant.
– Les codes compris entre 0 et 31 ne représentent pas des caractères, ils ne sont pas
affichables. Ces codes, souvent nommés caractères de contrôles sont utilisés pour indiquer
des actions comme passer à la ligne (CR, LF), émettre un bip sonore (BEL), etc.
– Les lettres se suivent dans l’ordre alphabétique (codes 65 à 90 pour les majuscules, 97 à
122 pour les minuscules), ce qui simplifie les comparaisons.
– On passe des majuscules aux minuscules en modifiant le 5ième bit, ce qui revient à ajouter
32 au code ASCII décimal.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
28
– Les chiffres sont rangés dans l’ordre croissant (codes 48 à 57), et les 4 bits de poids faibles
définissent la valeur en binaire du chiffre.
Remarque :
Pour coder ou décoder une information, il faut utiliser la table du code ASCII donnée ci-
dessous.
HEX MSD 0 1 2 3 4 5 6 7
LSD BITS 000 001 010 011 100 101 110 111
8 1000 BS CAN ( 8 H X h x
9 1001 HT EM ) 9 I Y i y
A 1010 LF SUB * : J Z j z
B 1011 VT ESC + ; K [ k {
C 1100 FF FS , < L \ l _
D 1101 CR GS - = M ] m }
E 1110 SO RS . > N ^ n ~
F 1111 SI US / ? O ← o DEL
Tableau 1 : Code ASCII
E N P O r a n
ENP Oran = 45 4E 50 20 4F 72 61 6E
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
29
46 49 4E
F I N = FIN
Les codes qui seront utilisés intensivement dans la suite des cours, pour leurs propriétés
intéressantes sont :
• Le code complément à 2
• Le code hexadécimal
• Le code ASCII.
La notion de bit :
Dans le domaine de l’informatique, la notion de bit n’est pas toujours le ‘0’ et le ‘1’ mais peut
avoir diverses signification selon la technologie utilisée. Le tableau ci-dessous définit la
notion de bit et la signification de niveau haut et de niveau bas selon la technologie utilisée.
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025
30
Résumé du cours :
1. Dans le code de la valeur absolue le bit de poids fort représente le signe. L’addition se fait
en examinant les signes des opérandes.
code2(x+y)=code2(x)+code2(y)
4. Dans le code BCD chaque digit s’exprime par 4bit (0 à 9). Lors d’une addition si le résultat
est erroné (Retenue auxiliaire ou représentation du digit fausse), on ajoute 06, 60 ou 66. ou
on retranche les mêmes quantités pour une soustraction.
6. Dans le code ASCII chaque symbole est représenté par un code (Utiliser le table ASCII).
ENP ORAN - Département de Génie Electrique –Module : Microprocesseurs – Notes de cours - Ahmed ZEBBACHE – Année 2024-2025