Vous êtes sur la page 1sur 62

Architecture Matérielle (Assembleur)

Production des programmes

 Chaine de production des programmes:


• C’est le processus qui permet à un être humain de soumettre la résolution d’un problème à un
ordinateur.
• Ceci est accompli sous forme d’un programme écrit dans un langage de programmation dit
langage de haut niveau, qui code une solution appelée algorithme.
• Comme l’ordinateur ne peut exécuter que des instructions codées en langage machine, il est
nécessaire de traduire ce langage de haut niveau vers le langage machine de l’ordinateur :
c’est le rôle de la chaîne de production de programmes.
• Rôle unique d’un ordinateur: archiver des données et exécuter un programme de traitement
sur ces données en vue de résoudre un problème (L’ordinateur est puissant et rapide, mais il
n’a aucune intelligence/imagination).
• La programmation est l’activité qui consiste à traduire, via un programme, un algorithme
dans un langage assimilable par l’ordinateur.
Production des programmes

 Chaine de production des programmes:


• C’est le processus qui permet à un être humain de soumettre la résolution d’un problème à un
ordinateur.
• Ceci est accompli sous forme d’un programme écrit dans un langage de programmation dit
langage de haut niveau, qui code une solution appelée algorithme.
• Comme l’ordinateur ne peut exécuter que des instructions codées en langage machine, il est
nécessaire de traduire ce langage de haut niveau vers le langage machine de l’ordinateur :
c’est le rôle de la chaîne de production de programmes.
• Rôle unique d’un ordinateur: archiver des données et exécuter un programme de traitement
sur ces données en vue de résoudre un problème (L’ordinateur est puissant et rapide, mais il
n’a aucune intelligence/imagination).
• La programmation est l’activité qui consiste à traduire, via un programme, un algorithme
dans un langage assimilable par l’ordinateur.
Production des programmes

 Chaine de production des programmes:


• C’est le processus qui permet à un être humain de soumettre la résolution d’un problème à un
ordinateur.
• Ceci est accompli sous forme d’un programme écrit dans un langage de programmation dit
langage de haut niveau, qui code une solution appelée algorithme.
• Comme l’ordinateur ne peut exécuter que des instructions codées en langage machine, il est
nécessaire de traduire ce langage de haut niveau vers le langage machine de l’ordinateur :
c’est le rôle de la chaîne de production de programmes.
• Rôle unique d’un ordinateur: archiver des données et exécuter un programme de traitement
sur ces données en vue de résoudre un problème (L’ordinateur est puissant et rapide, mais il
n’a aucune intelligence/imagination).
• La programmation est l’activité qui consiste à traduire, via un programme, un algorithme
dans un langage assimilable par l’ordinateur.
Production des programmes

 Chaine de production des programmes:


• C’est le processus qui permet à un être humain de soumettre la résolution d’un problème à un
ordinateur.
• Ceci est accompli sous forme d’un programme écrit dans un langage de programmation dit
langage de haut niveau, qui code une solution appelée algorithme.
• Comme l’ordinateur ne peut exécuter que des instructions codées en langage machine, il est
nécessaire de traduire ce langage de haut niveau vers le langage machine de l’ordinateur :
c’est le rôle de la chaîne de production de programmes.
• Rôle unique d’un ordinateur: archiver des données et exécuter un programme de traitement
sur ces données en vue de résoudre un problème (L’ordinateur est puissant et rapide, mais il
n’a aucune intelligence/imagination).
• La programmation est l’activité qui consiste à traduire, via un programme, un algorithme
dans un langage assimilable par l’ordinateur.
Production des programmes

 Chaine de production des programmes:


• C’est le processus qui permet à un être humain de soumettre la résolution d’un problème à un
ordinateur.
• Ceci est accompli sous forme d’un programme écrit dans un langage de programmation dit
langage de haut niveau, qui code une solution appelée algorithme.
• Comme l’ordinateur ne peut exécuter que des instructions codées en langage machine, il est
nécessaire de traduire ce langage de haut niveau vers le langage machine de l’ordinateur :
c’est le rôle de la chaîne de production de programmes.
• Rôle unique d’un ordinateur: archiver des données et exécuter un programme de traitement
sur ces données en vue de résoudre un problème (L’ordinateur est puissant et rapide, mais il
n’a aucune intelligence/imagination).
• La programmation est l’activité qui consiste à traduire, via un programme, un algorithme
dans un langage assimilable par l’ordinateur.
Production des programmes

 Chaine de production des programmes:

• On distinguera trois niveaux:

1) La programmation de bas niveau en


langage machine;

2) La programmation de bas niveau en


langage d’assemblage;

3) La programmation de haut niveau à


l’aide d’un langage de haut niveau ou
langage évolué.
Production des programmes

 Chaine de production des programmes:

• On distinguera trois niveaux:

1) La programmation de bas niveau en


langage machine;

2) La programmation de bas niveau en


langage d’assemblage;

3) La programmation de haut niveau à


l’aide d’un langage de haut niveau ou
langage évolué.
Production des programmes

 Chaine de production des programmes:

• On distinguera trois niveaux:

1) La programmation de bas niveau en


langage machine;

2) La programmation de bas niveau en


langage d’assemblage;

3) La programmation de haut niveau à


l’aide d’un langage de haut niveau ou
langage évolué.
Production des programmes

 Chaine de production des programmes:

• On distinguera trois niveaux:

1) La programmation de bas niveau en


langage machine;

