mirror of
https://github.com/tiennm99/HCMUT.git
synced 2026-08-13 15:20:58 +00:00
Update Lab3_1
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
.data
|
||||
nhapD: .asciiz "Nhap chieu dai: "
|
||||
nhapR: .asciiz "Nhap chieu rong: "
|
||||
xuatCV: .asciiz "\nChu vi: "
|
||||
xuatDT: .asciiz "\nDien tich: "
|
||||
dai: .float 0
|
||||
rong: .float 0
|
||||
cv: .float 0
|
||||
dt: .float 0
|
||||
.text
|
||||
.globl main
|
||||
main:
|
||||
#Nhap
|
||||
la $a0, nhapD
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, dai
|
||||
la $a0, nhapR
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, rong
|
||||
#Xu ly
|
||||
lwc1 $f1, dai
|
||||
lwc1 $f2, rong
|
||||
add.s $f3, $f1, $f2
|
||||
swc1 $f3, cv
|
||||
mul.s $f4, $f1, $f2
|
||||
swc1 $f4, dt
|
||||
#Xuat
|
||||
la $a0, xuatCV
|
||||
li $v0, 4
|
||||
syscall
|
||||
lwc1 $f12, cv
|
||||
li $v0, 2
|
||||
syscall
|
||||
la $a0, xuatDT
|
||||
li $v0, 4
|
||||
syscall
|
||||
lwc1 $f12, dt
|
||||
li $v0, 2
|
||||
syscall
|
||||
li $v0, 10
|
||||
syscall
|
||||
@@ -0,0 +1,178 @@
|
||||
.data
|
||||
xa: .float 0
|
||||
ya: .float 0
|
||||
xb: .float 0
|
||||
yb: .float 0
|
||||
xc: .float 0
|
||||
yc: .float 0
|
||||
a: .float 0
|
||||
b: .float 0
|
||||
c: .float 0
|
||||
two: .float 2.0
|
||||
inXA: .asciiz "Nhap xA: "
|
||||
inYA: .asciiz "Nhap yA: "
|
||||
inXB: .asciiz "Nhap xB: "
|
||||
inYB: .asciiz "Nhap yB: "
|
||||
inXC: .asciiz "Nhap xC: "
|
||||
inYC: .asciiz "Nhap yC: "
|
||||
outMax: .asciiz "(Cac) dinh co gia tri x lon nhat:\n"
|
||||
outErr: .asciiz "Ba diem da cho khong tao thanh tam giac!"
|
||||
outDT: .asciiz "Dien tich tam giac da cho la:\n"
|
||||
.text
|
||||
.globl main
|
||||
main: la $a0, inXA
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, xa
|
||||
la $a0, inYA
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, ya
|
||||
la $a0, inXB
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, xb
|
||||
la $a0, inYB
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, yb
|
||||
la $a0, inXC
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, xc
|
||||
la $a0, inYC
|
||||
li $v0, 4
|
||||
syscall
|
||||
li $v0, 6
|
||||
syscall
|
||||
swc1 $f0, yc
|
||||
lwc1 $f1, xa
|
||||
lwc1 $f2, xb
|
||||
lwc1 $f3, xc
|
||||
lwc1 $f4, ya
|
||||
lwc1 $f5, yb
|
||||
lwc1 $f6, yc
|
||||
mov.s $f27, $f1
|
||||
mov.s $f28, $f2
|
||||
mov.s $f29, $f3
|
||||
jal findM
|
||||
la $a0, outMax
|
||||
li $v0, 4
|
||||
syscall
|
||||
c.eq.s $f1, $f26
|
||||
bc1f skipf1
|
||||
mov.s $f31, $f1
|
||||
mov.s $f30, $f4
|
||||
jal print
|
||||
skipf1: c.eq.s $f2, $f26
|
||||
bc1f skipf2
|
||||
mov.s $f31, $f2
|
||||
mov.s $f30, $f5
|
||||
jal print
|
||||
skipf2: c.eq.s $f3, $f26
|
||||
bc1f skipf3
|
||||
mov.s $f31, $f3
|
||||
mov.s $f30, $f6
|
||||
jal print
|
||||
skipf3: mov.s $f8, $f1
|
||||
mov.s $f9, $f4
|
||||
mov.s $f10, $f2
|
||||
mov.s $f11, $f5
|
||||
jal cal
|
||||
swc1 $f7, c
|
||||
mov.s $f10, $f3
|
||||
mov.s $f11, $f6
|
||||
jal cal
|
||||
swc1 $f7, b
|
||||
mov.s $f8, $f2
|
||||
mov.s $f9, $f5
|
||||
jal cal
|
||||
swc1 $f7, a
|
||||
lwc1 $f27, a
|
||||
lwc1 $f28, b
|
||||
lwc1 $f29, c
|
||||
jal findM
|
||||
mov.s $f15, $f26
|
||||
jal findm
|
||||
mov.s $f17, $f26
|
||||
add.s $f16, $f27, $f28
|
||||
add.s $f16, $f16, $f29
|
||||
sub.s $f16, $f16, $f15
|
||||
c.le.s $f16, $f15
|
||||
bc1t error
|
||||
add.s $f18, $f16, $f15
|
||||
sub.s $f16, $f16, $f17
|
||||
lwc1 $f19, two
|
||||
div.s $f18, $f18, $f19
|
||||
mov.s $f19, $f18
|
||||
sub.s $f20, $f18, $f15
|
||||
mul.s $f19, $f19, $f20
|
||||
sub.s $f20, $f18, $f16
|
||||
mul.s $f19, $f19, $f20
|
||||
sub.s $f20, $f18, $f17
|
||||
mul.s $f19, $f19, $f20
|
||||
sqrt.s $f19, $f19
|
||||
la $a0, outDT
|
||||
li $v0, 4
|
||||
syscall
|
||||
mov.s $f12, $f19
|
||||
li $v0, 2
|
||||
syscall
|
||||
exit: li $v0, 10
|
||||
syscall
|
||||
findM: mov.s $f26, $f27
|
||||
c.le.s $f28, $f26
|
||||
bc1t Mskip
|
||||
mov.s $f26, $f28
|
||||
Mskip: c.le.s $f29, $f26
|
||||
bc1t Mret
|
||||
mov.s $f26, $f29
|
||||
Mret: jr $ra
|
||||
findm: mov.s $f26, $f27
|
||||
c.lt.s $f28, $f26
|
||||
bc1f mskip
|
||||
mov.s $f26, $f28
|
||||
mskip: c.lt.s $f29, $f26
|
||||
bc1f mret
|
||||
mov.s $f26, $f29
|
||||
mret: jr $ra
|
||||
print: li $a0, '('
|
||||
li $v0, 11
|
||||
syscall
|
||||
mov.s $f12, $f31
|
||||
li $v0, 2
|
||||
syscall
|
||||
li $a0, ';'
|
||||
li $v0, 11
|
||||
syscall
|
||||
mov.s $f12, $f30
|
||||
li $v0, 2
|
||||
syscall
|
||||
li $a0, ')'
|
||||
li $v0, 11
|
||||
syscall
|
||||
li $a0, '\n'
|
||||
li $v0, 11
|
||||
syscall
|
||||
jr $ra
|
||||
cal: sub.s $f13, $f10, $f8
|
||||
mul.s $f13, $f13, $f13
|
||||
sub.s $f14, $f11, $f9
|
||||
mul.s $f14, $f14, $f14
|
||||
add.s $f7, $f13, $f14
|
||||
sqrt.s $f7, $f7
|
||||
jr $ra
|
||||
error: la $a0, outErr
|
||||
li $v0, 4
|
||||
syscall
|
||||
j exit
|
||||
Reference in New Issue
Block a user