• Aucun résultat trouvé

INF2170 Organisation des ordinateurs et assembleur

N/A
N/A
Protected

Academic year: 2022

Partager "INF2170 Organisation des ordinateurs et assembleur"

Copied!
10
0
0

Texte intégral

(1)

INF2170 Organisation des ordinateurs et assembleur

Examen Intra Hiver 2012

Jeudi 6 septembre 2012 Durée 2 heures

Aucun document n'est autorisé. L'usage de la calculatrice est interdit. Répondez et rendez seulement le formulaire (dernière page). L'annexe est détachable.

Les questions faisant apparaître le symbolepeuvent présenter plusieurs bonnes réponses. Les autres ont une unique bonne réponse.

Des points négatifs pourront être aectés à de très mauvaises réponses.

1 Architecture

Question 1 Que contient le registre compteur ordinal (program counter) ? A Le nombre d'instructions restant à exécuter avant la n du programme B L'adresse de l'instruction suivante

C Le nombre d'instructions exécutées depuis le début du programme D L'adresse de retour du dernier CALL

Question 2 Quelle est la quatrième (et dernière) étape du cycle de l'UCT ? A Incrémentation du compteur ordinal

B Remise à zéro du compteur ordinal C Décrémentation du compteur ordinal D Vidage des caches

E Exécution de l'instruction

2 Instructions et code machine

Question 3 Lesquelles des instructions Pep/8 suivantes est de type arithmétique ? A STr

B STOP

C LDr D NOTr

E CPr F BRLT

G NEGr H SUBr Question 4 Laquelle des instructions Pep/8 suivantes est de type contrôle ?

A BRC B BREQ

C ANDr D CHARO

E LDr F ADDr

G ASRr H STOP

(2)

Question 5 Que fait la directive Pep/8 .BLOCK 5 ? A Réserve un mot (2 octets) initialisé à 0005

B Réserve 10 octets (5 mots) initialisés à 0

C Bloque l'exécution du programme pour 5 secondes D Réserve 5 octets initialisés à 0

Question 6 Qu'ache le programme mystère Pep/8 suivant ? LDA 10,i

la: CPA 0,i

BRLE ici STA num ,d DECO num ,d SUBA 1,i

BR la

ici : STOP num : . BLOCK 2

.END A 0

B 101010101010... (une innité de 10) C Il ne s'assemble pas

D 109876543210 E 10

F 10987654321 Question 7 Qu'ache la séquence de code machine Pep/8 suivante ? 50 00 41 00

A A

B Elle n'ache rien C 004100

D 50

E 0 F 65

G Elle ache n'importe quoi H 41

3 Arithmétique des ordinateurs

Question 8 Parmi les représentations suivantes, quelles sont celles du nombre12(16) (12 hexadécimal) ? A 12(10)

B 1100(2)

C 11000(2) D 10010(2)

E 14(8) F 24(10)

G 0C(16)

H 18(10) Question 9 Soit la séquence d'instructions Pep/8 suivante :

LDA 0x0321,i ADDA 0x0DEF,i

Quelle est la valeur hexadécimale du registre accumulateur (A) après l'exécution ?

A 0x1110 B 0x1000 C 0x1111 D 0xFFFF E 0x0FFF

Question 10 Même question pour la séquence Pep/8 suivante.

LDA 0x0011,i ASLASUBA 0x0045,i

(3)

Question 11 Parmi les opérations en Pep/8 suivantes, quelles sont celles qui positionnent les codes de condition N et V tous les deux à 1 ? Indiquez toutes les bonnes réponses.

A NEG 0x8000 B 0x789A + 0x0766 C 0xFA40 + 0x0356

D NEG 0x7FFF E 0x1110 + 0x0001 F 0x7034 + 0x70AB

G 0xFA40 + 0x0F56 H 0xFFFF + 0x0001 I 0x1110 - 0x0001

4 Programme mystère

Soit le listing suivant :

--- Object

Addr code Symbol Mnemon Operand Comment

---

0000 380031 DECO a,i

0003 50000 A CHARO '\n',i

0006 390031 DECO a,d

0009 50000 A CHARO '\n',i

000 C 380035 DECO c,i

000 F 50000 A CHARO '\n',i

0012 390035 DECO c,d

0015 50000 A CHARO '\n',i

0018 3 A0035 DECO c,n

001 B 50000 A CHARO '\n',i

001 E C80031 LDX a,i

0021 3 D0002 DECO 2,x

0024 50000 A CHARO '\n',i

0027 C8FFFE LDX -2,i

002 A 3 D0035 DECO c,x

002 D 50000 A CHARO '\n',i

0030 00 STOP

0031 0001 a: . WORD 1 0033 0002 b: . WORD 2 0035 0031 c: . ADDRSS a

0037 . END

---

Symbol table

---

Symbol Value Symbol Value

---

a 0031 b 0033

c 0035

---

Question 12 Quel est le premier nombre aché (DECO a,i) ? A -2

B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256

(4)

Question 13 Quel est le second nombre aché (DECO a,d) ? A -2

B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256 Question 14 Quel est le troisième nombre aché (DECO c,i) ?

