Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
37
Task/String-matching/MIPS-Assembly/string-matching-1.mips
Normal file
37
Task/String-matching/MIPS-Assembly/string-matching-1.mips
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
InString:
|
||||
;input: $a0 = ptr to string 1
|
||||
; $a1 = ptr to string 2
|
||||
; assumes len($a1) <= len($a0)
|
||||
;out: $v0 = zero-based index where the second string is placed in the first.
|
||||
|
||||
;clobbers: $t0,$t1
|
||||
subiu sp,sp,4 ;set up a stack frame of 4 bytes.
|
||||
sw $a1,(sp)
|
||||
li $v0,0
|
||||
InString_again:
|
||||
lbu $t0,($a0)
|
||||
nop
|
||||
beqz $t0,InString_terminated
|
||||
nop
|
||||
|
||||
lbu $t1,($a1)
|
||||
nop
|
||||
beqz $t1,InString_terminated
|
||||
nop
|
||||
|
||||
bne $t0,$t1,InString_noMatch
|
||||
nop
|
||||
b InString_overhead
|
||||
addiu $a1,1
|
||||
|
||||
InString_noMatch:
|
||||
lw $a1,(sp) ;reset the substring pointer if the letters don't match
|
||||
addiu $v0,1 ;load delay slot
|
||||
InString_overhead:
|
||||
addiu $a0,1
|
||||
b InString_Again
|
||||
nop
|
||||
InString_terminated:
|
||||
addiu sp,sp,4
|
||||
jr ra
|
||||
nop
|
||||
41
Task/String-matching/MIPS-Assembly/string-matching-2.mips
Normal file
41
Task/String-matching/MIPS-Assembly/string-matching-2.mips
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
main:
|
||||
la $a0,MyString
|
||||
la $a1,Test1 ;this code was recompiled 5 times, testing a different string each time.
|
||||
jal InString
|
||||
nop
|
||||
|
||||
jal Monitor
|
||||
nop
|
||||
|
||||
|
||||
shutdown:
|
||||
nop ;Project 64 will detect an infinite loop and close the ROM if I don't have this nop here.
|
||||
b shutdown
|
||||
nop
|
||||
|
||||
|
||||
MyString: ;this was loaded into $a0
|
||||
.ascii "abcdefghijklmnopqrstuvwxyz"
|
||||
.byte 0
|
||||
.align 4
|
||||
;each of these was loaded into $a1 individually for testing
|
||||
Test1:
|
||||
.ascii "abc" ;InString returned 0
|
||||
.byte 0
|
||||
.align 4
|
||||
Test2:
|
||||
.ascii "xyz" ;InString returned 0x17 (decimal 23)
|
||||
.byte 0
|
||||
.align 4
|
||||
Test3:
|
||||
.ascii "def" ;InString returned 3
|
||||
.byte 0
|
||||
.align 4
|
||||
Test4:
|
||||
.ascii "z",0 ;InString returned 0x19 (decimal 25)
|
||||
.byte 0
|
||||
.align 4
|
||||
Test5:
|
||||
.ascii "1",0 ;InString returned 0x1A (decimal 26)
|
||||
.byte 0
|
||||
.align 4
|
||||
Loading…
Add table
Add a link
Reference in a new issue