mirror of
https://github.com/tiennm99/KTMT.git
synced 2026-06-09 04:18:31 +00:00
71 lines
980 B
NASM
71 lines
980 B
NASM
.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
|