2) La programmation de bas niveau en


langage d’assemblage;

3) La programmation de haut niveau à


l’aide d’un langage de haut niveau ou
langage évolué.
Production des programmes

 Chaine de production des programmes:


(1) Langage machine:
• La donnée de base manipulée par la machine physique est le bit (0 ou 1) qui correspondent à
deux niveaux de voltage, admis par les composants électroniques (le processeur).
• Au niveau physique, toutes les informations (nombres, caractères, instructions, etc.) ne
peuvent être représentées que par une combinaison de 0 et 1 (une chaîne binaire).
• À ce niveau, la programmation est totalement dépendantes de l’architecture de la machine et
manipulent directement les registres du processeur, les adresses en mémoire physique, etc.
• Une instruction comporte: (a) le code opération: le type d’opération à effectuer; (2) les
opérandes, les données sur lesquelles l’opération doit être réalisée. Ces opérandes sont soit
des mots mémoires, des registres du processeur, des valeurs immédiates.
• Chaque instruction est repérée par une adresse, qui mémorise la position de l’instruction
dans le programme.
Production des programmes

 Chaine de production des programmes:


(1) Langage machine:
• La donnée de base manipulée par la machine physique est le bit (0 ou 1) qui correspondent à
deux niveaux de voltage, admis par les composants électroniques (le processeur).
• Au niveau physique, toutes les informations (nombres, caractères, instructions, etc.) ne
peuvent être représentées que par une combinaison de 0 et 1 (une chaîne binaire).
• À ce niveau, la programmation est totalement dépendantes de l’architecture de la machine et
manipulent directement les registres du processeur, les adresses en mémoire physique, etc.
• Une instruction comporte: (a) le code opération: le type d’opération à effectuer; (2) les
opérandes, les données sur lesquelles l’opération doit être réalisée. Ces opérandes sont soit
des mots mémoires, des registres du processeur, des valeurs immédiates.
• Chaque instruction est repérée par une adresse, qui mémorise la position de l’instruction
dans le programme.
Production des programmes

 Chaine de production des programmes:


(1) Langage machine:
• La donnée de base manipulée par la machine physique est le bit (0 ou 1) qui correspondent à
deux niveaux de voltage, admis par les composants électroniques (le processeur).
• Au niveau physique, toutes les informations (nombres, caractères, instructions, etc.) ne
peuvent être représentées que par une combinaison de 0 et 1 (une chaîne binaire).
• À ce niveau, la programmation est totalement dépendantes de l’architecture de la machine et
manipulent directement les registres du processeur, les adresses en mémoire physique, etc.
• Une instruction comporte: (a) le code opération: le type d’opération à effectuer; (2) les
opérandes, les données sur lesquelles l’opération doit être réalisée. Ces opérandes sont soit
des mots mémoires, des registres du processeur, des valeurs immédiates.
• Chaque instruction est repérée par une adresse, qui mémorise la position de l’instruction
dans le programme.
Production des programmes

 Chaine de production des programmes:


(1) Langage machine:
• La donnée de base manipulée par la machine physique est le bit (0 ou 1) qui correspondent à
deux niveaux de voltage, admis par les composants électroniques (le processeur).
• Au niveau physique, toutes les informations (nombres, caractères, instructions, etc.) ne
peuvent être représentées que par une combinaison de 0 et 1 (une chaîne binaire).
• À ce niveau, la programmation est totalement dépendantes de l’architecture de la machine et
manipulent directement les registres du processeur, les adresses en mémoire physique, etc.
• Une instruction comporte: (a) le code opération: le type d’opération à effectuer; (2) les
opérandes, les données sur lesquelles l’opération doit être réalisée. Ces opérandes sont soit
des mots mémoires, des registres du processeur, des valeurs immédiates.
• Chaque instruction est repérée par une adresse, qui mémorise la position de l’instruction
dans le programme.
Production des programmes

 Chaine de production des programmes:


