ai refactored

This commit is contained in:
mpabi 2025-03-11 11:20:41 +00:00
parent efee78f136
commit d42add2c88

View File

@ -1,50 +1,31 @@
.data
sentence:
.ascii "Become a Prograammermmmmmrr\0"
// ^
match:
.ascii "abc \0"
// ^
out:
.space 256, 0
.text .text
.align 2 .align 2
.globl _start .globl _start
_start: _start:
la t0, sentence # Load the address of sentence into t0
la t0, sentence # Load the address of sentence into t2
read_str: 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
lbu t1, 0(t0) la s0, out # Load address of out into s0
beq t1, zero, read_str_done
la a0, match
la s0, out
iteruj_match: iteruj_match:
lbu a1, 0(match) # Load unsigned byte from match into a1
beq a1, zero, done_match # If end of match string (\0), exit inner loop
lbu a1, 0(match) bne t1, a1, 1f # If t1 != a1, skip increment
beq a1, zero, done_match lbu s10, 0(out) # Load current counter value from out into s10
addi s10, s10, 1 # Increment counter
bne t1, a1, 1f sb s10, 0(out) # Store updated counter back to out
lbu s10, 0(out)
addi s10, s10, 1
sb s10, 0(out)
1: 1:
j iteruj_match j iteruj_match # Jump back to start of inner loop
done_match: done_match:
addi t0, t0, 1 # Increment pointer to the next character addi t0, t0, 1 # Increment pointer to the next character in sentence
j read_str j read_str # Jump back to start of outer loop
read_str_done: read_str_done:
ebreak # End program
ebreak # End program (or use an exit system call)