Take 4 numbers as an input from the user and perform the multiplication and then addition among the numbers using MIPS.
#1. read n1 n2 n3 n4
#2. mult
#3. add
# MIPS assembly
#************************************************
.data
msgEnd: .asciiz "\n...Finish"
msgEnterN: .asciiz "Enter N"
msgAnswer1: .asciiz "\nMultiply: "
msgAnswer2: .asciiz "\nAdd: "
# code segment
.text
.globl main
main:
li $v0,4 # print string
la $a0,msgEnterN # "Enter N"
syscall # make the syscall print string
li $v0,11 # print char
li $a0,'1' # 1
syscall
li $v0,11 # print char
li $a0,' ' # space
syscall
#reads and store the n1
li $v0, 5 # read int n1 to $v0
syscall # make the syscall read integer
move $t1, $v0
li $v0,4 # print string
la $a0,msgEnterN # "Enter N"
syscall # make the syscall print string
li $v0,11 # print char
li $a0,'2' # 2
syscall
li $v0,11 # print char
li $a0,' ' # space
syscall
#reads and store the n2
li $v0, 5 # read int n2 to $v0
syscall # make the syscall read integer
move $t2, $v0
li $v0,4 # print string
la $a0,msgEnterN # "Enter N"
syscall # make the syscall print string
li $v0,11 # print char
li $a0,'3' # 3
syscall
li $v0,11 # print char
li $a0,' ' # space
syscall
#reads and store the n3
li $v0, 5 # read int n3 to $v0
syscall # make the syscall read integer
move $t3, $v0
li $v0,4 # print string
la $a0,msgEnterN # "Enter N"
syscall # make the syscall print string
li $v0,11 # print char
li $a0,'4' # 4
syscall
li $v0,11 # print char
li $a0,' ' # space
syscall
#reads and store the n4
li $v0, 5 # read int n4 to $v0
syscall # make the syscall read integer
move $t4, $v0
mul $t0, $t1, $t2
mul $t0, $t0, $t3
mul $t0, $t0, $t4 # n1*n2*n3*n4
li $v0,4 # print string
la $a0,msgAnswer1 # "Multiply: "
syscall # make the syscall print string
add $a0, $0, $t0 # $a0 = n1*n2*n3*n4
li $v0, 1 # Print Integer
syscall # make the syscall print int
add $t0, $t1, $t2
add $t0, $t0, $t3
add $t0, $t0, $t4 # n1+n2+n3+*n4
li $v0,4 # print string
la $a0,msgAnswer2 # "Add: "
syscall # make the syscall print string
add $a0, $0, $t0 # $a0 = n1+n2+n3+n4
li $v0, 1 # Print Integer
syscall # make the syscall print int
finish:
li $v0,4 # print string
la $a0,msgEnd # "Finish"
syscall # make the syscall
li $v0, 10 # finished .. stop .. return
syscall
Comments
Leave a comment