mirror of
https://github.com/tiennm99/HCMUT.git
synced 2026-08-13 07:21:15 +00:00
Update lab 2.2
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user