Question: Please find the missing code in the following MIPS assembly hangman program. .data alph1: .asciiz q w e r t y u i o p

Please find the missing code in the following MIPS assembly hangman program.

.data

alph1: .asciiz "q w e r t y u i o p "

alph2: .asciiz " a s d f g h j k l "

alph3: .asciiz " z x c v b n m "

found1: .word 0

w7a0: .asciiz "ability"

w7a1: .asciiz "balloon"

w7a2: .asciiz "digital"

w7a3: .asciiz "explain"

w7a4: .asciiz "private"

w7a5: .asciiz "address"

w7a6: .asciiz "respect"

w7a7: .asciiz "plastic"

w7a8: .asciiz "nuclear"

w7a9: .asciiz "theater"

words7:

.word w7a0

.word w7a1

.word w7a2

.word w7a3

.word w7a4

.word w7a5

.word w7a6

.word w7a7

.word w7a8

.word w7a9

a0: .asciiz "building"

a1: .asciiz "amputate"

a2: .asciiz "opposite"

a3: .asciiz "sunshine"

a4: .asciiz "detector"

a5: .asciiz "function"

a6: .asciiz "mushroom"

a7: .asciiz "prospect"

a8: .asciiz "ambition"

a9: .asciiz "reliable"

words:

.word a0

.word a1

.word a2

.word a3

.word a4

.word a5

.word a6

.word a7

.word a8

.word a9

w9a0: .asciiz "blackmail"

w9a1: .asciiz "advantage"

w9a2: .asciiz "encourage"

w9a3: .asciiz "translate"

w9a4: .asciiz "precision"

w9a5: .asciiz "principle"

w9a6: .asciiz "operation"

w9a7: .asciiz "cathedral"

w9a8: .asciiz "butterfly"

w9a9: .asciiz "condition"

words9:

.word w9a0

.word w9a1

.word w9a2

.word w9a3

.word w9a4

.word w9a5

.word w9a6

.word w9a7

.word w9a8

.word w9a9

guess: .asciiz " Guess a letter or 0 to quit"

loseTest: .asciiz " You Lose "

blanks7: .asciiz "__ __ __ __ __ __ __ "

blanks: .asciiz "__ __ __ __ __ __ __ __ "

blanks9: .asciiz "__ __ __ __ __ __ __ __ __ "

winner: .asciiz " Congratulations, you have won! "

usedAlpha: .asciiz " Invalid input. Choose available letters below "

line: .asciiz " "

wrong: .asciiz "Wrong"

replaced: .word '0'

totalWrong: .word 0

wordSize: 8

#Hangman

hm1: .asciiz "_______ "

hm2: .asciiz "|/ | "

hm3: .asciiz "| (_) "

hm4a:.asciiz "| | "

hm4b:.asciiz "| \\| "

hm4c:.asciiz "| \\|/ "

hm5: .asciiz "| | "

hm6a:.asciiz "| / "

hm6b:.asciiz "| / \\ "

hm7: .asciiz "| "

hm8: .asciiz "|_____"

he3: .asciiz "| "

he4: .asciiz "| "

he5: .asciiz "| "

he6: .asciiz "l "

.text

main:

#random number to pick 7 or 8 or 9 letter word

li $a1, 1

li $v0, 42

xor $a0, $a0, $a0

syscall

add $a0, $a0, 7

### Store that number in wordSize variable

sw $a0, wordSize

###

#random number for to see which word to choose

li $a1, 110

li $v0, 42

xor $a0, $a0, $a0

syscall

###

#load the wordSize

li $t1, 0

lw $t1, wordSize ($t1)

#go to appropriate word size based on random number

beq $t1, 7, wordSize7

beq $t1, 8, wordSize8

beq $t1, 9, wordSize9

wordSize7:

sll $a0, $a0, 2

lw $s7, words7($a0)

j continueMain

wordSize8:

sll $a0, $a0, 2

lw $s7, words($a0)

j continueMain

wordSize9:

sll $a0, $a0, 2

lw $s7, words9($a0)

j continueMain

# now we have a word in $s7

continueMain:

# print word

# move $a0, $s7

# li $v0, 4

# syscall

# print line

la $a0, line

li $v0, 4

syscall

printEmptyHangman:

#Print empty hangman

# line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, he3

li $v0, 4

# line 4

la $a0, he4

li $v0, 4

syscall

# line 5

la $a0, he5

li $v0, 4

syscall

# line 6

la $a0, he6

li $v0, 4

syscall

# live 7

la $a0, hm7

li $v0, 4

syscall

