From 43aca20087074c2532ee30c4a989a72d5ef72df1 Mon Sep 17 00:00:00 2001 From: Minh Tien Nguyen Date: Tue, 23 Oct 2018 23:55:28 +0700 Subject: [PATCH] Update lab 2.3 --- KTMT/Lab2_3/1.asm | 33 ++++++++++++++++++++++ KTMT/Lab2_3/2.asm | 72 +++++++++++++++++++++++++++++++++++++++++++++++ KTMT/Lab2_3/3.asm | 12 ++++++++ 3 files changed, 117 insertions(+) create mode 100644 KTMT/Lab2_3/1.asm create mode 100644 KTMT/Lab2_3/2.asm create mode 100644 KTMT/Lab2_3/3.asm diff --git a/KTMT/Lab2_3/1.asm b/KTMT/Lab2_3/1.asm new file mode 100644 index 0000000..96eca1b --- /dev/null +++ b/KTMT/Lab2_3/1.asm @@ -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 diff --git a/KTMT/Lab2_3/2.asm b/KTMT/Lab2_3/2.asm new file mode 100644 index 0000000..b72d8a8 --- /dev/null +++ b/KTMT/Lab2_3/2.asm @@ -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 \ No newline at end of file diff --git a/KTMT/Lab2_3/3.asm b/KTMT/Lab2_3/3.asm new file mode 100644 index 0000000..29ef81a --- /dev/null +++ b/KTMT/Lab2_3/3.asm @@ -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