Update lab 2.3

This commit is contained in:
2018-10-23 23:55:28 +07:00
parent 88d8a9df75
commit 43aca20087
3 changed files with 117 additions and 0 deletions
+33
View File
@@ -0,0 +1,33 @@
.data
input: .asciiz "Nhap iNum: "
output: .asciiz "Ket qua la: "
.text
.globl main
main:
la $a0, input
li $v0, 4
syscall
li $v0, 5
syscall
move $a0, $v0
jal sum
or $s0, $v0, $zero
la $a0, output
li $v0, 4
syscall
or $a0, $s0, $zero
li $v0, 1
syscall
j exit
sum:
li $t0, 0
li $t1, 0
for:
add $t1, $t1, $t0
addi $t0, $t0, 1
blt $t0, $a0, for
or $v0, $t1, $zero
jr $ra
exit:
li $v0, 10
syscall
+72
View File
@@ -0,0 +1,72 @@
.data
a: .word 0
b: .word 0
c: .word 0
in1: .asciiz "Nhap so thu 1: "
in2: .asciiz "Nhap so thu 2: "
in3: .asciiz "Nhap so thu 3: "
out: .asciiz "Ket qua la: "
.text
.globl main
main:
la $a0, in1
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, a
la $a0, in2
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, b
la $a0, in3
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, c
lw $a0, a
lw $a1, b
lw $a2, c
jal range
la $a0, out
li $v0, 4
syscall
move $a0, $s2
li $v0, 1
syscall
li $v0, 10
syscall
range:
addi $sp, $sp, -4
sw $ra, 4($sp)
jal max
jal min
sub $s2, $s0, $s1
lw $ra, 4($sp)
addi $sp, $sp, 4
jr $ra
max:
addi $sp, $sp, -4
sw $ra, 4($sp)
move $s0, $a0
blt $a1, $s0, max1
move $s0, $a1
max1: blt $a2, $s0, max2
move $s0, $a2
max2: lw $ra, 4($sp)
addi $sp, $sp, 4
jr $ra
min:
addi $sp, $sp, -4
sw $ra, 4($sp)
move $s1, $a0
bgt $a1, $s1, min1
move $s1, $a1
min1: bgt $a2, $s1, min2
move $s1, $a2
min2: lw $ra, 4($sp)
addi $sp, $sp, 4
jr $ra
+12
View File
@@ -0,0 +1,12 @@
addi $a0, $zero, 10
addi $a1, $zero, 0
add $a2, $zero, $zero
loop:
beq $a0, $a1, exit
add $a2, $a2, $a1
addi $a1, $a1, 1
j loop
exit:
#a) 45
#b) 44
#c) 0x10040018