(1) Langage machine:
• La donnée de base manipulée par la machine physique est le bit (0 ou 1) qui correspondent à
deux niveaux de voltage, admis par les composants électroniques (le processeur).
• Au niveau physique, toutes les informations (nombres, caractères, instructions, etc.) ne
peuvent être représentées que par une combinaison de 0 et 1 (une chaîne binaire).
• À ce niveau, la programmation est totalement dépendantes de l’architecture de la machine et
manipulent directement les registres du processeur, les adresses en mémoire physique, etc.
• Une instruction comporte: (a) le code opération: le type d’opération à effectuer; (2) les
opérandes, les données sur lesquelles l’opération doit être réalisée. Ces opérandes sont soit
des mots mémoires, des registres du processeur, des valeurs immédiates.
• Chaque instruction est repérée par une adresse, qui mémorise la position de l’instruction
dans le programme.
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• La programmation en langage machine est très fastidieux, voire impraticable par l’être
humain.
• Une première amélioration consiste à substituer aux chaînes binaires, des chaînes de
caractères plus aisément manipulables par l’être humain (les mnémoniques).
• Le langage d’assemblage constitue une variante symbolique du langage machine, permettant
au programmeur de manipuler les instructions de la machine, en s’affranchissant notamment
des codes binaires et des calculs d’adresse.
► A confirmer:
• Le langage d’assemblage comporte le même jeu d’instructions que le langage machine.
• Le langage d’assemblage est spécifique à la machine !!!!!!!!!!.
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• La programmation en langage machine est très fastidieux, voire impraticable par l’être
humain.
• Une première amélioration consiste à substituer aux chaînes binaires, des chaînes de
caractères plus aisément manipulables par l’être humain (les mnémoniques).
• Le langage d’assemblage constitue une variante symbolique du langage machine, permettant
au programmeur de manipuler les instructions de la machine, en s’affranchissant notamment
des codes binaires et des calculs d’adresse.
► A confirmer:
• Le langage d’assemblage comporte le même jeu d’instructions que le langage machine.
• Le langage d’assemblage est spécifique à la machine !!!!!!!!!!.
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• La programmation en langage machine est très fastidieux, voire impraticable par l’être
humain.
• Une première amélioration consiste à substituer aux chaînes binaires, des chaînes de
caractères plus aisément manipulables par l’être humain (les mnémoniques).
• Le langage d’assemblage constitue une variante symbolique du langage machine, permettant
au programmeur de manipuler les instructions de la machine, en s’affranchissant notamment
des codes binaires et des calculs d’adresse.
► A confirmer:
• Le langage d’assemblage comporte le même jeu d’instructions que le langage machine.
• Le langage d’assemblage est spécifique à la machine !!!!!!!!!!.
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• La programmation en langage machine est très fastidieux, voire impraticable par l’être
humain.
• Une première amélioration consiste à substituer aux chaînes binaires, des chaînes de
caractères plus aisément manipulables par l’être humain (les mnémoniques).
• Le langage d’assemblage constitue une variante symbolique du langage machine, permettant
au programmeur de manipuler les instructions de la machine, en s’affranchissant notamment
des codes binaires et des calculs d’adresse.
► A confirmer:
• Le langage d’assemblage comporte le même jeu d’instructions que le langage machine.
• Le langage d’assemblage est spécifique à la machine !!!!!!!!!!.
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• La programmation en langage machine est très fastidieux, voire impraticable par l’être
humain.
• Une première amélioration consiste à substituer aux chaînes binaires, des chaînes de
caractères plus aisément manipulables par l’être humain (les mnémoniques).
• Le langage d’assemblage constitue une variante symbolique du langage machine, permettant
au programmeur de manipuler les instructions de la machine, en s’affranchissant notamment
des codes binaires et des calculs d’adresse.
► A confirmer:
• Le langage d’assemblage comporte le même jeu d’instructions que le langage machine.
• Le langage d’assemblage est spécifique à la machine !!!!!!!!!!.
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• Une instruction du langage d’assemblage est composée de champs, séparés par un ou
plusieurs espaces. On identifie :
1. Étiquette (non obligatoire): correspond à l’adresse de l’instruction machine ;
2. Code opération: correspond à la chaîne binaire code opération de l’instruction machine
;
3. Code opérandes: qui correspondent aux registres, mots mémoires ou valeurs
immédiates apparaissant dans les instructions machine.
• La programmation en langage d’assemblage, bien qu’elle est plus aisée, est aussi fastidieuse
pour l’être humain et nécessite surtout de connaître l’architecture du processeur et de la
machine.
• La programmation en langage d’assemblage nécessite une étape de traduction vers les
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• Une instruction du langage d’assemblage est composée de champs, séparés par un ou
plusieurs espaces. On identifie :
1. Étiquette (non obligatoire): correspond à l’adresse de l’instruction machine ;
2. Code opération: correspond à la chaîne binaire code opération de l’instruction machine
;
3. Code opérandes: qui correspondent aux registres, mots mémoires ou valeurs
immédiates apparaissant dans les instructions machine.
• La programmation en langage d’assemblage, bien qu’elle est plus aisée, est aussi fastidieuse
pour l’être humain et nécessite surtout de connaître l’architecture du processeur et de la
machine.
• La programmation en langage d’assemblage nécessite une étape de traduction vers les
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• Une instruction du langage d’assemblage est composée de champs, séparés par un ou
plusieurs espaces. On identifie :
1. Étiquette (non obligatoire): correspond à l’adresse de l’instruction machine ;
2. Code opération: correspond à la chaîne binaire code opération de l’instruction machine
;
3. Code opérandes: qui correspondent aux registres, mots mémoires ou valeurs
immédiates apparaissant dans les instructions machine.
• La programmation en langage d’assemblage, bien qu’elle est plus aisée, est aussi fastidieuse
pour l’être humain et nécessite surtout de connaître l’architecture du processeur et de la
machine.
• La programmation en langage d’assemblage nécessite une étape de traduction vers les
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• Une instruction du langage d’assemblage est composée de champs, séparés par un ou
plusieurs espaces. On identifie :
1. Étiquette (non obligatoire): correspond à l’adresse de l’instruction machine ;
2. Code opération: correspond à la chaîne binaire code opération de l’instruction machine
;
3. Code opérandes: qui correspondent aux registres, mots mémoires ou valeurs
immédiates apparaissant dans les instructions machine.
• La programmation en langage d’assemblage, bien qu’elle est plus aisée, est aussi fastidieuse
pour l’être humain et nécessite surtout de connaître l’architecture du processeur et de la
machine.
• La programmation en langage d’assemblage nécessite une étape de traduction vers les
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• Une instruction du langage d’assemblage est composée de champs, séparés par un ou
plusieurs espaces. On identifie :
1. Étiquette (non obligatoire): correspond à l’adresse de l’instruction machine ;
2. Code opération: correspond à la chaîne binaire code opération de l’instruction machine
;
3. Code opérandes: qui correspondent aux registres, mots mémoires ou valeurs
immédiates apparaissant dans les instructions machine.
• La programmation en langage d’assemblage, bien qu’elle est plus aisée, est aussi fastidieuse
pour l’être humain et nécessite surtout de connaître l’architecture du processeur et de la
machine.
• La programmation en langage d’assemblage nécessite une étape de traduction vers les
Production des programmes

 Chaine de production des programmes:


