Professional Documents
Culture Documents
1.2. Que se passe-t-il lorsquon fait appel une interruption logicielle ? Dtaillez les tapes.
1.4. Quels sont les 2 mthodes dchange de donnes avec les priphriques ? Donnez 2 exemples.
1.5. Quest-ce que la scrutation ? Quel est son inconvnient ? Quelle est la solution ?
IUT Villetaneuse Architecture des ordinateurs Jeudi 4 mars 2003-2004
GTR 1re anne Contrle Long n2 p2/1
1.6. Quest-ce quune interruption matrielle ? Donnez un exemple dutilisation.
1.9. Expliquez ce qui se passe lorsquune interruption matrielle se dclenche. Dtaillez les tapes.
1.10. Quel est le rle des bus ? Quappelle t-on hirarchie de bus ? Donnez un exemple.
IUT Villetaneuse Architecture des ordinateurs Jeudi 4 mars 2003-2004
GTR 1re anne Contrle Long n2 p3/1
NOM:
2. COMPILATION (2me partie pratique dure indicative 1h) Prnom:
On donne en annexe I un programme C : Groupe:
2.1. La fonction principale (main) appelle protegeChaine qui elle mme appelle estSpecial
(les appels en question sont en gras).
Reprsentez ltat de la pile dappel lors du premier passage sur la ligne de commentaire
/* affiche mmoire */. Prcisez ce qui est stock dans la pile (les valeurs si vous les connaissez) et
les cases mmoires (adresses) pointes par les registres BP et SP. Remarque importante : il nest pas ncessaire
de comprendre quoi sert le programme pour rpondre cette question.
IUT Villetaneuse Architecture des ordinateurs Jeudi 4 mars 2003-2004
GTR 1re anne Contrle Long n2 p4/1
2.2. On excute protegeCar en lui passant successivement en paramtre A, a et , dont
les codes ASCII sont respectivement en hexadcimal 41, 61 et 81. Donnez dans chaque cas, la valeur
de la variable caractere au niveau du commentaire // tape 0, la valeur de la variable
parite au niveau des commentaires // tape 1, // tape 2, // tape 3, et enfin la
valeur retourne. Toutes les valeurs seront donnes en hexadcimal.
A a
// tape 0
// tape 1
// tape 2
// tape 3
retour
2.4. On excute protegeChaine en lui passant en paramtre "Aa!" (le code de ! est 21).
Donnez les codes hexadcimaux des caractres de la chane retourne. Expliquez.
2.5. On dsire maintenant rutiliser les fonctions prcdentes dans un autre programme.
Expliquez les oprations raliser. Donnez le contenu du fichier den-tte.
IUT Villetaneuse Architecture des ordinateurs Jeudi 4 mars 2003-2004
GTR 1re anne Contrle Long n2 p5/1
NOM:
3. INTERFACE SERIE (3me partie pratique dure indicative 1h) Prnom:
On dispose dune inteface srie au numro de port 03F8. Groupe:
Linterface est dj configure. La table des registres de lUART est reproduite en annexe II.
3.1. Ecrire une fonction envoie qui envoie un caractre sur ce port srie. On prendra bien
videmment les prcautions qui simposent.
3.2. Ecrire une fonction recois qui retourne le caractre reu sur ce port srie (en scrutation).
3.3. Ecrire une fonction setDlab qui permet de positionner le bit dlab en fonction du paramtre
active. Elle met le bit dlab 0 si active est 0 (ou 1 sinon), mais ne change rien dautre.
3.5. On veut aussi une rapidit de modulation de 300 Bauds. Le facteur qui rgle la rapidit de
modulation est le diviseur de frquence stock dans le registre 16bits DL (accessible par moiti). On
sait que le rglage standard 2400 Bauds correspond un DL de 0048 (en hexadcimal).
Dites quels sont les registres concerns et donnez les valeurs des codes y mettre pour la configuration
300 Bauds.
3.6. Par ailleurs, linterface sera utilise en mode scrutation et sans file dattente. Compltez la fonction
de configuration, fournie ci-dessous, pour rpondre aux souhaits prcdents.
/* positionnement du format */
outportb( , );
setDlab( );
/* mode scrutation */
outportb( , );
outportb( , );
}
IUT Villetaneuse Architecture des ordinateurs Jeudi 4 mars 2003-2004
GTR 1re anne Contrle Long n2 p7/1
Annexe I : Programme en C
# include <stdio.h>
# include <conio.h>
# include <alloc.h>