INFO0061 — Organisation des ordinateurs Examen écrit du jeudi 9 juin 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. On demande de construire un circuit séquentiel jouant le rôle d’un système d’aide au stationnement. Le circuit possède deux entrées b0 et b1 connectées à un capteur répondant aux spécifications suivantes : – lorsque l’obstacle le plus proche du capteur se trouve à une distance de moins de 0,5 mètre, on a b0 = 0 et, dans ce cas, la valeur de b1 peut être quelconque ; – lorsque l’obstacle le plus proche du capteur se trouve à une distance de 0,5 à 1 mètre, on a b0 = 1 et b1 = 0 ; – lorsque l’obstacle le plus proche du capteur se trouve à plus d’un mètre, on a b0 = 1 et b1 = 1. Le circuit à construire possède une sortie binaire s servant à commander un indicateur sonore devant produire un signal périodique dont la forme varie suivant la distance à l’obstacle le plus proche (l’indicateur sonne lorsque s = 1) : – si le premier obstacle se trouve à une distance de moins de 0,5 mètre, le signal doit être 1 1 1 1 1 1 1 1 1 1 1 1 ···; |{z} période – si le premier obstacle se trouve à une distance de 0,5 à 1 mètre, le signal doit être 1 0 1 0 1 0 1 0 1 0 1 0 ···; |{z} période – si le premier obstacle se trouve à plus d’un mètre, le signal doit être 1| 0{z0 0} 1 0 0 0 1 0 0 0 · · · . période 2. (a) Soustrayez 1 au nombre représenté par la suite de bits 10011011 dans les représentations suivantes : i. entière non signée, ii. par valeur signée, 1 iii. par complément à un, iv. par complément à deux, et donnez le résultat dans la même représentation. (b) Définissons x ∈ ]0, +∞[ comme étant le plus grand nombre réel représentable de manière exacte dans le standard IEEE 754 simple précision. i. Quelle est la représentation de x dans ce standard ? Justifiez. ii. Quelle est la valeur de x ? Justifiez. 3. (a) Décrivez précisément la forme générique d’une mémoire ROM de n cellules de m bits chacune : i. Quel est le nombre total de bits mémorisés ? ii. Quelles sont ses entrées et sorties ? iii. De quelle manière peut-on la contrôler ? (b) Les registres de contrôle PC et RI sont présents dans les processeurs de la plupart des architectures. i. Quels sont leurs rôles ? ii. Décrivez la manière suivant laquelle ils sont modifiés lors de l’exécution d’un programme. 4. Écrivez un programme assembleur 80x86 capable de déterminer, à partir d’une séquence de nombres entiers signés codés sur 16 bits, s’il y a plus de nombres positifs ou nuls que de nombres strictement négatifs. La séquence de nombres est initialement pointée par le registre BX et le nombre d’entiers composant cette séquence, supposé non nul, est contenu dans le registre CX. Le but du programme consiste à placer dans le registre DX une valeur – positive s’il y a plus de nombres positifs ou nuls que de nombres négatifs, – nulle s’il y autant de nombres positifs ou nuls que de nombres négatifs, – négative s’il y a plus de nombres négatifs que de nombres positifs ou nuls. 2 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)