A -2 B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256 Question 15 Quel est le quatrième nombre aché (DECO c,d) ?

A -2 B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256 Question 16 Quel est le cinquième nombre aché (DECO c,n) ?

A -2 B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256 Question 17 Quel est le sixième nombre aché (DECO 2,x) ?

A -2 B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256 Question 18 Quel est le septième nombre aché (DECO c,x) ?

A -2 B -1 C 0 D 1

E 2 F 3 G 4 H 31

I 32 J 33 K 34 L 35

M 48 N 49 O 50 P 51

Q 52 R 53 S 255 T 256

(5)

5 Programmation

Soit le programme incomplet suivant dont l'objectif est d'acher une ligne chirée en ROT13 (décalage de 13 caractères de chaque lettre du texte).

loop : ; TODO lire un caractere

; TODO test sortir CPA 'A',i

; TODO test 'A' CPA 'M',i BRLE AtoM CPA 'Z',i BRLE NtoZ

BR skip

AtoM : ADDA 13,i STBYTEA c,d

BR skip

NtoZ : ; TODO NtoZ skip : CHARO c,d

BR loop

fin : STOP c: . BLOCK 1

.END

Question 19 Quelle séquence d'instructions faut-il écrire pour lire un caractère ? A LDA 0,i

CHARI c,i LDBYTEA c,i B LDA 0,i

LDBYTEA c,d CHARO c,d

C LDBYTEA 0,i LDBYTEA c,d CHARI c,d D LDBYTEA 0,i

LDBYTEA c,i CHARI c,i

E LDA 0,i LDBYTEA c,d CHARI c,d F LDA 0,i

CHARI c,d LDBYTEA c,d Question 20 Quelle séquence d'instructions faut-il écrire pour test sortir ?

A CPA '/n',d BREQ skip B CPA '/n',d

BRNE fin

C CPA '/n',i BRNE STOP D CPA '/n',i

BREQ STOP

E LDBYTEA 0,i CPA '/n',i BREQ fin F CPA '/n',i

BREQ fin Question 21 Quelle instruction faut-il écrire pour test 'A' ?

A BREQ skip B BRLT skip C BRLE skip

D BREQ fin E BRLE AtoM F BRLE fin

G BRLT fin H BRLT AtoM I BREQ AtoM Question 22 Quelle séquence d'instructions faut-il écrire pour NtoZ ?

A ADDA 13,i STBYTEA c,d BR skip B ADDA 14,i

STBYTEA c,d

C LDA c,d SUBA 14,i STA c,d D ADDA 13,i

STBYTEA c,d

E ADDA -14,i STBYTEA c,d F SUBA 13,i

STBTYEA c,d

(6)
(7)

6 Annexes (détachable)

6.1 39 instructions Pep/8

Spécif. Instruct. Signications Modes Codes conditions

instr. d'adressage aectés

00000000 STOP Arrête l'exécution du programme 00000001 RETTR Retour d'interruption

00000010 MOVSPA Placer SP dans A 00000011 MOVFLGA Placer NZVC dans A

0000010a BR Branchement inconditionnel i,x

0000011a BRLE Branchement si inférieur ou égal i,x

0000100a BRLT Branchement si inférieur i,x

0000101a BREQ Branchement si égal i,x

0000110a BRNE Branchement si non égal i,x

0000111a BRGE Branchement si supérieur ou égal i,x

0001000a BRGT Branchement si supérieur i,x

0001001a BRV Branchement si débordement i,x

0001010a BRC Branchement si retenue i,x

0001011a CALL Appel de sous-programme i,x

0001100r NOTr NON bit-à-bit du registre NZ

0001101r NEGr Opposé du registre NZV

0001110r ASLr Décalage arithmétique à gauche du registre NZVC 0001111r ASRr Décalage arithmétique à droite du registre NZC

0010000r ROLr Décalage cyclique à gauche du registre C

0010001r RORr Décalage cyclique à droite du registre C

001001nn NOPn Interruption unaire pas d'opération

00101aaa NOP Interruption non unaire pas d'opération i

00110aaa DECI Interruption d'entrée décimale d,n,s,sf,x,sx,sxf NZV 00111aaa DECO Interruption de sortie décimale i,d,n,s,sf,x,sx,sxf

01000aaa STRO Interruption de sortie de chaîne d,n,sf

01001aaa CHARI Lecture caractère d,n,s,sf,x,sx,sxf

01010aaa CHARO Sortie caractère i,d,n,s,sf,x,sx,sxf

01011nnn RETn Retour d'un appel avec n octets locaux

01100aaa ADDSP Addition au pointeur de pile (SP) i,d,n,s,sf,x,sx,sxf NZVC 01101aaa SUBSP Soustraction au pointeur de pile (SP) i,d,n,s,sf,x,sx,sxf NZVC 0111raaa ADDr Addition au registre i,d,n,s,sf,x,sx,sxf NZVC 1000raaa SUBr Soustraction au registre i,d,n,s,sf,x,sx,sxf NZVC 1001raaa ANDr ET bit-à-bit du registre i,d,n,s,sf,x,sx,sxf NZ 1010raaa ORr OU bit-à-bit du registre i,d,n,s,sf,x,sx,sxf NZ

