Question: If possible I would just love some help fixing this assembly code so it works as intended, I believe that the problem stems from lines
If possible I would just love some help fixing this assembly code so it works as intended, I believe that the problem stems from lines 102-104 where it says
move $a0 , $s1 li $v0, 1 syscall
the current output shows
Enter width of area to mulch in feet: 10 Enter length of area to mulch in feet: 20 Enter depth of of mulch in inches: 5
You need to cover 200 square feet
You need 4268501152 -- program is finished running (dropped off bottom) --
where it says "You need 4268501152" it is supposed to say "You need ", mulch, " cubic yards of mulch" and I'm not quite sure why this is happening
the assembly code below:
.data
getWidth: .asciiz "Enter width of area to mulch in feet: " getLength: .asciiz "Enter length of area to mulch in feet: " getDepth: .asciiz "Enter depth of of mulch in inches: " outMsg1: .asciiz " You need to cover " outMsg2: .asciiz " square feet " outMsg3: .asciiz "You need " outMsg4: .asciiz " cubic yards of mulch " .align 2
width: .word 0 length: .word 0 depth: .word 0
.text .globl main
#register map for main # # $s0 # $s1 mulch # # $t0 temporary for loading values
main:
# input data with prompts # input "Enter width in feet: ", width la $a0, getWidth li $v0, 4 syscall li $v0, 5 syscall sw $v0, width # input "Enter length in feet: ", length la $a0, getLength li $v0, 4 syscall li $v0, 5 syscall sw $v0, length # input "Enter depth in inches: ", depth la $a0, getDepth li $v0, 4 syscall li $v0, 5 syscall sw $v0, depth # compute area = width * length lw $t0, width lw $s0, length mul $s0, $t0, $s0 #compute volume = (area * depth + 11) / 12 lw $t0, depth mul $s1, $s0, $t0 addi $s1, $s1, 11 div $s1, $s1, 12 #compute mulch = (volume + 26) / 27 #this rounds up if result would have a remainder addi $s1, $s1, 26 div $s1, $s1, 27
#output #print "You need to cover ", area, " square feet" la $a0, outMsg1 li $v0, 4 syscall move $a0, $s0 li $v0, 1 syscall la $a0, outMsg2 li $v0, 4 syscall #print "You need ", mulch, " cubic yards of mulch" la $a0, outMsg3 li $v0, 4 syscall move $a0 , $s1 li $v0, 1 syscall la $a0, outMsg4 li $0, 4 syscall
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
