INFO0061 — Organisation des ordinateurs Examen écrit du jeudi 18

publicité
INFO0061 — Organisation des ordinateurs
Examen écrit du jeudi 18 août 2011
Livres fermés. Durée : 3 heures 1/2.
Veuillez répondre à chaque question sur une feuille séparée sur laquelle figurent
nom, prénom et section. Soyez bref et concis, mais précis.
1. Construisez un circuit séquentiel capable de déterminer si des nombres fournis
en entrée sont ou non égaux à 0. Ce circuit possède deux entrées i et f et une
sortie s. Les nombres à traiter sont représentés par la méthode du complément
à 2, et leurs encodages sont successivement fournis à l’entrée i, un bit étant
transmis à chaque période d’horloge en commençant par le bit de signe. L’entrée f vaut 1 lorsque le bit présent à l’entrée i est le dernier de l’encodage d’un
nombre, et 0 sinon. Lorsque f vaut 1, la sortie s doit valoir
• 1 si le nombre dont la lecture se termine est égal à 0, et
• 0 sinon.
Lorsque f vaut 0, la sortie s doit également valoir 0.
A titre d’illustration, voici le comportement souhaité du circuit pour des valeurs
particulières des entrées i et f (le temps évoluant de gauche à droite) :
i
f
s
1
0
0
1
0
0
1
0
0
0
1
0
1
1
0
0
0
0
0
0
0
0
0
0
0
1
1
1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
1
0
0
0
0
0
1
1
···
···
···
Note : Les nombres successivement fournis au circuit dans cet exemple sont
−2, −1, 0, −4, 4 et 0.
2. (a) Décrivez les intérêts théoriques et pratiques de la représentation par complément à 2 des nombres entiers signés par rapport à
i. la représentation par valeur signée ;
ii. la représentation par complément à 1.
(b) La séquence
10000000101010000000000000000000
représente un nombre réel x dans la norme IEEE 754 simple précision.
i. Quelle est la valeur de x ? Justifiez.
x
ii. Donnez la représentation de dans cette même norme. Justifiez.
2
3. (a) Quel est le principe de fonctionnement d’une porte à trois états ? Quelle
est l’utilité de ce type de portes ? Citez-en une application typique.
1
(b) Dans un processeur, quelle est l’utilité de l’unité arithmétique et logique ?
Décrivez ses entrées et sorties, ainsi que le rôle de chacune d’entre elles.
4. Ecrivez un programme assembleur 80x86 capable de dédoubler une chaı̂ne de
caractères. La chaı̂ne de caractères à dédoubler est codée en ASCII, et placée
dans des octets consécutifs du segment de données. L’adresse du premier octet
de cette chaı̂ne est initialement contenue dans le registre BX, et la taille de la
chaı̂ne est donnée dans CX.
Le but du programme demandé est de recopier, à la suite d’elle-même dans le
segment de données, la chaı̂ne pointée par BX.
Exemple (avec CX contenant initialement 4) :
a
b
c
a
b
c
a
(Avant)
↑
BX
a
a
b
c
a
2
(Après)
Annexe 1 : Modes d’adressage des instructions 80x86
Op.1
rα
mα
rα
pα
MOV
Op.2 Op.1
rα
rα
rα
rα
mα
pα
rα
mα
ADD,
Op.1
rα
mα
rα
pα
r16
m16
Op.2
pα
iα
iα
iα
XCHG
Op.1 Op.2
rα
rα
mα
rα
pα
rα
rα
mα
rα
pα
SUB, AND, OR, XOR, CMP
Op.2
Op.1 Op.2
rα
rα
pα
rα
rα
iα
mα
pα
iα
rα
mα
iα
i8
p16
i8
i8
PUSH
Op.1
r16
m16
i16
POP
Op.1
r16
m16
INC, DEC, MUL, NOT
Op.1
rα
mα
pα
JMP, LOOP, CALL
Op.1
i16
r16
m16
p16
r = registre, i = immédiat, m = direct, p = indirect ou indirect indexé, α = 8 ou
16.
Annexe 2 : Instructions de saut conditionnel
Instr.
JE
JNE
JG
JGE
JL
JLE
JA
JAE
JB
JBE
Condition de saut
Op1 = Op2
Op1 6= Op2
Op1 > Op2 (valeurs
Op1 ≥ Op2 (valeurs
Op1 < Op2 (valeurs
Op1 ≤ Op2 (valeurs
Op1 > Op2 (valeurs
Op1 ≥ Op2 (valeurs
Op1 < Op2 (valeurs
Op1 ≤ Op2 (valeurs
3
signées)
signées)
signées)
signées)
non signées)
non signées)
non signées)
non signées)
Téléchargement