L3 – Informatique D. Etiemble
Mise à niveau 2007-08
1/2
Un jeu d’instructions RISC simple : NIOS II
Dans ce TD, on utilise le jeu d’instruction NIOS II (processeur « logiciel » pour FPGA Altera).
Q 1) On considère l’instruction ADD. Donner la plus grande valeur et la plus petite valeur
représentable dans les registres en supposant que les registres contiennent des entiers signés en
complément à deux. Pour les deux valeurs, on demande la forme hexadécimale et son équivalent
décimal.
Q 2) Même question que Q 1) en supposant que les registres contiennent des entiers non signés.
Registre Contenu (hexa) Adresse (hexa) Contenu (hexa)
R0 00000000 00001000 00000001
R1 00001000 00001004 00000002
R2 00001016 00001008 FEDC8765
R3 8432A380 0000100C 000000A4
R4 ECDF1234 00001010 00000005
R5 89765432 00001014 00000006
R6 12345678
R7 2ABCDEF0
Table 1
Q 3) En partant à chaque fois du contenu de la table 1, donner le contenu des registres après
exécution des instructions NIOS II. On considérera que les registres contiennent des entiers signés
en complément à deux. Dans chaque cas, on considérera que l’instruction est à l’adresse 1000 0000
H.
a) ADD R8,R1,R2
b) ADD R9,R6,R7
c) SUB R9, R1,R2
d) SUB R10, R6,R7
Indiquer si le résultat est correct ou non.
En supposant que les registres contiennent maintenant des entiers non signés, donner le contenu des registres
après exécution des instructions
e) ADD R8,R1,R2
f) ADD R9,R6,R7
Indiquer si le résultat est correct ou non
Q 4) En partant à chaque fois du contenu de la table 1, donner le contenu des registres après
exécution des instructions NIOS II. On considérera que les registres contiennent des entiers signés
en complément à deux. Dans chaque cas, on considérera que l’instruction est à l’adresse 1000 0000
H.
a) ADDI R8,R1,-4
b) ADD R9,R4,10
Q 5) En partant à chaque fois du contenu de la table 1, donner le contenu des registres après
exécution des instructions NIOS II. Dans chaque cas, on considérera que l’instruction est à
l’adresse 1000 0000
H
a) AND R10,R3,R4
b) XOR R11,R3,R4
c) OR R12,R3,R4
Q 6) Sans utiliser l’instruction de multiplication, écrire la suite d’instructions permettant de ranger
dans R2 les valeurs suivantes
a) R1*8
b) R1*10
c) R1*31
d) R1/16
Q 7) Comment charger dans le registre R1 les valeurs suivantes