# Math Calculations in MIPS Assembly Assignment Sample

Write a program to solve the equation (3x+7)(2x+8), try with initial values of 0, 1 for x as that will make it easier to debug. Evaluate the expression 17xy – 12x – 6y + 12. Use symbolic addresses for x, y and answer. Write a program to calculate the average value of a byte array. Sum all the values from 1 to 100 using a loop. For more assembly language assignment help contact us for details.

Solution:

q1.asm

.text

main:

addi $t0, $0, 10 #storing the x

addi $t1, $0, 3

addi $t2, $0, 2

mult $t1, $t0 #3x

mflo $t3

addi $t4, $t3, 7 #3x+7

mult $t0, $t2 #2x

mflo $t5

addi $t6, $t5, 8 #2x+8

div $t7, $t4, $t6 #(3x+7)/(2x+8)

add $10, $t7, $0 #storing in $10 register

q2.asm

.data

x: .word 1

y: .word 1

answer: .space 20

.text

main:

lw $t0, x

lw $t1, y

addi $t2, $0, 17

addi $t3, $0, 12

addi $t4, $0, 6

mult $t0, $t1 #xy

mflo $t5

mult $t5, $t2 #17xy

mflo $t5

mult $t0, $t3 #12x

mflo $t6

mult $t1, $t4 #6y

mflo $t7

sub $t8, $t5, $t6 #17xy-12x

sub $t8, $t8, $t7 #17xy-12x-6y

add $10, $t8, $t4 #17xy-12x-6y+12, storing in $10

sw $10, answer

q3.asm

.data

x1: .byte 12

x2: .byte 97

x3: .byte 133

x4: .byte 82

x5: .byte 236

.text

main:

lbu $s0, x1 # load byte from memory & store as unsined int

add $s1, $s1, $s0 # add

lbu $s0, x2

add $s1, $s1, $s0

lbu $s0, x3

add $s1, $s1, $s0

lbu $s0, x4

add $s1, $s1, $s0

lbu $s0, x5

add $s1, $s1, $s0

addi $t0, $0, 5

divu $s1, $t0 # sum/5

mflo $s1

sw $s1, 0($sp) # store in a memory location

addi $10, $s1, # put result in $10

li $v0, 10

syscall

q4.asm

.data

.text

main:

addi $15, $0, 0 # sum

addi $s1, $0, 1 # counter

addi $s2, $0, 101 # termination

loop:

beq $s1, $s2, exit

add $15, $15, $s1 # sum += counter

addi $s1, $s1, 1 # counter ++

j loop

exit:

j exit

sll $0, $0, 0