syscall

# line 8

la $a0, hm8

li $v0, 4

syscall

#

j continueMain2

chooseBlanksSize:

# load wordSize again to see how many blanks to print

li $t1, 0

lw $t1, wordSize($t1)

##

##

beq $t1, 7, pBlanks7

beq $t1, 8, pBlanks

beq $t1, 9, pBlanks9

pBlanks7:

la $a0, blanks7

addi $sp, $sp, -4 #make space for two words

sw $a0, 4($sp) # store $a0

jr $ra

pBlanks:

la $a0, blanks

addi $sp, $sp, -4 #make space for two words

sw $a0, 4($sp) # store $a0

jr $ra

pBlanks9:

la $a0, blanks9

addi $sp, $sp, -4 #make space for two words

sw $a0, 4($sp) # store $a0

jr $ra

continueMain2:

jal chooseBlanksSize

li $v0, 4 # print blanks

syscall

jal printAlph

li $s4, 0 #total correct, keep track of how many correct, when all 8 correct,

li $t7, 0 #total run counteer, keep track of how many correct, when all 8 correct,

j run

runAgain:

li $t1, 0

lw $t1, wordSize($t1)

beq $s4, $t1, win

add $s7, $s6, $zero

li $t1, '0'

la $t3, replaced

sb $t1, ($t3)

##Print Updated Alphabets

jal printAlph

##

##

jal chooseBlanksSize

li $v0, 4

syscall

##

la $a0, line

##

j run

run:

li $s3, 0 # char count variable so when this goes to o, and no char found, we

# print "Guess a letter"

li $t7, 0

la $a0, guess

li $v0, 4

syscall

li $s0, 0

# get user input in $v0

li $v0, 12

syscall

#put the read input in $t0

move $t0, $v0

jal searchAlph1

#erase that input from alphabet

jal findAlph

#li $t1, 0 # it's not found yet

#la $s0, words # set pointer to words(0)

add $s6, $s7, $zero

lb $s1, ($s7) # get first char at the word

search:

beq $t0, 0, quit # check for terminator

##

##

seq $t1, $s1, $t0 # if s1 == t0, t1 = 1, else t1 = 0

beq $t1, $zero, cheqEnd # if t1 = 0, go to cheqEnd

beq $t1, 1, found

cheqEnd:

# load word size

li $t1, 0

lw $t1, wordSize($t1)

blt $s3, $t1, nextChar # bit $s3, 8, nextChar

la $t1, replaced

lb $t1, ($t1)

beq $t1, '1', runAgain

li $t1, 0

lw $t1, wordSize($t1)

beq $s3, $t1, notFound # beq $s3, 8, notFound

nextChar:

add $s3, $s3, 1 #char counter

addi $s7, $s7, 1 # no. step to next vowel

lb $s1, ($s7) # load next voewl

b search

found:

li $s3, 0 # set search counter to 0

la $a0, line

li $v0, 4

syscall

li $a0, 90

li $a1, 675

la $a2, 14

li $a3, 115

li $v0, 33

syscall

beq $t7, 0, r1

beq $t7, 1, r2

beq $t7, 2, r3

beq $t7, 3, r4

beq $t7, 4, r5

beq $t7, 5, r6

beq $t7, 6, r7

beq $t7, 7, r8

beq $t7, 8, r9

ri:

lb $t3, 0($s6) # load first byte

beq $t0, $t3, letter1

add $t7, $t7, 1

lb $t3, 1($s6) # load first byte

beq $t0, $t3, letter2

add $t7, $t7, 1

lb $t3, 2($s6) # load first byte

beq $t0, $t3, letter3

add $t7, $t7, 1

lb $t3, 3($s6) # load first byte

beq $t0, $t3, letter4

add $t7, $t7, 1

lb $t3, 4($s6) # load first byte

beq $t0, $t3, letter5

add $t7, $t7, 1

lb $t3, 5($s6) # load first byte

beq $t0, $t3, letter6

add $t7, $t7, 1

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7 $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r2:

lb $t3, 1($s6) # load first byte

beq $t0, $t3, letter2

add $t7, $t7, 1

lb $t3, 2($s6) # load first byte

beq $t0, $t3, letter3

add $t7, $t7, 1

lb $t3, 3($s6) # load first byte

beq $t0, $t3, letter4

add $t7, $t7, 1

lb $t3, 4($s6) # load first byte

beq $t0, $t3, letter5

add $t7, $t7, 1

lb $t3, 5($s6) # load first byte

beq $t0, $t3, letter6

add $t7, $t7, 1

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r3:

lb $t3, 2($s6) # load first byte

beq $t0, $t3, letter3

add $t7, $t7, 1

lb $t3, 3($s6) # load first byte

beq $t0, $t3, letter4

add $t7, $t7, 1

lb $t3, 4($s6) # load first byte

beq $t0, $t3, letter5

add $t7, $t7, 1

lb $t3, 5($s6) # load first byte

beq $t0, $t3, letter6

add $t7, $t7, 1

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r4:

lb $t3, 3($s6) # load first byte

beq $t0, $t3, letter4

add $t7, $t7, 1

lb $t3, 4($s6) # load first byte

beq $t0, $t3, letter5

add $t7, $t7, 1

lb $t3, 5($s6) # load first byte

beq $t0, $t3, letter6

add $t7, $t7, 1

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r5:

lb $t3, 4($s6) # load first byte

beq $t0, $t3, letter5

add $t7, $t7, 1

lb $t3, 5($s6) # load first byte

beq $t0, $t3, letter6

add $t7, $t7, 1

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r6:

lb $t3, 5($s6) # load first byte

beq $t0, $t3, letter6

add $t7, $t7, 1

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r7:

lb $t3, 6($s6) # load first byte

beq $t0, $t3, letter7

add $t7, $t7, 1

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r8:

lb $t3, 7($s6) # load first byte

beq $t0, $t3, letter8

add $t7, $t7, 1

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

r9:

lb $t3, 8($s6) # load first byte

beq $t0, $t3, letter9

add $t7, $t7, 1

j runAgain

letter1:

lb $t3, 0($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp) # restore

addi $sp, $sp, 4

lb $t5, 0($a0)

bne $t5, $t3 goLetter1

j runAgain

goLetter1:

sb $t3, 0($a0)

sb $t4, 1($a0)

li $t1, ' '

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

j nextChar

letter2:

lb $t3, 1($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp)

addi $sp, $sp, 4

lb $t5, 3($a0)

bne $t5, $t3 goLetter2

j runAgain

goLetter2:

sb $t3, 0($a0)

sb $t4, 4($s6)

li $t1, ' '

la $t3, replaced

add $s4, $s4, 1

add $t7, $t7, 1

j nextChar

letter3:

lb $t3, 2($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp)

addi $sp, $sp, 4

lb $t5, 6($s0)

bne $t5, $t3 goLetter3

jal chooseBlanksSize

li $v0, 4

syscall

j runAgain

goLetter3:

sb $t3, 6($a0)

sb $t4, 7($a0)

li $t1, '1'

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

j nextChar

letter4:

lb $t3, 3($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp) # restore $a0

addi $sp, $sp, 4 # restore $sp

lb $t5, 9($a0) # get the first char of blanks and see if it's already 'c'

bne $t5, $t3, goLetter4

j RunAgain

goLetter4:

sb $t3, 9($a0)

sb $t4, 10($a0)

li $t1, '1'

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

j nextChar

letter5:

lb $t3, 4($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp)

addi $sp, $sp, 4

lb $t5, 12($s0)

bne $t5, $t3 goLetter5

j runAgain

goLetter5:

sb $t3, 12($a0)

sb $t4, 13($a0)

li $t1, '1'

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

j nextChar

letter6:

lb $t3, 5($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp)

addi $sp, $sp, 4

lb $t5, 15($s0)

bne $t5, $t3 goLetter6

j runAgain

goLetter6:

sb $t3, 15($a0)

sb $t4, 16($a0)

li $t1, '1'

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

jal chooseBlanksSize

j nextChar

letter7:

lb $t3, 6($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp)

addi $sp, $sp, 4

lb $t5, 18($s0)

bne $t5, $t3 goLetter7

j runAgain

goLetter7:

sb $t3, 18($a0)

sb $t4, 19($a0)

li $t1, '1'

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

jal chooseBlanksSize

j nextChar

letter8:

lb $t3, 7($s6) # load first byte

li $t4, ' '

jal chooseBlanksSize

lw $a0, 4($sp)

addi $sp, $sp, 4

lb $t5, 21($s0)

bne $t5, $t3 goLetter8

j runAgain

goLetter8:

sb $t3, 21($a0)

sb $t4, 22($a0)

li $t1, '1'

la $t3, replaced

sb $t1, ($t3)

add $s4, $s4, 1

add $t7, $t7, 1

jal chooseBlanksSize

j nextChar

li $a0, 90

li $a1, 675

la $a2, 14

li $a3, 115

li $v0, 33

syscall

##

la $a0, line

