Do you need this or any other assignment done for you from scratch? We have qualified writers to help you. We assure you an A+ quality paper that is free from plagiarism. Order now for an Amazing Discount! Use Discount Code “Newclient” for a 10% Discount!
NB: We do not resell papers. Upon ordering, we do an original paper exclusively for you.
MUST USE MARS and MIPs code
MY CODE:
######### DATA ############
.data
prompt: .
MUST USE MARS and MIPs code
MY CODE:
######### DATA ############
.data
prompt: .asciiz “Enter 4 integers for A, B, C, D respectively:n”
newLine: .asciiz “n”
decimal: .asciiz “f_ten = ”
binary: .asciiz “f_two = ”
decimal2: .asciiz “g_ten = ”
binary2: .asciiz “g_two = ”
## Part B DATA ##
h_quotient: .asciiz “h_quotient = ”
remainder: .asciiz “h_remainder = ”
i_mod: .asciiz “i_mod = ”
f_ten: .word 49026
g_ten: .word 13122
############# TEXT ############
.text
.globl main
main:
#display prompt
li $v0, 4
la $a0, prompt
syscall
#Read A input in $v0 and store it in $t0
li $v0, 5
syscall
move $t0, $v0
#Read B input in $v0 and store it in $t1
li $v0, 5
syscall
move $t1, $v0
#Read C input in $v0 and store it in $t2
li $v0, 5
syscall
move $t2, $v0
#Read D input in $v0 and store it in $t3
li $v0, 5
syscall
move $t3, $v0
#Finding A^4
#Loop (AxA)
li $t6, 0
L1:
bge $t6, $t0, quit #Branch if greater than or equal
add $s1, $s1, $t0 # A=S+A => $s1= A^2
addi $t6, $t6, 1 # i=i+1
j L1 #jump
quit:
#Loop (A^2 x A^2)
li $t6, 0
L1A:
bge $t6, $s1, quit1A #Branch if greater than or equal
add $s5, $s5, $s1
addi $t6,$t6, 1
j L1A
#End of Finding A^4
#Finding 4xA^3
quit1A:
#Loop (4xB)
li $t6, 0
L2:
bge $t6, 4, quit2
add $s2, $s2, $t1
addi $t6, $t6, 1
j L2
quit2:
#Loop (BxB)
li $t6 , 0
L2A:
bge $t6, $t1, quit2A #loop2
add $s6, $s6, $t1 #add
addi $t6, $t6, 1 #add immediate
j L2A #loop2
quit2A: # perform proper program termination using syscall for exit
#Loop (BxB)
li $t6 , 0 #load immediate
L2AA:
bge $t6, $s2, quit2AA #loop2
add $t7, $t7, $s6 #add
addi $t6, $t6, 1 #add immediate
j L2AA #loop2
#End ofFinding 4xA^3
#Finding 3xC^2
quit2AA: # perform proper program termination using syscall for exit
#3 Loop (3 x (C x C)) FOR S3
li $t6 , 0 #load immediate
L3:
bge $t6, $t2, quit3 #loop3
add $s3, $s3, $t2 #add
addi $t6,$t6, 1 #add immediate
j L3 #loop3
quit3: # perform proper program termination using syscall for exit
#3 Loop (3 x (C x C)) FOR S3
li $t6 , 0 #load immediate
L3A:
bge $t6, 3, quit3A #loop3
add $s0, $s0, $s3 #add
addi $t6,$t6, 1 #add immediate
j L3A #loop3
#End of Finding 3xC^2
#Finding 2xD
quit3A: # perform proper program termination using syscall for exit
#4 Loop (2 x D) FOR S4
li $t6 , 0
L4:
bge $t6, 2, quit4 #loop4
add $s4, $s4, $t3 #add
addi $t6, $t6, 1 #add immediate
j L4 #Loop4
#End of Finding 2xD
#Finding AxB^2
quit4:
li $t6, 0
li $s1, 0
L5:
bge $t6, $t1, quit5
add $s1, $s1, $t1
addi $t6, $t6, 1
j L5
quit5:
li $t6, 0
li $s2, 0
L6:
bge $t6, $t0, quit6
add $s2, $s2, $s1
addi $t6, $t6, 1
j L6
#End of Finding AxB^2
#Finding C^2XD^3
quit6: #finds C^2
li $t6, 0
li $s1, 0
L7:
bge $t6, $t2, quit7
add $s1, $s1, $t2
addi $t6, $t6, 1
j L7
quit7: #finds D^2
li $t6, 0
li $s6, 0
L8:
bge $t6, $t3, quit8
add $s6, $s6, $t3
addi $t6, $t6, 1
j L8
quit8: #finds D^3
li $t6, 0
li $s7, 0
L9:
bge $t6, $t3, quit9
add $s7, $s7, $s6
addi $t6, $t6, 1
j L9
quit9: #finds C^2XD^3
li $t6, 0
li $s3, 0
L10:
bge $t6, $s1, end
add $s3, $s3, $s7
addi $t6, $t6, 1
j L10
#End of Finding C^2XD^3
end: # perform proper program termination using syscall for exit
#f is $t8
li $t8 , 0
sub $t8, $s5, $t7 # addition
add $t8, $t8, $s0 # subract
sub $t8,$t8, $s4 # subract
#g is $t9
li $t9 , 0
add $t9, $s2, $s3 # addition
#Display
#1st equation
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, decimal # Gives answer in decimal value
syscall # value entered is returned in register $v0
li $v0, 1 # display the answer string with syscall having $v0=1
move $a0, $t8 # moves the value from $a0 into $t8
syscall # value entered is returned in register $v0
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, newLine # puts newLine in between answers
syscall # value entered is returned in register $v0
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, binary # Gives answer in binary
syscall # value entered is returned in register $v0
li $v0, 35
move $a0, $t8 # moves the value from into $a0 from $t8
syscall # value entered is returned in register $v0
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, newLine # puts newLine in between answers
syscall # value entered is returned in register $v0
#2nd equation
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, decimal2 # Gives answer in decimal value
syscall # value entered is returned in register $v0
li $v0, 1 # display the answer string with syscall having $v0=1
move $a0, $t9 # moves the value from $a0 into $t8
syscall # value entered is returned in reg $v0
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, newLine # puts newLine in between answers
syscall # value entered is returned in register $v0
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, binary2 # Gives answer in binary
syscall # value entered is returned in register $v0
li $v0, 35
move $a0, $t9 # moves the value from into $a0 from $t8
syscall # value entered is returned in register $v0
li $v0,4 # display the answer string with syscall having $v0=4
la $a0, newLine # puts newLine in between answers
syscall # value entered is returned in register $v0
#end the program
li $v0, 10
syscall
################################################
# Monica Castro-Suarez — DATE: 2/9/2023
# f=(A^2-4B^3+3C^2-2D)
# g=(AB^2+C^2D^2)
# Week 5: Project 1 Part B
###############################################
###### PART B #######
#Get f and g values into s0 and s1 registers
lw $s0,f_ten
lw $s1,g_ten
#find f+g and store in s2 register
add $s2,$s0,$s1
#Variables for quotient and remainder
li $t0,0
li $t1,0
#loop for division f/g
Div:
ble $s0,0,nextComp
#f-g
sub $s0,$s0,$s1
#quotient
addi $t0,$t0,1
#Remainder
move $t1,$s0
j Div
nextComp:
beq $s0,0,printDiv
#If f goes to negative then remainder and quotient change
addi $t0,$t0,-1
add $t1,$s0,$s1
#Display qoutient and remainder in f/g
printDiv:
#Quotient display
li $v0,4
la $a0, h_qoutient
syscall
li $v0,1
move $a0,$t0
syscall
#Next line
li $v0,11
li $a0,10
syscall
#Remainder display
li $v0,4
la $a0,h_remainder
syscall
li $v0,1
move $a0,$t1
syscall
#mod calculation
li $t1,0
#Subtraction use to find mode
loopMod:
ble $s2,0,nextMod
sub $s2,$s2,$t0
move $t1,$s2
j loopMod
#if negative then add
nextMod:
beq $s2,0,printMode
add $t1,$t1,$s2
#Print mod details
printMode:
li $v0,11
li $a0,10
syscall
li $v0,4
la $a0,i_mod
syscall
li $v0,1
move $a0,$t1
syscall
#end of the program
li $v0,10
syscall
Do you need this or any other assignment done for you from scratch? We have qualified writers to help you. We assure you an A+ quality paper that is free from plagiarism. Order now for an Amazing Discount! Use Discount Code “Newclient” for a 10% Discount!
NB: We do not resell papers. Upon ordering, we do an original paper exclusively for you.