1011raaa CPr Comparer registre i,d,n,s,sf,x,sx,sxf NZVC

1100raaa LDr Placer 1 mot dans registre i,d,n,s,sf,x,sx,sxf NZ 1101raaa LDBYTEr Placer octet dans registre (0-7) i,d,n,s,sf,x,sx,sxf NZ 1110raaa STr Ranger registre dans 1 mot d,n,s,sf,x,sx,sxf

1111raaa STBYTEr Ranger registre (0-7) dans 1 octet d,n,s,sf,x,sx,sxf

(8)

6.2 8 directives Pep/8

Directive Signication

.BYTE Réserve 1 octet mémoire avec valeur initiale.

.WORD Réserve 1 mot mémoire avec valeur initiale.

.BLOCK Réserve un nombre d'octets mis à zéro.

.ASCII Réserve l'espace mémoire pour une chaîne de caractères (ex: "Chaîne").

.ADDRSS Réserve 1 mot mémoire pour un pointeur.

.EQUATE Attribue une valeur à une étiquette.

.END Directive obligatoire de n d'assemblage qui doit être à la n du code.

.BURN Le programme se terminera à l'adresse spéciée par l'opérande.

Ce qui suit .BURN est écrit en ROM.

6.3 Codes ASCII importants (hexadécimaux)

Codes ASCII Caractères

00 Caractère NUL

0A Caractère de saut de ligne '\n' (Enter)

20 Espacement ' '

30 Premier chire '0'

41 Premier caractère alphabétique majuscule 'A' 61 Premier caractère alphabétique minuscule 'a'

6.4 Adressages

Mode aaa a Lettres Opérande

Immédiat 000 0 i Spec

Direct 001 d mem[Spec]

Indirect 010 n mem[mem[Spec]]

Sur la pile 011 s mem[PP+Spec]]

Indirect sur la pile 100 sf mem[mem[PP+Spec]

Indexé 101 1 x mem[Spec + X]

Indexé sur la pile 110 sx mem[PP+Spec+X]]

Indirect indexé sur la pile 111 sxf mem[mem[PP+Spec]+X]

6.5 Registres

Symbole r Description Taille

N Négatif 1 bit

Z Nul (Zero) 1 bit

V Débordement (Overow) 1 bit

C Retenue (Carry) 1 bit

A 0 Accumulateur 2 octets (un mot)

X 1 Registre d'index 2 octets (un mot) PP Pointeur de pile (SP) 2 octets (un mot) CO Compteur ordinal (PC) 2 octets (un mot)

Spécicateur d'instruction 1 octet

Spec Spécicateur d'opérande 2 octets (un mot)

(9)
(10)

Feuille de réponses :

Code permanent :

. . . . Nom et prénom :

. . . . Les réponses aux questions sont à donner exclusivement sur cette feuille : les réponses données sur les

feuilles précédentes ne seront pas prises en compte.

Important : noircissez complètement l'intérieur de chaque case (pas de croix, pas de cercles).

Question 1 : A B C D Question 2 : A B C D E

Question 3 : A B C D E F G H Question 4 : A B C D E F G H Question 5 : A B C D

Question 6 : A B C D E F

Question 7 : A B C D E F G H Question 8 : A B C D E F G H Question 9 : A B C D E

Question 10 : A B C D E F G H I J Question 11 : A B C D E F G H I

Question 12 : A B C D E F G H I J K L M N O P Q R S T

Question 13 : A B C D E F G H I J K L M N O P Q R S T

Question 14 : A B C D E F G H I J K L M N O P Q R S T

Question 15 : A B C D E F G H I J K L M N O P Q R S T

Question 16 : A B C D E F G H I J K L M N O P Q R S T

Question 17 : A B C D E F G H I J K L M N O P Q R S T

Question 18 : A B C D E F G H I J K L M N O P Q R S T

Question 19 : A B C D E F Question 20 : A B C D E F

Question 21 : A B C D E F G H I Question 22 : A B C D E F

Références

Documents relatifs

[r]

(b) Réalisez un programme C faisant appel à une fonction prenant 8 paramètres, produisez le programme assembleur correspondant (option -S de gcc : gcc -S fichiersource)..

Cette dernière fait appel à une routine pour la recherche de l’élément minimum d’un tableau.

Dans chaque organisme, à l’occasion des opérations déterminant les bénéficiaires de mesures individuelles non automatiques en 2010, un examen des situations des salariés

Remarque : comme un seul nombre permet de savoir où l'on se trouve, on dit qu'on est en dimension 1.. Exercice 1 de

Pour que cette opération de vente soit prise en compte par le système d'information comptable de l'entreprise, il est nécessaire de l'enregistrer dans son journal. du client X

Quand on travaille sur un fichier, il faut connaître son nom, mais aussi le nom du répertoire où il se trouve, ainsi que la branche complète des répertoires dans lequel

Tracer en vert, la courbe représentative d’une fonction g définie sur [−2; 5] mais qui est non continue sur [−2; 5], cette courbe passant toujours par A, B et C ..?. Sur