Files
2018-10-23 23:01:45 +07:00

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