205 lines
2.7 KiB
Plaintext
205 lines
2.7 KiB
Plaintext
.data
|
|
.text
|
|
__start:
|
|
jal main
|
|
li $v0, 10
|
|
syscall
|
|
main :
|
|
subi $sp, $sp, 4
|
|
sw $fp, 0($sp)
|
|
move $fp, $sp
|
|
subi $sp, $sp, 4
|
|
sw $ra, 0($sp)
|
|
li $t0, 3
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t1, e0
|
|
j e2
|
|
e0 :
|
|
li $t0, 4
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t2, 0($sp)
|
|
addi $sp, $sp, 4
|
|
or $t0, $zero, $t2
|
|
j e3
|
|
e2 :
|
|
move $t0 $t1
|
|
e3 :
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
addi $sp, $sp, 4
|
|
move $a0, $t0
|
|
li $v0, 1
|
|
syscall
|
|
li $a0, '\n'
|
|
li $v0, 11
|
|
syscall
|
|
li $t0, 3
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t1, e5
|
|
subi $sp, $sp, 4
|
|
sw $t1, 0($sp)
|
|
li $t0, 6
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t2, 0($sp)
|
|
addi $sp, $sp, 4
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t2, e5
|
|
and $t0, $t1, $t2
|
|
j e4
|
|
e5 :
|
|
li $t0 0
|
|
e4 :
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
addi $sp, $sp, 4
|
|
move $a0, $t0
|
|
li $v0, 1
|
|
syscall
|
|
li $a0, '\n'
|
|
li $v0, 11
|
|
syscall
|
|
li $t0, 3
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t1, e6
|
|
j e8
|
|
e6 :
|
|
li $v0 5
|
|
syscall
|
|
move $t0, $v0
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t2, 0($sp)
|
|
addi $sp, $sp, 4
|
|
or $t0, $zero, $t2
|
|
j e9
|
|
e8 :
|
|
move $t0 $t1
|
|
e9 :
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
addi $sp, $sp, 4
|
|
move $a0, $t0
|
|
li $v0, 1
|
|
syscall
|
|
li $a0, '\n'
|
|
li $v0, 11
|
|
syscall
|
|
li $t0, 3
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t1, e11
|
|
subi $sp, $sp, 4
|
|
sw $t1, 0($sp)
|
|
li $v0 5
|
|
syscall
|
|
move $t0, $v0
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t2, 0($sp)
|
|
addi $sp, $sp, 4
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t2, e11
|
|
and $t0, $t1, $t2
|
|
j e10
|
|
e11 :
|
|
li $t0 0
|
|
e10 :
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
addi $sp, $sp, 4
|
|
move $a0, $t0
|
|
li $v0, 1
|
|
syscall
|
|
li $a0, '\n'
|
|
li $v0, 11
|
|
syscall
|
|
li $t0, 0
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t1, e12
|
|
j e14
|
|
e12 :
|
|
li $v0 5
|
|
syscall
|
|
move $t0, $v0
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t2, 0($sp)
|
|
addi $sp, $sp, 4
|
|
or $t0, $zero, $t2
|
|
j e15
|
|
e14 :
|
|
move $t0 $t1
|
|
e15 :
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
addi $sp, $sp, 4
|
|
move $a0, $t0
|
|
li $v0, 1
|
|
syscall
|
|
li $a0, '\n'
|
|
li $v0, 11
|
|
syscall
|
|
li $t0, 0
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t1, e17
|
|
subi $sp, $sp, 4
|
|
sw $t1, 0($sp)
|
|
li $v0 5
|
|
syscall
|
|
move $t0, $v0
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t2, 0($sp)
|
|
addi $sp, $sp, 4
|
|
lw $t1, 0($sp)
|
|
addi $sp, $sp, 4
|
|
beq $zero, $t2, e17
|
|
and $t0, $t1, $t2
|
|
j e16
|
|
e17 :
|
|
li $t0 0
|
|
e16 :
|
|
subi $sp, $sp, 4
|
|
sw $t0, 0($sp)
|
|
lw $t0, 0($sp)
|
|
addi $sp, $sp, 4
|
|
move $a0, $t0
|
|
li $v0, 1
|
|
syscall
|
|
li $a0, '\n'
|
|
li $v0, 11
|
|
syscall
|
|
addi $sp, $sp 0 # desallocation variables locales
|
|
lw $ra, 0($sp)
|
|
addi $sp, $sp, 4
|
|
lw $fp, 0($sp)
|
|
addi $sp, $sp, 4
|
|
addi $sp, $sp, 4 #ignore valeur de retour
|
|
jr $ra
|