Update lab 2.2

This commit is contained in:
2018-10-23 23:01:45 +07:00
parent 6f5c79ad66
commit 88d8a9df75
6 changed files with 226 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
.data
a: .word 0
i: .asciiz "Input a: "
t: .asciiz "Computer Architecture is so easy!"
f: .asciiz "you are right!"
.text
.globl main
main:
la $a0, i
li $v0, 4
syscall
li $v0, 5
syscall
bgez $v0, true
la $a0, f
j exit
true: la $a0, t
exit: li $v0, 4
syscall
li $v0, 10
syscall
+46
View File
@@ -0,0 +1,46 @@
.data
a: .word 0
b: .word 0
c: .word 0
nhap_a: .asciiz "Nhap a: "
nhap_b: .asciiz "Nhap b: "
nhap_c: .asciiz "Nhap c: "
xuat_a: .asciiz "Ket qua a = "
.text
.globl main
main:
la $a0, nhap_a
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, a
la $a0, nhap_b
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, b
la $a0, nhap_c
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, c
lw $s0, a
lw $s1, b
lw $s2, c
blt $s0, -5, false
bgt $s0, 5, false
add $s0, $s1, $s2
j exit
false: sub $s0, $s1, $s2
exit: sw $s0, a
la $a0, xuat_a
li $v0, 4
syscall
lw $a0, a
li $v0, 1
syscall
li $v0, 10
syscall
+70
View File
@@ -0,0 +1,70 @@
.data
in: .word 0
a: .word 0
b: .word 0
c: .word 0
in_in: .asciiz "Nhap input: "
in_b: .asciiz "Nhap b: "
in_c: .asciiz "Nhap c: "
err: .asciiz "Gia tri nhap vao khong hop le!"
out_a: .asciiz "Gia tri cua a la: "
.text
.globl main
main:
la $a0, in_in
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, in
la $a0, in_b
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, b
la $a0, in_c
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, c
lw $s0, in
lw $s1, b
lw $s2, c
beq $s0, 0, case_1
beq $s0, 1, case_2
beq $s0, 2, case_3
beq $s0, 3, case_4
error: la $a0, err
li $v0, 4
syscall
j exit
case_1:
add $s3, $s1, $s2
j out
case_2:
sub $s3, $s1, $s2
j out
case_3:
add $t0, $s1, $zero
li $s3, 0
loop: beqz $t0, out
add $s3, $s3, $s2
addi $t0, $t0, -1
j loop
case_4:
beqz $s2, error
addi $s3, $zero, 0
addi $t0, $s2, 0
loop2: bgt $t0, $s1, out
add $t0, $t0, $s2
addi $s3, $s3, 1
j loop2
out:
sw $s3, a
lw $a0, a
li $v0, 1
syscall
exit: li $v0, 10
syscall
+42
View File
@@ -0,0 +1,42 @@
.data
nhap: .asciiz "Nhap n: "
loi: .asciiz "Gia tri nhap vao khong hop le!"
xuat: .asciiz "F(n) = "
.text
.globl main
main:
la $a0, nhap
li $v0, 4
syscall
li $v0, 5
syscall
move $s0, $v0
bltz $s0, error
la $a0, xuat
li $v0, 4
syscall
ble $s0, 1, out_01
addi $t0, $zero, 2
li $t1, 0
li $t2, 1
add $t3, $t1, $t2
loop: bge $t0, $s0, out
move $t1, $t2
move $t2, $t3
add $t3, $t1, $t2
addi $t0, $t0, 1
j loop
error:
la $a0, loi
li $v0, 4
syscall
j exit
out_01: move $a0, $s0
li $v0, 1
syscall
j exit
out: move $a0, $t3
li $v0, 1
syscall
exit: li $v0, 10
syscall
+30
View File
@@ -0,0 +1,30 @@
.data
found: .asciiz "Tim thay ky tu tai vi tri: "
chrArr: .asciiz "Computer Architecture CSE-HCMUT"
chr: .word 'e'
pos: .word 0
.text
.globl main
main:
la $a0, found
li $v0, 4
syscall
la $a0, chrArr
addi $t1, $zero, 0
lw $t2, chr
while:
add $a1, $a0, $t1
lb $t0, 0($a1)
beq $t0, $t2, done
beq $t0, $zero, null
addi $t1, $t1, 1
j while
null:
li $t1, -1
done:
move $a0, $t1
li $v0, 1
syscall
exit:
li $v0, 10
syscall
+17
View File
@@ -0,0 +1,17 @@
.data
string: .asciiz "Day la chuoi can xuat!"
.text
.globl main
main:
li $v0, 11
la $t1, string
while:
lb $a0, 0($t1)
beq $a0, $zero, exit
syscall
addi $t1, $t1, 1
j while
exit:
li $v0, 10
syscall