Question: Can someone help me complete this code. So the stuff I need help on are in the comments. So everywhere there is a comment, i

Can someone help me complete this code. So the stuff I need help on are in the comments. So everywhere there is a comment, i need to do what it says. I have the first half of the MIPS code already and need help with the remaining. Please read carefully to understand what it expected. For example, if the comment says # ending s7 'end_text' address, then that is what needs to be done for that line. Please use the code that is given. HELP PLEASE!!!!!

The Output must look like this:

# INPUT: "Two bee ore knot too Bea that"

# PATTERN:00011000100011000010001100010000

# ROTATE: 00110001000110000100011000100000

# AND: 00010000000010000000001000000000

# RESULT:"Two bee ore knot too Bea that "

###################CODE STARTS HERE ################

#write a MIPS assembler program to remove the extra blanks from

# a string:

# INPUT: "Two bee ore knot too Bea that"

# PATTERN:00011000100011000010001100010000

# ROTATE: 00110001000110000100011000100000

# AND: 00010000000010000000001000000000

# RESULT:"Two bee ore knot too Bea that "

.data

.eqv SYS_PRINT_WORD 1 #word, byte, character

.eqv SYS_PRINT_FLOAT 2 #float

.eqv SYS_PRINT_DOUBLE 3 #double

.eqv SYS_PRINT_TEXT 4 #text (zero terminated)

.eqv SYS_INPUT_WORD 5 #input word

.eqv SYS_INPUT_FLOAT 6 #input float

.eqv SYS_PRINT_BIN 35 #print binary

.eqv SYS_EXIT 10 #terminate

# declare variables

.eqv BLANK 32

#12345678901234567890123456789012

text: .ascii "Two bee ore knot too Bea that"

end_text: .asciiz " "

result: .ascii " "

end_result: .asciiz " "

blank: .byte ' '

endl: .asciiz " "

endl2: .asciiz " "

.text

.globl main

main:

# Print starting text

la $a0, text

li $v0, SYS_PRINT_TEXT

syscall

# ----------------------------------------------------------------

# Create the bit pattern with a 1 where each blanks exists

# ----------------------------------------------------------------

la $s7, end_text # s7 = ending address for loop

la $s1, text # s1 = text address

move $s0, $zero # s0 = the bit pattern

loop1:

sll $s0,$s0,1 # shift pattern left

lbu $t2, 0($s1) # get 'text' byte

li $t1, BLANK

bne $t1, $t2, noBlank # compare with BLANK

# set s0 bit0 for BLANK, else skip to noBlank, not setting bit0

ori $s0, $s0, 1

noBlank:

addiu $s1, $s1, 1 # move to next character

bne $s1, $s7, loop1 # loop1 if not done (s1 != s7)

move $a0, $s0 # print s0 pattern

li $v0, SYS_PRINT_BIN

syscall

la $a0, endl

li $v0, SYS_PRINT_TEXT

syscall

# ----------------------------------------------------------------

# Duplicate bit pattern, Rotate left, AND the two patterns

# should be where extra blanks exist

# ----------------------------------------------------------------

# print the AND pattern

# ----------------------------------------------------------------

# Copy 'text' into 'result' for each zero bit in s3 pattern

# ----------------------------------------------------------------

# ending s7 'end_text' address #DO ALL THESE COMMENTS IT SAYS WHAT NEEDS TO BE DONE

# source address 'text' in s0

# destination address 'result' in s1

loop2:

# rotate high bit to bit0

# test bit0

# skip if bit0 is 1

# get character at (s0)

# save character in (s1)

# advance s1 'result' address

skip:

# advance s0 'text' address

# loop2 if not done (s0 != s7)

# print 'result'

#---- terminate ---

exit:

li $v0, SYS_EXIT

syscall

#.end main

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!