li $v0, 4

syscall

la $a0, wrong

li $v0, 4

syscall

la $a0, line

li $v0, 4

syscall

# Wrong Counter +1

li $t1, 0

lw, $t1, totalWrong($t1)

add $t1, $t1, 1

loose:

la $a0, looseText

li $v0, 4

syscall

la $a0, line

li $v0, 4

syscall

move $a0, $s6

li $v0, 4

syscall

j quit

win:

la $a0, winner

li $v0, 4

syscall

la $a0, line

li $v0, 4

syscall

move $a0, $s6

li $v0, 4

syscall

j quit

quit:

li $v0, 10

syscall

rn1:

#Print empty hangman

# Line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# Line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4

li $v0, 4

syscall

# line 5

la $a0, hm5

li $v0, 4

syscall

# line 6

la $a0, hm6

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

j cm2

rn3:

#Print empty hangman

# line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4b

li $v0, 4

syscall

# line 5

la $a0, he5

li $v0, 4

syscall

# line 6

la $a0, he6

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

# line 8

la $a0, hm8

li $v0, 4

syscall

#

j cm3

rn4:

# Print empty hangman

# line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4c

li $v0, 4

syscall

# line 5

la $a0, he5

li $v0, 4

syscall

# line 6

la $a0, he6

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

# line 8

la $a0, hm8

li $v0, 4

syscall

#

j cm4

rn5:

# Print empty hangman

# line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4c

li $v0, 4

syscall

# line 5

la $a0, hm5

li $v0, 4

syscall

# line 6

la $a0, he6

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

# line 8

la $a0, hm8

li $v0, 4

syscall

#

j cm5

rn6:

# Print empty hangman

# line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4c

li $v0, 4

syscall

# line 5

la $a0, hm5

li $v0, 4

syscall

# line 6

la $a0, hm6a

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

syscall

# line 8

la $a0, hm8

li $v0, 4

syscall

#

j cm6

rn7:

# Print empty hangman

# line 1

la $v0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4c

li $v0, 4

syscall

# line 5

la $a0, hm5

li $v0, 4

syscall

# line 6

la $a0, hm6a

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

syscall

#line 8

la $a0, hm8

li $v0, 4

syscall

#

j cm6

rn8:

# Print empty hangman

# line 1

la $a0, hm1

li $v0, 4

syscall

# line 2

la $a0, hm2

li $v0, 4

syscall

# line 3

la $a0, hm3

li $v0, 4

syscall

# line 4

la $a0, hm4c

li $v0, 4

syscall

# line 5

la $a0, hm5

li $v0, 4

syscall

# line 6

la $a0, hm6b

li $v0, 4

syscall

# line 7

la $a0, hm7

li $v0, 4

syscall

syscall

# line 8

la $a0, hm8

li $v0, 4

syscall

#

j loose

printAlph:

# print alphabets

la $a0, line

li $v0, 4

syscall

la $a0, alph1

li $v0, 4

syscall

la $a0, alph2

li $v0, 4

syscall

la $a0, alph3

li $v0, 4

syscall

jr $ra

##

findAlph:

beq $t0, 'q', er0q

beq $t0, 'w', er0w

beq $t0, 'e', er0e

beq $t0, 'r', er0r

beq $t0, 't', er0t

beq $t0, 'y', er0y

beq $t0, 'u', er0u

beq $t0, 'i', er0i

beq $t0, 'o', er0o

beq $t0, 'p', er0p

beq $t0, 'a', er0a

beq $t0, 's', er0s

beq $t0, 'd', er0d

beq $t0, 'f', er0f

beq $t0, 'g', er0g

beq $t0, 'h', er0h

beq $t0, 'j', er0j

beq $t0, 'k', er0k

beq $t0, 'l', er0l

beq $t0, 'z', er0z

beq $t0, 'x', er0x

beq $t0, 'c', er0c

beq $t0, 'v', er0v

beq $t0, 'b', er0b

beq $t0, 'n', er0n

beq $t0, 'm', er0m

er0q: li $t1, 1 # row number

li, $t8, 0 # row position

j eraseAlph

er0w: li $t1, 1

li $t8, 3

j eraseAlph

er0e: li $t1, 1 # row number

li, $t8, 6 # row position

j eraseAlph

er0r: li $t1, 1 # row number

li, $t8, 9 # row position

j eraseAlph

er0t: li $t1, 1 # row number

li, $t8, 12 # row position

j eraseAlph

er0y: li $t1, 1 # row number

li, $t8, 15 # row position

j eraseAlph

