Update lab 2.1

This commit is contained in:
2018-10-23 21:08:13 +07:00
parent d2c9764e3f
commit edb3e8645f
8 changed files with 269 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
#Data segment
.data
So1: .word 0
So2: .word 0
So3: .word 0
Ketqua: .word 0
#Cac cau nhac nhap du lieu
Nhap1: .asciiz "Nhap so thu 1: "
Nhap2: .asciiz "Nhap so thu 2: "
Nhap3: .asciiz "Nhap so thu 3: "
Xuat: .asciiz "Tong cua 3 so la: "
#Code segment
.text
.globl main
main:
#Nhap 3 so
la $a0, Nhap1 #Nhap so thu 1
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, So1
la $a0, Nhap2 #Nhap so thu 2
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, So2
la $a0, Nhap3 #Nhap so thu 3
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, So3
#Xu ly
lw $t0, So1
lw $t1, So2
add $t0, $t0, $t1
lw $t1, So3
add $t0, $t0, $t1
sw $a0, Ketqua
#Xuat ket qua
la $a0, Xuat
li $v0, 4
syscall
la $a0, 0($t0)
li $v0, 1
syscall
#exit
li $v0, 10
syscall
+10
View File
@@ -0,0 +1,10 @@
.data
Chuoi: .asciiz "Kien truc may tinh 2017"
.text
.globl main
main:
la $a0, Chuoi
li $v0, 4
syscall
li $v0, 10
syscall
+22
View File
@@ -0,0 +1,22 @@
.data
Chuoi: .space 11
Nhap: .asciiz "Nhap chuoi can xuat:\n"
Xuat: .asciiz "\nXuat chuoi:\n"
.text
.globl main
main:
la $a0, Nhap
li $v0, 4
syscall
la $a0, Chuoi
li $a1, 11
li $v0, 8
syscall
la $a0, Xuat
li $v0, 4
syscall
la $a0, Chuoi
li $v0, 4
syscall
li $v0, 10
syscall
+21
View File
@@ -0,0 +1,21 @@
.data
Const: .word 66000
.text
.globl main
main:
lw $t0, Const
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, 30
addi $t0, $t0, -6000
addi $t0, $t0, 25
ori $s0, $t0, 0
li $v0, 10
syscall
+16
View File
@@ -0,0 +1,16 @@
.data
Const: .word 66000
.text
.globl main
main:
lw $t0, Const
li $t1, 30
sll $t2, $t1, 3
sll $t1, $t1, 1
add $t1, $t1, $t2
add $t0, $t0, $t1
addi $t0, $t0, -6000
addi $t0, $t0, 25
ori $s0, $t0, 0
li $v0, 10
syscall
+88
View File
@@ -0,0 +1,88 @@
.data
a: .word 0
b: .word 0
c: .word 0
d: .word 0
x: .word 0
kq: .word 0
nhap_a: .asciiz "Nhap a: "
nhap_b: .asciiz "Nhap b: "
nhap_c: .asciiz "Nhap c: "
nhap_d: .asciiz "Nhap d: "
nhap_x: .asciiz "Nhap x: "
xuat: .asciiz "Ket qua cua bieu thuc la: "
.text
.globl main
main:
#Nhap a
la $a0, nhap_a
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, a
#Nhap b
la $a0, nhap_b
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, b
#Nhap c
la $a0, nhap_c
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, c
#Nhap d
la $a0, nhap_d
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, d
#Nhap x
la $a0, nhap_x
li $v0, 4
syscall
li $v0, 5
syscall
sw $v0, x
#Xu ly
lw $a0, x
lw $a1, a
jal times
ori $s0, $v0, 0
lw $a1, b
sub $s0, $s0, $a1
ori $a1, $s0, 0
jal times
ori $s0, $v0, 0
lw $a1, c
sub $s0, $s0, $a1
ori $a1, $s0, 0
jal times
ori $s0, $v0, 0
lw $a1, d
add $s0, $s0, $a1
sw $s0, kq
j exit
times:
ori $t0, $a0, 0
li $t1, 0
loop: beq $t0, 0, return
add $t1, $t1, $a1
addi $t0, $t0, -1
j loop
return: ori $v0, $t1, 0
jr $ra
exit:
la $a0, xuat
li $v0, 4
syscall
lw $a0, kq
li $v0, 1
syscall
li $v0, 10
syscall
+18
View File
@@ -0,0 +1,18 @@
.data
array: .word 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
kq: .asciiz "Ket qua la: "
.text
.globl main
main:
la $a0, array
lw $t0, 12($a0)
lw $t1, 24($a0)
addu $t0, $t0, $t1
la $a0, kq
li $v0, 4
syscall
move $a0, $t0
li $v0, 1
syscall
li $v0, 10
syscall
+43
View File
@@ -0,0 +1,43 @@
.data
string: .space 32
in: .asciiz "Nhap chuoi can bien doi: "
wrong: .asciiz "Chuoi da nhap khong hop le!"
out: .asciiz "Chuoi sau khi bien doi la: "
.text
.globl main
main:
la $a0, in
li $v0, 4
syscall
la $a0, string
li $a1, 32
li $v0, 8
syscall
move $t1, $a0
loop:
lb $t2, 0($t1)
addi $t1, $t1, 1
bnez $t2, loop
exe:
addi $t1, $t1, -3
ble $t1, $a0, error
lb $t4, 0($a0)
lb $t5, 0($t1)
sb $t4, 0($t1)
sb $t5, 0($a0)
j write
error:
la $a0, wrong
li $v0, 4
syscall
j exit
write:
la $a0, out
li $v0, 4
syscall
la $a0, string
li $v0, 4
syscall
exit:
li $v0, 10
syscall