(2) Langage d’assemblage:
• Une instruction du langage d’assemblage est composée de champs, séparés par un ou
plusieurs espaces. On identifie :
1. Étiquette (non obligatoire): correspond à l’adresse de l’instruction machine ;
2. Code opération: correspond à la chaîne binaire code opération de l’instruction machine
;
3. Code opérandes: qui correspondent aux registres, mots mémoires ou valeurs
immédiates apparaissant dans les instructions machine.
• La programmation en langage d’assemblage, bien qu’elle est plus aisée, est aussi fastidieuse
pour l’être humain et nécessite surtout de connaître l’architecture du processeur et de la
machine.
• La programmation en langage d’assemblage nécessite une étape de traduction vers les
Production des programmes

 Chaine de production des programmes:


(3) Langages de haut niveau (évolué):
• Ces langages se caractérisent principalement par le fait qu’ils sont totalement indépendants
de l’architecture de la machine et du processeur.
• Ils offrent un pouvoir d’expression plus riche et plus proche de la pensée humaine, rendant
ainsi
plus aisée la traduction des algorithmes établis pour résoudre un problème.
• Ces langages intègrent ainsi des structures opératoires semblables à celles des algorithmes
telles que les itérations, les boucles, les conditionnelles, etc.
• Le passage d’un programme, dit programme source, écrit en langage de haut niveau vers un
programme exécutable en langage machine est assuré par un processus comportant plusieurs
étapes dont l’une est la compilation.
• Question: quelle est la différence entre un compilateur et un traducteur ??? L’assembleur
est un compilateur ou traducteur?
Production des programmes

 Chaine de production des programmes:


(3) Langages de haut niveau (évolué):
• Ces langages se caractérisent principalement par le fait qu’ils sont totalement indépendants
de l’architecture de la machine et du processeur.
• Ils offrent un pouvoir d’expression plus riche et plus proche de la pensée humaine, rendant
ainsi
plus aisée la traduction des algorithmes établis pour résoudre un problème.
• Ces langages intègrent ainsi des structures opératoires semblables à celles des algorithmes
telles que les itérations, les boucles, les conditionnelles, etc.
• Le passage d’un programme, dit programme source, écrit en langage de haut niveau vers un
programme exécutable en langage machine est assuré par un processus comportant plusieurs
étapes dont l’une est la compilation.
• Question: quelle est la différence entre un compilateur et un traducteur ??? L’assembleur
est un compilateur ou traducteur?
Production des programmes

 Chaine de production des programmes:


(3) Langages de haut niveau (évolué):
• Ces langages se caractérisent principalement par le fait qu’ils sont totalement indépendants
de l’architecture de la machine et du processeur.
• Ils offrent un pouvoir d’expression plus riche et plus proche de la pensée humaine, rendant
ainsi
plus aisée la traduction des algorithmes établis pour résoudre un problème.
• Ces langages intègrent ainsi des structures opératoires semblables à celles des algorithmes
telles que les itérations, les boucles, les conditionnelles, etc.
• Le passage d’un programme, dit programme source, écrit en langage de haut niveau vers un
programme exécutable en langage machine est assuré par un processus comportant plusieurs
étapes dont l’une est la compilation.
• Question: quelle est la différence entre un compilateur et un traducteur ??? L’assembleur
est un compilateur ou traducteur?
Production des programmes

 Chaine de production des programmes:


(3) Langages de haut niveau (évolué):
• Ces langages se caractérisent principalement par le fait qu’ils sont totalement indépendants
de l’architecture de la machine et du processeur.
• Ils offrent un pouvoir d’expression plus riche et plus proche de la pensée humaine, rendant
ainsi
plus aisée la traduction des algorithmes établis pour résoudre un problème.
• Ces langages intègrent ainsi des structures opératoires semblables à celles des algorithmes
telles que les itérations, les boucles, les conditionnelles, etc.
• Le passage d’un programme, dit programme source, écrit en langage de haut niveau vers un
programme exécutable en langage machine est assuré par un processus comportant plusieurs
étapes dont l’une est la compilation.
• Question: quelle est la différence entre un compilateur et un traducteur ??? L’assembleur
est un compilateur ou traducteur?
Production des programmes

 Chaine de production des programmes:


(3) Langages de haut niveau (évolué):
• Ces langages se caractérisent principalement par le fait qu’ils sont totalement indépendants
de l’architecture de la machine et du processeur.
• Ils offrent un pouvoir d’expression plus riche et plus proche de la pensée humaine, rendant
ainsi
plus aisée la traduction des algorithmes établis pour résoudre un problème.
• Ces langages intègrent ainsi des structures opératoires semblables à celles des algorithmes
telles que les itérations, les boucles, les conditionnelles, etc.
• Le passage d’un programme, dit programme source, écrit en langage de haut niveau vers un
programme exécutable en langage machine est assuré par un processus comportant plusieurs
étapes dont l’une est la compilation.
• Question: quelle est la différence entre un compilateur et un traducteur ??? L’assembleur
est un compilateur ou traducteur?
Production des programmes

 Chaine de production des programmes:


• La compilation: permet la traduction du programme source en un programme objet, qui est
soit directement le langage machine, soit le langage d’assemblage.
• Le passage du langage d’assemblage au langage machine se fait par l’intermédiaire d’un
autre traducteur, l’assembleur.
• L’édition de liens: permet de combiner plusieurs programmes objet en un seul et de résoudre
des appels à des modules de librairie (Il résout les références externes).
• Le programme construit à l’issue de l’édition des liens comporte une allocation des
instructions commençant à 0.
• Le chargement: pour être exécuté, le programme doit être transféré depuis le disque (là où il
est stocké) vers la mémoire centrale : c’est le rôle du chargeur.
• Le programme est chargé en mémoire centrale à partir d’une adresse d’implantation. Toutes
les adresses du programme sont translatées de la valeur de l’adresse d’implantation.
Production des programmes

 Chaine de production des programmes:


• La compilation: permet la traduction du programme source en un programme objet, qui est
soit directement le langage machine, soit le langage d’assemblage.
• Le passage du langage d’assemblage au langage machine se fait par l’intermédiaire d’un
autre traducteur, l’assembleur.
• L’édition de liens: permet de combiner plusieurs programmes objet en un seul et de résoudre
des appels à des modules de librairie (Il résout les références externes).
• Le programme construit à l’issue de l’édition des liens comporte une allocation des
instructions commençant à 0.
• Le chargement: pour être exécuté, le programme doit être transféré depuis le disque (là où il
est stocké) vers la mémoire centrale : c’est le rôle du chargeur.
• Le programme est chargé en mémoire centrale à partir d’une adresse d’implantation. Toutes
les adresses du programme sont translatées de la valeur de l’adresse d’implantation.
Production des programmes

 Chaine de production des programmes:


• La compilation: permet la traduction du programme source en un programme objet, qui est
soit directement le langage machine, soit le langage d’assemblage.
• Le passage du langage d’assemblage au langage machine se fait par l’intermédiaire d’un
autre traducteur, l’assembleur.
• L’édition de liens: permet de combiner plusieurs programmes objet en un seul et de résoudre
des appels à des modules de librairie (Il résout les références externes).
• Le programme construit à l’issue de l’édition des liens comporte une allocation des
instructions commençant à 0.
• Le chargement: pour être exécuté, le programme doit être transféré depuis le disque (là où il
est stocké) vers la mémoire centrale : c’est le rôle du chargeur.
• Le programme est chargé en mémoire centrale à partir d’une adresse d’implantation. Toutes
les adresses du programme sont translatées de la valeur de l’adresse d’implantation.
Production des programmes

 Chaine de production des programmes:


• La compilation: permet la traduction du programme source en un programme objet, qui est
soit directement le langage machine, soit le langage d’assemblage.
• Le passage du langage d’assemblage au langage machine se fait par l’intermédiaire d’un
autre traducteur, l’assembleur.
• L’édition de liens: permet de combiner plusieurs programmes objet en un seul et de résoudre
des appels à des modules de librairie (Il résout les références externes).
• Le programme construit à l’issue de l’édition des liens comporte une allocation des
instructions commençant à 0.
• Le chargement: pour être exécuté, le programme doit être transféré depuis le disque (là où il
est stocké) vers la mémoire centrale : c’est le rôle du chargeur.
• Le programme est chargé en mémoire centrale à partir d’une adresse d’implantation. Toutes
les adresses du programme sont translatées de la valeur de l’adresse d’implantation.
Production des programmes

 Chaine de production des programmes:


• La compilation: permet la traduction du programme source en un programme objet, qui est
soit directement le langage machine, soit le langage d’assemblage.
• Le passage du langage d’assemblage au langage machine se fait par l’intermédiaire d’un
autre traducteur, l’assembleur.
• L’édition de liens: permet de combiner plusieurs programmes objet en un seul et de résoudre
des appels à des modules de librairie (Il résout les références externes).
• Le programme construit à l’issue de l’édition des liens comporte une allocation des
instructions commençant à 0.
• Le chargement: pour être exécuté, le programme doit être transféré depuis le disque (là où il
est stocké) vers la mémoire centrale : c’est le rôle du chargeur.
• Le programme est chargé en mémoire centrale à partir d’une adresse d’implantation. Toutes
les adresses du programme sont translatées de la valeur de l’adresse d’implantation.
Production des programmes

 Chaine de production des programmes:


• La compilation: permet la traduction du programme source en un programme objet, qui est
soit directement le langage machine, soit le langage d’assemblage.
• Le passage du langage d’assemblage au langage machine se fait par l’intermédiaire d’un
autre traducteur, l’assembleur.
• L’édition de liens: permet de combiner plusieurs programmes objet en un seul et de résoudre
des appels à des modules de librairie (Il résout les références externes).
• Le programme construit à l’issue de l’édition des liens comporte une allocation des
instructions commençant à 0.
• Le chargement: pour être exécuté, le programme doit être transféré depuis le disque (là où il
est stocké) vers la mémoire centrale : c’est le rôle du chargeur.
• Le programme est chargé en mémoire centrale à partir d’une adresse d’implantation. Toutes
les adresses du programme sont translatées de la valeur de l’adresse d’implantation.
Langage machine/Assembleur

 Les différents types d’instructions:


