Vous êtes sur la page 1sur 6

NOM : Prnom : ECE INGE3 / PREPA MASTER

Groupe : Architecture des microprocesseurs Dure : 2 heures - Mars 2004

Contrle
Architecture des microprocesseurs
Dure 2 heures
Tous les documents personnels (cours, TD, projets) sont autoriss.
La machine calculer est autorise.
La qualit de la prsentation sera prise en compte dans le barme de notation.
Les quatre parties de ce contrle sont totalement indpendantes.
Il vous est demand de rdiger chacune des parties sur une copie spare.
Pensez rappeler le numro des questions auxquelles vous rpondez.
Noubliez pas de joindre les documents rponses votre copie.

Partie A ( pour gagner des points plus a avance et plus cest difficile)
Architecture du microprocesseur 68000 de MOTOROLA
1. Question de cours. (2 points)

a. Donner la (ou les) diffrences qui existe(nt) entre un circuit RAM et un circuit
ROM.
Un circuit RAM est accessible en lecture et criture. Son contenu est perdu en
cas de coupure dalimentation
Un circuit ROM est accessible uniquement en lecture. Le contenu de la ROM
est prserv en cas de coupure dalimentation.

b. Donner la taille dun circuit RAM possdant 8 lignes de donnes (D0 D7) et
15 lignes dadresses ( de A0 A14).
Taille = 2nombre de lignes dadresse x nombre de lignes de donnes
= 215 x 8 = 32 K octet

c. Indiquer la (ou les) diffrence(s) qui existe(nt) entre les instructions suivantes :
NEG.B -(A0) NEG.B -1(A0)
Dans les 2 cas, linstruction NEG ( complment deux) seffectue sur le
contenu de ladresse pointe par le registre (A0 1) .
Par contre pour la 1ire instruction, le registre est dcrment de 1 suite
llaboration du complment 2 et dans le 2ime cas, le registre reste la mme
valeur.

d. Donner la fonction du registre A7 du microprocesseur 68000.


Le registre A7 est un pointeur de pile. Il est utilis en mode Utilisateur et
sappelle USP.

e. Sur un octet, quel est lintervalle dans lequel un nombre ngatif z peut tre
reprsent en complment deux?
Lintervalle est :
-128 < z < -1 soit 1000 0000 < z < 1111 1111

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - 1/6


NOM : Prnom : ECE INGE3 / PREPA MASTER
Groupe : Architecture des microprocesseurs Dure : 2 heures - Mars 2004

2. Exercices de numration. (3 points)

a) Complter le tableau de conversion suivant :

Valeur en dcimal Valeur en binaire Valeur en hexadcimal

181 % 1011 0101 $ B5


109 % 0110 1101 $ 6D
217 % 1101 1001 $ D9

b) Donner le complment deux des nombres suivants :

Valeur en dcimal Complment deux ( sur 1 octet )

181 0100 1011


36 1101 1100

c) Effectuer les additions suivantes :

en binaire en hexadcimal

% 0101 0110 $ 3 C D F
+ % 0001 1101 + $ 8 9 7 D

= % 0111 0011 = $ C 6 5 C

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - 2/6


NOM : Prnom : ECE INGE3 / PREPA MASTER
Groupe : Architecture des microprocesseurs Dure : 2 heures - Mars 2004

Partie B
Analyse de programme assembleur
1. Les modes dadressage du microprocesseur 68000. ( 3 points)
Dfinir les modes dadressage source et destination pour chacune des lignes du
programme ci-dessous.

Mode dadressage source Mode dadressage destination


ORG $1000 ----------- -----------
LEA $2500,A0 Absolu court Direct par registre dadresse
MOVE.L #32,D0 Immdiat Direct par registre de donne
Boucle MOVE.B #$E7,(A0)+ Immdiat Indirect avec post incrmentation
SUB #1,D0 Immdiat Direct par registre de donne
BNE Boucle Relatif
Fin BRA Fin Relatif

2. Analyse dun programme crit en langage assembleur 68000. (4 points)


2.1 Aprs avoir analys le programme ci-dessous, il vous est demand de trouver le
contenu des registres de donne D6 et D7 en fin dexcution du programme.
2.2 En dduire la relation existante entre le rsultat se trouvant dans le registre D7 et
le valeur : nbre. Relation mathmatique sous la forme D7 = f ( nbre).

Programme source
ORG 0
DC.L $7000
DC.L start
ORG $1000
nbre DC.B 5
ORG $2000
start CLR.L D6
CLR.L D7
debut ADD.B #1,D6
CMP.B nbre,D6
BEQ fin
ADD.W D6,D7
BRA debut
fin ADD.W D6,D7
fin2 BRA fin2 contenu aprs excution du
programme
registre D6 5
registre D7 15
D7 = [ nbre x ( nbre + 1 )] / 2
Relation
il faut indiquer le nom : suite
mathmatique
arithmtique

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - 3/6


