Vous êtes sur la page 1sur 2

TP4 : La mémoire

-L’adressage mémoire-

1. Dans l’architecture MIPS R3000, l’espace adressable est divisé en deux segments : le
segment utilisateur, et le segment noyau.

- Déterminer l’espace adressable de chaque segment, c’est à dire donner l’adresse début et
fin (en hexa) de chaque espace en suivant ce format :

segment utilisateur [adresse début, adresse fin]

segment système (ou noyau) [ adresse début, adresse fin]

- Donner la capacité de chaque segment en utilisant la formule suivante :


Capcité=adr_fin- adr_début

2. Un programme utilisateur utilise généralement trois sections dans le segment utilisateur :


Nom de la Contient Mode de Elle est implantée à Capacité du
section fonctionnement l’adresse segment
text le code utilisateur 0x00400000
exécutable(le
programme
source)
data
stack
ktext
kdata
kstack

3. Il existe trois modes d’adressage : R, I et J.

Déterminer le mode d’adressage utilisé dans chacune des instructions suivantes en remplissant le
tableau ci-dessous :

Code opération Opérande 1 Opérande 2 Registre Résultat Mode d’adressage


add $2 $0 $4=$2+$0=$2 R

 add $4, $2, $0


 addi $2, $0, 10
 la $20, a
 la $4, lire
 la $5, read
 li $9, 0x1234567
 J READ
4. Déclarez ces variables dans la zone du programme assembleur portant la directive
d’assemblage .data puis observez leur disposition en mémoire dans le data segment :

A: .byte 8

B: .byte 16, 30

C: .half 26, 5

D : .word 33,10,41,56,200

Car: .byte ‘h’

Chaine1: .ascii « hello »

Chaine2: .asciiz « hello » # termine la chaîne par NULL (0). Le but est de faire savoir au

# compilateur la fin de la chaîne.

Ch : .asciiz ‘H’

Tab: .space 10

Dites, pour chacune de ces lignes, à quelle adresse mémoire (de la section data segment) est stockée la
donnée, en renseignant le tableau ci-dessous :

Nom de la type Taille du type Valeur dans image en Adresse mémoire


variable (.data) mémoire début des valeurs
A byte
B byte 1 octet
B
C
C 5
D 33
D
D
D
D
Car
Chaine1
Chaine2
Ch
tab

Vous aimerez peut-être aussi