aboutsummaryrefslogtreecommitdiff
path: root/semestre 3/architecture des ordinateurs/tme/tme5/exo4.asm
diff options
context:
space:
mode:
Diffstat (limited to 'semestre 3/architecture des ordinateurs/tme/tme5/exo4.asm')
-rw-r--r--semestre 3/architecture des ordinateurs/tme/tme5/exo4.asm29
1 files changed, 29 insertions, 0 deletions
diff --git a/semestre 3/architecture des ordinateurs/tme/tme5/exo4.asm b/semestre 3/architecture des ordinateurs/tme/tme5/exo4.asm
new file mode 100644
index 0000000..bac6a30
--- /dev/null
+++ b/semestre 3/architecture des ordinateurs/tme/tme5/exo4.asm
@@ -0,0 +1,29 @@
+.data
+val: .word 70
+tab: .word 42, 69, 420, 666, 1, 2, 0, -1
+.text
+ lui $8, 0x1001
+ ori $9, $0, 0 # n
+ lw $12, 0($8)
+ addiu $8, $8, 4
+ # cond d'arrĂȘt
+ or $13, $0, $0
+ ori $14, $0, 1
+ subu $13, $13, $14
+while:
+ # while tab[i] != '\0'
+ lw $10, 0($8)
+ beq $10, $13, end_while
+ slt $11, $10, $12
+ # if tab[i] < val
+ beq $11, $0, end_if
+ addiu $9, $9, 1
+end_if:
+ addiu $8, $8, 4
+ j while
+end_while:
+ ori $2, $0, 1
+ or $4, $0, $9
+ syscall
+ ori $2, $0, 10
+ syscall \ No newline at end of file