.data sentence: .ascii "Become a Prograammermmmmmrr\0" match: .ascii "abc \0" out: .space 256, 0 .text .align 2 .globl _start _start: la t0, sentence # Load the address of sentence into t0 read_str: lbu t1, 0(t0) # Load unsigned byte from sentence into t1 beq t1, zero, read_str_done # If end of string (\0), exit loop la a0, match # Load address of match into a0 la s2, out # Load address of out into s0 iteruj_match: lbu a1, 0(a0) # Load unsigned byte from match into a1 beq a1, zero, done_match # If end of match string (\0), exit inner loop bne t1, a1, 1f # If t1 != a1, skip increment lbu s10, 0(s2) # Load current counter value from out into s10 addi s10, s10, 1 # Increment counter sb s10, 0(s2) # Store updated counter back to out 1: addi s0, s0, 1 j iteruj_match # Jump back to start of inner loop done_match: addi t0, t0, 1 # Increment pointer to the next character in sentence j read_str # Jump back to start of outer loop read_str_done: ebreak # End program