NOM : Prnom : ECE INGE3 / PREPA MASTER
Groupe : Architecture des microprocesseurs Dure : 2 heures - Mars 2004

Partie C
Elaboration dun programme en langage assembleur

Cration de programme. (4 points)


Ecrire un programme de quelques lignes qui permet de dtecter le dbut dune phrase par
la dtection du point de ponctuation.
Votre programme se basera sur lalgorithme suivant :
Si le code ASCII correspond au point (.)
Si le code ASCII suivant correspond au symbole $ alors
Mettre fin lexcution du programme
Sinon mettre la lettre suivant le point en majuscule.
Sinon passer au caractre suivant

Pour des raisons de simplification dans llaboration du programme, cet algorithme


suppose que lon ne teste pas la premire lettre du texte ( effectivement, un texte ne
commence pas par un point) et quil ny a pas despace entre le caractre point et la lettre
suivante.

On vous rappelle un extrait de la table des codes ASCII ci-dessous :


= $ 20 (espace) A = $ 41 a = $ 61
$ = $ 24 B = $ 42 b = $ 62
. = $ 2E C = $ 43 c = $ 63
0 = $ 30 D = $ 44 d = $ 64
.. .. ..
9 = $ 39 Z = $ 5A z = $ 7A

Vous pouvez rsoudre le problme en compltant le programme donn ci-dessous.

ORG $0
DC.L $8000 * Stack pointer value after a reset
DC.L start * Program counter value after a reset

ORG $2000
texte DC.B 'Le devoir est sympa.il dure 2 heures.'
DC.B 'je pense avoir une bonne note.a condition de me concentrer.$'

ORG $5000 Remarque : Les codes ASCII des


start LEA texte,A0 lettres constituant le texte sont
suite MOVE.B (A0)+,D0 placs les uns aprs les autres
CMP.B #$2E,D0 partir de ladresse $2000
BNE suite
MOVE.B (A0)+,D0
CMP.B #$24,D0
BEQ fin
AND.B #$DF,D0
MOVE.B D0,-1(A0)
BRA suite
fin bra fin

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - 4/6


NOM : Prnom : ECE INGE3 / PREPA MASTER
Groupe : Architecture des microprocesseurs Dure : 2 heures - Mars 2004

Partie D

Comprhension dun programme


en langage assembleur 68000 (4 points)

On donne la structure de programme suivante :

ORG $0
DC.L $7FFF * Stack pointer value after a reset
DC.L START * Program counter value after a reset

ORG $1000
valeur dc.b 9,5,4,7,3
nbre dc.b 5

ORG $2000
start LEA valeur,A0
LEA nbre,A1
CLR.L D1
CLR.L D2
CLR.L D3
CLR.L D4
CLR.L D5
MOVE.B (A1),D1
SUB.B #1,D1
MOVE.B D1,D2

encore MOVE.B (A0)+,D3


MOVE.B (A0),D4
CMP.B D3,D4
BGE suite * Branchement si D4 est plus grand ou gal D3
MOVE.B D3,(A0)
MOVE.B D4,-(A0)
ADD.L #1,A0
MOVE.B #1,D5

suite SUB.B #1,D2


BNE encore
CMP.B #0,D5
BEQ fin
CLR.B D5
SUB.B #1,(A1)
MOVE.B (A1),D2
SUB.B #1,D2
LEA valeur,A0
SUB.B #1,D1
BNE encore

fin BRA fin

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - 5/6


NOM : Prnom : ECE INGE3 / PREPA MASTER
Groupe : Architecture des microprocesseurs Dure : 2 heures - Mars 2004

1) Aprs avoir analys ce programme, vous dfinirez le rle de chacun des


registres utiliss dans le tableau ci-dessous.

La notation tiendra compte de la clart et de la pertinence de vos rponses.

Rle des registres

A0 A0 pointe les valeurs ordonner


Registres
dadresse
A1 A1 pointe le nombre de valeurs ordonner

D1 nombre de passages ( gal 4 dans notre cas )

Nombre courant de tests effectuer lors dun passage.


D2 Ce nombre diminue chaque passage.
Registres de
donnes D3 Contient un octet de la chaine: valeur

D4 Contient l'octet suivant de la chaine: valeur

Cest un drapeau.
D5 Indique par 1 ou 0 si le tableau est tri ou pas

2) Le registre D5 est-il indispensable ? Justifier son intrt.

Non, ce registre nest pas indispensable.


Sans lutilisation de ce registre, le tri du tableau se fera avec un nombre de passage
automatiquement gal nbre-1.
Avec lutilisation de ce registre, ds que le tableau est tri, le registre D5 le signale (tel
un drapeau ) en restant la valeur 0.

Thats all Folks

La correction de ce contrle sera sur Internet dans la partie cours partir du


lundi 22 mars 2004 ladresse suivante : http://www.francomme.fr.fm.

Bon courage

J. FRANCOMME francom@ece.fr - J.M. HENRI henri@ece.fr - 6/6