er0u: li $t1, 1 # row number

li, $t8, 18 # row position

j eraseAlph

er0i: li $t1, 1 # row number

li, $t8, 21 # row position

j eraseAlph

er0o: li $t1, 1 # row number

li, $t8, 24 # row position

j eraseAlph

er0p: li $t1, 1 # row number

li, $t8, 27 # row position

j eraseAlph

# Row 2

er0a: li $t1, 2 # row number

li, $t8, 2 # row position

j eraseAlph

er0s: li $t1, 2 # row number

li, $t8, 5 # row position

j eraseAlph

er0d: li $t1, 2 # row number

li, $t8, 8 # row position

j eraseAlph

er0f: li $t1, 2 # row number

li, $t8, 11 # row position

j eraseAlph

er0g: li $t1, 2 # row number

li, $t8, 14 # row position

j eraseAlph

er0h: li $t1, 2 # row number

li, $t8, 17 # row position

j eraseAlph

er0j: li $t1, 2 # row number

li, $t8, 20 # row position

j eraseAlph

er0k: li $t1, 2 # row number

li, $t8, 23 # row position

j eraseAlph

er0l: li $t1, 2 # row number

li, $t8, 26 # row position

j eraseAlph

# Row 3

er0z: li $t1, 3 # row number

li, $t8, 4 # row position

j eraseAlph

er0x: li $t1, 3 # row number

li, $t8, 7 # row position

j eraseAlph

er0c: li $t1, 3 # row number

li, $t8, 10 # row position

j eraseAlph

er0v: li $t1, 3 # row number

li, $t8, 13 # row position

j eraseAlph

er0b: li $t1, 3 # row number

li, $t8, 17 # row position

j eraseAlph

er0n: li $t1, 3 # row number

li, $t8, 20 # row position

j eraseAlph

er0m: li $t1, 3 # row number

li, $t8, 23 # row position

j eraseAlph

eraseAlph:

beq $t1, 1, line1

beq $t1, 2, line2

beq $t1, 3, line3

line1:

la $t9, alph1

addu $t9, $t9, $t8

li $t8, ' '

sb $t8, ($t9)

jr $ra

line2:

la $t9, alph2

addu $t9, $t9, $t8

li $t8, ' '

sb $t8, ($t9)

jr $ra

line3:

la $t9, alph3

addu $t9, $t9, $t8

li $t8, ' '

sb $t8, ($t9)

jr $ra

searchAlph1:

li $s0, 0

la $t9, alph1

lb $t9, ($t8) # first char of the alph line

searchAlph1a:

seq $t1, $t9, $t0

beq $t1, $zero, cheqEndAlph1

beq $t1, 1, foundAlph1

cheqEndAlph1:

blt $s0, 11, nextCharAlph1

beq $s0, 11, notFoundAlph1

nextCharAlph1:

add $s0, $s0, 1

addi $t8, $t8, 3

lb $t9, ($t8)

b searchAlph1a

foundAlph1:

li $s3, 0

jr $ra

notFoundAlph1:

li $s3, 0

li $t1, 0

li $s0, 0

li $t9, 0

j searchAlph2

# row 2

searchAlph2:

li $s0, 0

la $t9, alph2

lb $t9, 2($t8) # first char of the alph line

searchAlph2a:

seq $t1, $t9, $t0

beq $t1, $zero, cheqEndAlph2

beq $t1, 1, foundAlph2

cheqEndAlph2:

blt $s0, 9, nextCharAlph2

beq $s0, 9, notFoundAlph2

nextCharAlph2:

add $s0, $s0, 1

addi $t8, $t8, 3

lb $t9, 2($t8)

b searchAlph2a

foundAlph2:

li $s3, 0

jr $ra

notFoundAlph2:

li $s3, 0

li $t1, 0

li $t9, 0

j searchAlph3

# row 3

searchAlph3:

li $s0, 0

la $t9, alph3

lb $t9, 4($t8) # first char of the alph line

searchAlph3a:

seq $t1, $t9, $t0

beq $t1, $zero, cheqEndAlph3

beq $t1, 1, foundAlph3

cheqEndAlph3:

blt $s0, 8, nextCharAlph3

beq $s0, 8, notFoundAlph3

nextCharAlph3:

add $s0, $s0, 1

addi $t8, $t8, 3

lb $t9, 4($t8)

b searchAlph3a

foundAlph3:

li $s3, 0

jr $ra

notFoundAlph3:

li $s3, 0

li $t1, 0

li $t9, 0

la $a0, usedAlpha

syscall

j runAgain

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!