Logiciel de Base Stage ADT : Différence entre versions

De Ensiwiki
Aller à : navigation, rechercher
(Séance 1 : Langage C (Introduction))
(Séance 3 : Modes d'adressages)
 
(10 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
Enseignant : [http://www-verimag.imag.fr/~maiza/ Claire Maiza]
 
== Déroulement du cours ==
 
== Déroulement du cours ==
  
Ligne 6 : Ligne 7 :
  
 
Ce cours est basé sur les supports de cours et séance de TD/TP effectués en filière apprentissage et en 1A. Pour les curieux, vous trouverez le contenu de ces enseignements en suivant ces liens :
 
Ce cours est basé sur les supports de cours et séance de TD/TP effectués en filière apprentissage et en 1A. Pour les curieux, vous trouverez le contenu de ces enseignements en suivant ces liens :
* [[Logiciel de Base]]
+
* [[Logiciel de Base]], responsable : [http://www-verimag.imag.fr/~rippert/ Christophe Rippert]
* [[Logiciel de Base Apprentissage]]
+
* [[Logiciel de Base Apprentissage]], responsable : [http://www-verimag.imag.fr/~moy/ Matthieu Moy]
  
 
== Supports de cours ==
 
== Supports de cours ==
Ligne 29 : Ligne 30 :
  
 
=== Séance 1 : Introduction au langage C et GDB ===
 
=== Séance 1 : Introduction au langage C et GDB ===
 +
{{boîte déroulante
 +
  | titre=Exemple de code C
 +
  | contenu=
 +
<source lang="C">
 +
/* "main" est la fonction principale */
  
* Tutorial [[GDB]] : {{Url Git ldba|basedir=c/1b-gdb-valgrind/gdb/gdb-tutorial.c}}
+
/* Auteur initial : Matthieu Moy <Matthieu.Moy@imag.fr>
 +
Ensimag, Grenoble INP */
 +
#include <stdio.h>
 +
#include <unistd.h>
 +
void f(void);
 +
void calcul_et_imprime_fact(int n);
 +
int fact(int n);
 +
int main (void)
 +
{
 +
  unsigned i;
 +
  short int j;
 +
  printf ("Bonjour\n");
 +
  f();
 +
  j = 0;
 +
  for (i = 0; i <= 1000; ++i) {
 +
    j = j + i;
 +
  }
 +
  printf ("i=%i\n", i);
 +
  calcul_et_imprime_fact(10);
 +
  i = 10;
 +
  while (i >= 0) {
 +
    --i;
 +
  }
 +
}
 +
 
 +
void f(void)
 +
{
 +
  printf ("Appel de f()\n");
 +
}
 +
 
 +
void calcul_et_imprime_fact(int n)
 +
{
 +
  int res = fact(n);
 +
  printf ("fact(%i) = %i\n", n, res);
 +
}
 +
 
 +
int fact(int n)
 +
{
 +
  printf ("Calcul de fact(%i)\n", n);
 +
  if (n <= 1) {
 +
    return 1;
 +
  } else {
 +
    return n * fact(n - 1);
 +
  }
 +
}
 +
</source>
 +
<br>
 +
}}
 +
* Le tutorial [[GDB]] se trouve dans : {{Url Git ldba|file=c/1b-gdb-valgrind/gdb/gdb-tutorial.c}}
 
* QCM de révision, à faire avant la séance suivante : [[QCM GDB]]
 
* QCM de révision, à faire avant la séance suivante : [[QCM GDB]]
  
=== Séance 2 : Assembleur - Introduction ===
+
=== Séance 2 : Introduction à l'assembleur Pentium ===
  
 
* Transparents projetés en cours : {{Url Git ldba|file=asm/1-asm-intro/1-introduction-ldb.pdf}}
 
* Transparents projetés en cours : {{Url Git ldba|file=asm/1-asm-intro/1-introduction-ldb.pdf}}
* (fin de la séance machine de la séance 1)
 
 
* Séance machine : [[LdB Seance 5]]
 
* Séance machine : [[LdB Seance 5]]
 
* [[QCM Bases Assembleur]]
 
* [[QCM Bases Assembleur]]
Ligne 42 : Ligne 95 :
 
=== Séance 3 : Modes d'adressages ===
 
=== Séance 3 : Modes d'adressages ===
  
* Transparents : {{Url Git ldba|file=asm/2-modes-adressages/langage-dassemblage-syntaxe.pdf}}
+
* Transparents : {{Url Git ldba|file=asm/2-modes-adressages/slides/syntaxe-asm-slides.pdf}}
 
* Séance machine : [[LdB Modes d'adressages]]
 
* Séance machine : [[LdB Modes d'adressages]]
 
* [[QCM Modes d'adressage]]
 
* [[QCM Modes d'adressage]]

Version actuelle en date du 19 juillet 2012 à 12:50

Enseignant : Claire Maiza

Déroulement du cours

Nous aborderons les bases de la programmation en langage d'assemblage Pentium.

Pour chaque cours, vous aurez à disposition le contenu utilisé en séance (transparents, exemples de code, ...), et un QCM avec corrigé en libre service. Faites l'effort de répondre à chaque QCM entre les séances de cours, pour vous assurer que vous avez bien tous les acquis, et arriver au cours suivant avec l'essentiel du cours en tête.

Ce cours est basé sur les supports de cours et séance de TD/TP effectués en filière apprentissage et en 1A. Pour les curieux, vous trouverez le contenu de ces enseignements en suivant ces liens :

Supports de cours

Les supports de cours (transparents, code source, ...) sont disponibles via Git. Pour récupérer ces supports :

git clone http://github.com/moy/cours-ldb.git

Explications détaillées : LdB - Récupérer les supports de cours avec Git.

Supports utiles pour l'ensemble du cours

Planning

Séance 1 : Introduction au langage C et GDB

Séance 2 : Introduction à l'assembleur Pentium

Séance 3 : Modes d'adressages

Séance 4 : Pile et appels de fonctions

Séance 5 : Appels de fonctions