1. Les instructions arithmétiques (+, -, x, etc.) & logiques (ou, et, etc.).
2. Les instructions de transfert de données: transférer une donnée depuis les registres du
processeur vers la mémoire centrale et vice versa ainsi qu’entre registres du processeur.
3. Les instructions d’entrées-sorties: lire une donnée depuis un périphérique (le clavier) ou
d’écrire une donnée vers un périphérique (l’imprimante).
4. Les instructions de rupture de séquence d’exécution (saut ou branchement): rompre
l’exécution séquentielle des instructions d’un programme.
5. Les instructions d’appels de sous-programmes: modifier la valeur courante du compteur
ordinal pour aller exécuter une suite d’instructions machine constituant une fonction, puis
de revenir exécuter les instructions machine situées juste après l’appel;
6. Les instructions particulières: permettant par exemple d’arrêter le processeur, de masquer
ou démasquer les interruptions, etc.
Langage machine/Assembleur

 Les différents types d’instructions:


1. Les instructions arithmétiques (+, -, x, etc.) & logiques (ou, et, etc.).
2. Les instructions de transfert de données: transférer une donnée depuis les registres du
processeur vers la mémoire centrale et vice versa ainsi qu’entre registres du processeur.
3. Les instructions d’entrées-sorties: lire une donnée depuis un périphérique (le clavier) ou
d’écrire une donnée vers un périphérique (l’imprimante).
4. Les instructions de rupture de séquence d’exécution (saut ou branchement): rompre
l’exécution séquentielle des instructions d’un programme.
5. Les instructions d’appels de sous-programmes: modifier la valeur courante du compteur
ordinal pour aller exécuter une suite d’instructions machine constituant une fonction, puis
de revenir exécuter les instructions machine situées juste après l’appel;
6. Les instructions particulières: permettant par exemple d’arrêter le processeur, de masquer
ou démasquer les interruptions, etc.
Langage machine/Assembleur

 Les différents types d’instructions:


1. Les instructions arithmétiques (+, -, x, etc.) & logiques (ou, et, etc.).
2. Les instructions de transfert de données: transférer une donnée depuis les registres du
processeur vers la mémoire centrale et vice versa ainsi qu’entre registres du processeur.
3. Les instructions d’entrées-sorties: lire une donnée depuis un périphérique (le clavier) ou
d’écrire une donnée vers un périphérique (l’imprimante).
4. Les instructions de rupture de séquence d’exécution (saut ou branchement): rompre
l’exécution séquentielle des instructions d’un programme.
5. Les instructions d’appels de sous-programmes: modifier la valeur courante du compteur
ordinal pour aller exécuter une suite d’instructions machine constituant une fonction, puis
de revenir exécuter les instructions machine situées juste après l’appel;
6. Les instructions particulières: permettant par exemple d’arrêter le processeur, de masquer
ou démasquer les interruptions, etc.
Langage machine/Assembleur

 Les différents types d’instructions:


1. Les instructions arithmétiques (+, -, x, etc.) & logiques (ou, et, etc.).
2. Les instructions de transfert de données: transférer une donnée depuis les registres du
processeur vers la mémoire centrale et vice versa ainsi qu’entre registres du processeur.
3. Les instructions d’entrées-sorties: lire une donnée depuis un périphérique (le clavier) ou
d’écrire une donnée vers un périphérique (l’imprimante).
4. Les instructions de rupture de séquence d’exécution (saut ou branchement): rompre
l’exécution séquentielle des instructions d’un programme.
5. Les instructions d’appels de sous-programmes: modifier la valeur courante du compteur
ordinal pour aller exécuter une suite d’instructions machine constituant une fonction, puis
de revenir exécuter les instructions machine situées juste après l’appel;
6. Les instructions particulières: permettant par exemple d’arrêter le processeur, de masquer
ou démasquer les interruptions, etc.
Langage machine/Assembleur

 Les différents types d’instructions:


1. Les instructions arithmétiques (+, -, x, etc.) & logiques (ou, et, etc.).
2. Les instructions de transfert de données: transférer une donnée depuis les registres du
processeur vers la mémoire centrale et vice versa ainsi qu’entre registres du processeur.
3. Les instructions d’entrées-sorties: lire une donnée depuis un périphérique (le clavier) ou
d’écrire une donnée vers un périphérique (l’imprimante).
4. Les instructions de rupture de séquence d’exécution (saut ou branchement): rompre
l’exécution séquentielle des instructions d’un programme.
5. Les instructions d’appels de sous-programmes: modifier la valeur courante du compteur
ordinal pour aller exécuter une suite d’instructions machine constituant une fonction, puis
de revenir exécuter les instructions machine situées juste après l’appel;
6. Les instructions particulières: permettant par exemple d’arrêter le processeur, de masquer
ou démasquer les interruptions, etc.
Langage machine/Assembleur

 Les différents types d’instructions:


1. Les instructions arithmétiques (+, -, x, etc.) & logiques (ou, et, etc.).
2. Les instructions de transfert de données: transférer une donnée depuis les registres du
processeur vers la mémoire centrale et vice versa ainsi qu’entre registres du processeur.
3. Les instructions d’entrées-sorties: lire une donnée depuis un périphérique (le clavier) ou
d’écrire une donnée vers un périphérique (l’imprimante).
4. Les instructions de rupture de séquence d’exécution (saut ou branchement): rompre
l’exécution séquentielle des instructions d’un programme.
5. Les instructions d’appels de sous-programmes: modifier la valeur courante du compteur
ordinal pour aller exécuter une suite d’instructions machine constituant une fonction, puis
de revenir exécuter les instructions machine situées juste après l’appel;
6. Les instructions particulières: permettant par exemple d’arrêter le processeur, de masquer
ou démasquer les interruptions, etc.
Langage machine/Assembleur

 Les différents types d’opérandes:


1. L’opérande est une valeur immédiate (ex: la valeur 3);
2. L’opérande est un registre du processeur (ex: le registre R1);
3. L’opérande est un mot mémoire (ex: le mot mémoire d’adresse 0x63).

 Le mode d’adressage associé à l’opérande :


• Si l’opérande est une valeur immédiate, le mode d’adressage est le mode d’adressage
immédiat. (l’opérande lui-même).
• Si l’opérande est contenu dans un registre, le mode d’adressage associé est un mode
d’adressage registre (le numéro du registre qui contient l’opérande).
• Si l’opérande est un mot mémoire, le mode d’adressage associé peut être le mode direct
(l’adresse mémoire contenant l’opérande) ou indirect (l’adresse mémoire contient lui-même
une l’adresse mémoire contenant l’opérande).
Langage machine/Assembleur

 Les différents types d’opérandes:


1. L’opérande est une valeur immédiate (ex: la valeur 3);
2. L’opérande est un registre du processeur (ex: le registre R1);
3. L’opérande est un mot mémoire (ex: le mot mémoire d’adresse 0x63).

 Le mode d’adressage associé à l’opérande :


• Si l’opérande est une valeur immédiate, le mode d’adressage est le mode d’adressage
immédiat. (l’opérande lui-même).
• Si l’opérande est contenu dans un registre, le mode d’adressage associé est un mode
d’adressage registre (le numéro du registre qui contient l’opérande).
• Si l’opérande est un mot mémoire, le mode d’adressage associé peut être le mode direct
(l’adresse mémoire contenant l’opérande) ou indirect (l’adresse mémoire contient lui-même
une l’adresse mémoire contenant l’opérande).
Langage machine/Assembleur

 Les différents types d’opérandes:


1. L’opérande est une valeur immédiate (ex: la valeur 3);
2. L’opérande est un registre du processeur (ex: le registre R1);
3. L’opérande est un mot mémoire (ex: le mot mémoire d’adresse 0x63).

 Le mode d’adressage associé à l’opérande :


• Si l’opérande est une valeur immédiate, le mode d’adressage est le mode d’adressage
immédiat. (l’opérande lui-même).
• Si l’opérande est contenu dans un registre, le mode d’adressage associé est un mode
d’adressage registre (le numéro du registre qui contient l’opérande).
• Si l’opérande est un mot mémoire, le mode d’adressage associé peut être le mode direct
(l’adresse mémoire contenant l’opérande) ou indirect (l’adresse mémoire contient lui-même
une l’adresse mémoire contenant l’opérande).
Langage machine/Assembleur

 Les différents types d’opérandes:


1. L’opérande est une valeur immédiate (ex: la valeur 3);
2. L’opérande est un registre du processeur (ex: le registre R1);
3. L’opérande est un mot mémoire (ex: le mot mémoire d’adresse 0x63).

 Le mode d’adressage associé à l’opérande :


• Si l’opérande est une valeur immédiate, le mode d’adressage est le mode d’adressage
immédiat. (l’opérande lui-même).
• Si l’opérande est contenu dans un registre, le mode d’adressage associé est un mode
d’adressage registre (le numéro du registre qui contient l’opérande).
• Si l’opérande est un mot mémoire, le mode d’adressage associé peut être le mode direct
(l’adresse mémoire contenant l’opérande) ou indirect (l’adresse mémoire contient lui-même
une l’adresse mémoire contenant l’opérande).
Langage machine/Assembleur

 Les différents types d’opérandes:


1. L’opérande est une valeur immédiate (ex: la valeur 3);
2. L’opérande est un registre du processeur (ex: le registre R1);
3. L’opérande est un mot mémoire (ex: le mot mémoire d’adresse 0x63).

 Le mode d’adressage associé à l’opérande :


• Si l’opérande est une valeur immédiate, le mode d’adressage est le mode d’adressage
immédiat. (l’opérande lui-même).
• Si l’opérande est contenu dans un registre, le mode d’adressage associé est un mode
d’adressage registre (le numéro du registre qui contient l’opérande).
• Si l’opérande est un mot mémoire, le mode d’adressage associé peut être le mode direct
(l’adresse mémoire contenant l’opérande) ou indirect (l’adresse mémoire contient lui-même
une l’adresse mémoire contenant l’opérande).
Langage machine/Assembleur

 Les différents types d’opérandes:


1. L’opérande est une valeur immédiate (ex: la valeur 3);
2. L’opérande est un registre du processeur (ex: le registre R1);
3. L’opérande est un mot mémoire (ex: le mot mémoire d’adresse 0x63).

 Le mode d’adressage associé à l’opérande :


• Si l’opérande est une valeur immédiate, le mode d’adressage est le mode d’adressage
immédiat. (l’opérande lui-même).
• Si l’opérande est contenu dans un registre, le mode d’adressage associé est un mode
d’adressage registre (le numéro du registre qui contient l’opérande).
• Si l’opérande est un mot mémoire, le mode d’adressage associé peut être le mode direct
(l’adresse mémoire contenant l’opérande) ou indirect (l’adresse mémoire contient lui-même
une l’adresse mémoire contenant l’opérande).
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Format d’une instruction du langage d’assemblage:


