aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2025-10-05 16:28:33 +0200
committerAnhgelus Morhtuuzh <william@herges.fr>2025-10-05 16:28:33 +0200
commit85fbaa4d9381e435be129aa7bc4ea6a472acb2b2 (patch)
treea5d0149a7e70ec1ec24edd2fc0a6c2971e94130a /semestre 3/architecture des ordinateurs/tme/tme3/exercice5.asm
parent4c4b68ac62514cad87e023b877571d1952588d4e (diff)
Cours du 29 au 3 octobre
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