bonjour

j'ai besoin de lire depuis un fichier et stocker l'entier lu dans une case memoire et puis afficher l'entier lu. pour cela, j'ai fait le petit code suivant. (j'utilise MARS comme simulateur)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 
.data
fout : .asciiz "exemple.txt"
nb: .word
 
.text
#ouvrir le fichier pour lecture
li $v0, 13
la $a0, fout
li $a1, 0
li $a2,0
syscall
 
 
#lire les 10 premiers caractères du fichier (en fait y a qu un seul entier à lire qui est 120 par exemple)
li $v0, 14
move $a0, $s6
la $a1, nb
li $a2, 10
syscall
 
#fermer le fichier
li $v0,16
move $a0, $s6
syscall
 
#afficher l entier lu
la $a0, nb
li $v0, 1
syscall
le probleme c'est que au moment de l'affichage, y a un autre entier qui s'affiche et non pas le 120 que je viens de lire du fichier. par contre, si je fait appel au syscall qui permet d'afficher une chaine de caractère, alors l'entier s'affiche correctement.....je sais pas d'ou vient ce problème??