Vous êtes sur la page 1sur 3

Université de Sidi Bel-Abbès

Faculté des Sciences Exactes


Département Informatique 1ère Année Universitaire 2022/2023

Corrigé FICHE TD N° 2 Initiation au Système d’Exploitation

La mémoire avant exécution


Exercice N° 1: Soit le programme suivant : @ hello_Message Code ascii de H
.data E
L
Hello_message: .asciiz ‘’HELLO WORLD\n’’ L
O
Area: .space 12 Code Ascii de Space
W
.text O
Main: la $t0 , Hello_message R
la $t1 , Area L
D
Again : lb $t2 , ($t0) \n
sb $t2 , ($t1) 00000000
beq $t2 , $zéro ,Stop @Area
addiu $t0 , $t0 , 1
addiu $t1 , $t1 , 1
J Again
Stop : li $v0 , 10
syscall
Déroulez à la main ce programme en déduire
ce qu’il fait ?
Code ascii de H La mémoire après exécution
E Solution Exo N°1
L
L
La directive ASCIIZ permet d’initialiser la zone d’adresse
O Hello_message avec la chaine HELLO WORLD\n et la termine
Code Ascii de Space Par un zéro terminal.
W
Après exécution Le programme recopie la chaine d’adresse
O
R HELLO_WORLD\n dans la zone d’adresse Area.
L Remarque : Au moment de l’assemblage(Compilation) le
D
Compilateur affecte aux adresses symboliques Hello_message
\n
00000000 Area, Mainn Again et Stop des adresses réelles en mémoire.
Code ascii de H
E
L
L
O
Code Ascii de Space
W
O
R
L
D
\n
Exercice N° 2:

.data
Donnée : .word -2023 # 2023 est une valeur entière négative
Année: .float 2023 # 2023 est une valeur réelle positive
.text
la $t2 , Donnée
lw $t3 , ($t2)
la $t2 , Année
l.s $f3 , ($t2) Solution
a) Quel est le contenu du registre T3 après exécution du programme. ?
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 1
b) Quel est le contenu du registre F3 après exécution du programme. ?
S- Exposant +127 -------------------------- Mantisse --------------------------------
1| 8 Bits | 23 Bits
0 1 0 0 0 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0
c) Comment est disposée la valeur réelle 2023 en mémoire ? Sachant que Année à
pour adresse 0x 10010000
0x 10010000 0 0 0 0 0 0 0 0
0x 10010001 1 1 1 0 0 0 0 0
0x 10010010 1 1 1 1 1 1 0 0
0x 10010011 0 1 0 0 0 1 0 0

Exercice N° 3 : Ecrire un programme en assembleur MIPS qui permet de


de lire une valeur entière positive puis d’évaluer la somme S = 1+2+3 + …. N
et enfin d’ afficher cette somme en utilisant la formule S= (N)*(N+1)/2
a) La valeur N est lue à partir du clavier et la somme est affichée sur écran.
.data
Entrée : .asciiz " Donnez une valeur
entièreN="
Sortie : .asciiz "La somme est égale à:\n"
.text
la $a0,Entrée
li $v0,4
syscall
li $v0,5
syscall
move $t0,$v0
addi $t1,$t0,1
mul $t2,$t0,$t1
div $t2,$t2,2
la $a0,Sortie
li $v0,4
syscall
move $a0,$t2
li $v0,1
syscall
li $v0, 10
syscall
b) La valeur N est lue à partir d’une boite de dialogue et la somme est
affichée également sur une boite de dialogue .

.data
Entrée : .asciiz " Donnez une valeur entièreN="
Sortie : .asciiz "La somme est égale à:\n"
.text
Début: li $v0,51
la $a0,Entrée
syscall
bltz $a1,Début
bltz $a0,Début
move $t0,$a0
addi $t1,$t0,1
mul $t2,$t0,$t1
div $a1,$t2,2
la $a0,Sortie
li $v0,56
syscall
li $v0, 10
syscall

Vous aimerez peut-être aussi