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 symbole♣peuvent 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
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
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
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 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 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
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)
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