• Une instruction du langage d’assemblage est composée de champs, séparés par espaces.
1. Étiquette: chaîne de caractères permettant de nommer/référencer une instruction/variable.
2. Code opération: LOAD, STORE, JUMP, ADD, etc.
3. Opérandes: chaque opérande possède un nom permettant de le référencer (Les opérandes
d’une même instruction sont séparés par une virgule.
4. Mode d’adressage: il est spécifié par une chaîne placée après le code opération (Im, D, I).
S’agissant des registres, chacun d’entre eux est référencé par un nom (ex: R0, R1, R2, …).
 Directives:
• Sont des pseudo-instructions qui ne correspondent à aucune instruction machine, mais ce
sont des ordres destinés au traducteur assembleur.
• Utilité: définition des variables, déclaration de constantes, réservation d’un espace mémoire,
indiquer la fin d’un programme, etc.
Langage machine/Assembleur

 Fonctionnement de l’assembleur:
• L’assembleur est un programme qui traduit le langage d’assemblage en langage machine.
Son fonctionnement est très proche de celui du compilateur en phase de génération de code.
• La traduction effectuée par l’assembleur ne peut pas se faire en une seule passe,
c’est-à-dire que l’assembleur ne peut pas travailler en traduisant directement une à
une les instructions du langage d’assemblage en instructions du langage machine.
• Question: pourquoi ?

• Réponse: à cause du problème des références en avant.


Lorsque l’assembleur traite l’instruction JMP boucle, il ne
peut pas traduire le symbole boucle par une adresse, puisque
l’assembleur n’a pas encore rencontré la définition de
l’étiquette boucle.
• L’assembleur doit travailler donc en deux passes.
Langage machine/Assembleur

 Fonctionnement de l’assembleur:
• L’assembleur est un programme qui traduit le langage d’assemblage en langage machine.
Son fonctionnement est très proche de celui du compilateur en phase de génération de code.
• La traduction effectuée par l’assembleur ne peut pas se faire en une seule passe,
c’est-à-dire que l’assembleur ne peut pas travailler en traduisant directement une à
une les instructions du langage d’assemblage en instructions du langage machine.
• Question: pourquoi ?

• Réponse: à cause du problème des références en avant.


Lorsque l’assembleur traite l’instruction JMP boucle, il ne
peut pas traduire le symbole boucle par une adresse, puisque
l’assembleur n’a pas encore rencontré la définition de
l’étiquette boucle.
• L’assembleur doit travailler donc en deux passes.
Langage machine/Assembleur

 Fonctionnement de l’assembleur:
• L’assembleur est un programme qui traduit le langage d’assemblage en langage machine.
Son fonctionnement est très proche de celui du compilateur en phase de génération de code.
• La traduction effectuée par l’assembleur ne peut pas se faire en une seule passe,
c’est-à-dire que l’assembleur ne peut pas travailler en traduisant directement une à
une les instructions du langage d’assemblage en instructions du langage machine.
• Question: pourquoi ?

• Réponse: à cause du problème des références en avant.


Lorsque l’assembleur traite l’instruction JMP boucle, il ne
peut pas traduire le symbole boucle par une adresse, puisque
l’assembleur n’a pas encore rencontré la définition de
l’étiquette boucle.
• L’assembleur doit travailler donc en deux passes.
Langage machine/Assembleur

 Fonctionnement de l’assembleur:
• L’assembleur est un programme qui traduit le langage d’assemblage en langage machine.
Son fonctionnement est très proche de celui du compilateur en phase de génération de code.
• La traduction effectuée par l’assembleur ne peut pas se faire en une seule passe,
c’est-à-dire que l’assembleur ne peut pas travailler en traduisant directement une à
une les instructions du langage d’assemblage en instructions du langage machine.
• Question: pourquoi ?

• Réponse: à cause du problème des références en avant.


Lorsque l’assembleur traite l’instruction JMP boucle, il ne
peut pas traduire le symbole boucle par une adresse, puisque
l’assembleur n’a pas encore rencontré la définition de
l’étiquette boucle.
• L’assembleur doit travailler donc en deux passes.
Langage machine/Assembleur

 Fonctionnement de l’assembleur:
• L’assembleur est un programme qui traduit le langage d’assemblage en langage machine.
Son fonctionnement est très proche de celui du compilateur en phase de génération de code.
• La traduction effectuée par l’assembleur ne peut pas se faire en une seule passe,
c’est-à-dire que l’assembleur ne peut pas travailler en traduisant directement une à
une les instructions du langage d’assemblage en instructions du langage machine.
• Question: pourquoi ?

• Réponse: à cause du problème des références en avant.


Lorsque l’assembleur traite l’instruction JMP boucle, il ne
peut pas traduire le symbole boucle par une adresse, puisque
l’assembleur n’a pas encore rencontré la définition de
l’étiquette boucle.
• L’assembleur doit travailler donc en deux passes.
Langage machine/Assembleur

 Fonctionnement de l’assembleur:
• Première passe: l’assembleur rassemble l’ensemble des symboles et étiquettes dans une table
des symboles et leur associe une adresse dans le code.

• La table des symboles contient une entrée


pour chaque symbole du code en langage
d’assemblage et met en correspondance le
nom du symbole avec sa valeur dans le
code.
• Cette valeur:

 est une adresse: si l’étiquette est associée


à une instruction/variable;
 est une valeur constante: si l’étiquette est

Vous aimerez peut-être aussi