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
31
|
.data
.text
lui $3, 0xAABB
ori $3, $3, 0xCCDD
# on sélectionne o_1, on le décalle de 3, on l'ajoute
# on sélectionne o_2, on le décalle de 2, on l'ajoute
# on sélectionne o_3, on le décalle de 1, on l'ajoute
# on sélectionne o_4, on le décalle de 0, on l'ajoute
ori $6, $0, 31 # est le nombre - 1 de bit à modifier
or $7, $0, $6 # est notre i de la boucle qui bouge
repeat:
ori $8, $0, 1 # masque
sub $10, $6, $7 # décallage pour sélection
sllv $8, $8, $10 # on adapte notre masque pour prendre le bon
and $9, $3, $8 # on sélectionne le bit
srlv $9, $9, $10 # on remet le bit à l'origine
sllv $9, $9, $7 # on le décalle
or $4, $4, $9 # on l'ajoute
# on calcule le nouveau i dans $7
ori $12, $0, 1
sub $7, $7, $12
# on boucle si $7 >= 0
bgez $7, repeat
ori $2, $0, 35
syscall
ori $2, $0, 10
syscall
|