Skip to content
Extraits de code Groupes Projets
Valider ff725ad0 rédigé par Quentin De Coninck's avatar Quentin De Coninck
Parcourir les fichiers

add qbf for fourth week

parent 8ded9133
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -149,3 +149,25 @@ Exercices ...@@ -149,3 +149,25 @@ Exercices
#. Vous trouverez également sur INGInious plusieurs exemples de questions typiques sur l'assembleur à l'examen. Ces questions portent sur la traduction d'un code assembleur dans son équivalent en C. `Première question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm1>`_, `deuxième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm2>`_, `troisième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm3>`_ et `quatrième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm4>`_ . #. Vous trouverez également sur INGInious plusieurs exemples de questions typiques sur l'assembleur à l'examen. Ces questions portent sur la traduction d'un code assembleur dans son équivalent en C. `Première question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm1>`_, `deuxième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm2>`_, `troisième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm3>`_ et `quatrième question <https://inginious.info.ucl.ac.be/course/LSINF1252/asm4>`_ .
Question de bilan final
=======================
Considérez le programme suivant.
.. literalinclude:: src/s4_qbf.c
:encoding: utf-8
:language: c
* Dessinez le schéma de l'organisation mémoire du programme. Identifiez dessus où se trouvent toutes les variables présentes dans le programme.
* Pour chaque ligne du programme, indiquez quelles zones mémoires sont accédées et leur contenu après exécution.
.. only:: staff
Cette question est importante à réaliser, n'hésitez pas à y passer une bonne demi-heure. Insistez pour commencer à dessiner le schema au tableau et que les étudiants interagissent directement dessus.
Dans la section code: f, main.
Dans la section initialisée: cours et 97850 (insistez sur ce dernier!).
Dans la section heap: la zone mémoire pointée par tab.
Dans la stack (à des niveaux différents): d, tab, res, c, x. Notez que les arguments des fonctions sont aussi mis sur la stack (y compris a, b, argc et argv), mais insistez là-dessus lors de l'exécution du programme.
Dans la zone param/env: le contenu de argv.
\ No newline at end of file
#include <stdlib.h>
int cours = 1252;
int f(int *a, int b) {
int c = 97850**a + b;
int x = 2052;
*a = x * c;
return c;
}
int main(int argc, char *argv[]) {
int d = 42;
char *tab = malloc(20 * sizeof(char));
int *res = (int *) tab;
*tab = f(&cours, d);
return 0;
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter