aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm')
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm24
1 files changed, 24 insertions, 0 deletions
diff --git a/semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm b/semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm
new file mode 100644
index 0000000..16cece8
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm
@@ -0,0 +1,24 @@
+.data
+.text
+ lui $3, 0xAABB
+ ori $3, $3, 0xCCDF
+
+ # variable définissant le bit qu'on déplace
+ ori $4, $0, 3
+ # on génère le mask pour sélectionner le bit
+st: ori $8, $0, 1 # est le mask
+ ori $9, $0, 3 # est le décallage pour le mask
+ subu $9, $9, $4 # le nombre de décallage du bit pour le mask
+ sllv $8, $8, $9 # on génére le mask
+ # on applique le mask
+ and $10, $3, $8 # on sélectionne le bon bit
+ srlv $10, $10, $4 # on décalle le bit
+ # on ajoute le résultat
+ or $5, $5, $10
+ # on boucle
+ ori $11, $0, 1
+ subu $4, $4, $11
+ bgez $4, st
+
+ ori $2, $0, 10
+ syscall \ No newline at end of file