Question

MIPS Assembly Language * Write a simple program to count the number of non overlapping repetitions...

MIPS Assembly Language

* Write a simple program to count the number of non overlapping repetitions of a character pattern in a character string. For example " the pattern "aa" appears twice in the in the string "aabbaaa". Provide a user interface to read the character pattern and the string.

0 0
Add a comment Improve this question Transcribed image text
Answer #1


Function in Python searches for occurence of pattern 11 in '1011101111'
def function(string, str_to_search_for):
count = 0
for x in xrange(len(string) - len(str_to_search_for) + 1):
if string[x:x+len(str_to_search_for)] == str_to_search_for:
count += 1
return count


function('1011101111','11')
returns 5

pROGRAM IN x86
COUNTSTR CSECT
USING COUNTSTR,R13 base register
B 72(R15) skip savearea
DC 17F'0' savearea
STM R14,R12,12(R13) prolog
ST R13,4(R15) "
ST R15,8(R13) "
LR R13,R15 "
MVC SOMW_VAR,=CL32'TREE THREE THROUGH'
MVC LENH,=F'17' lh=17
MVC SOM_SHOP,=CL8'REE' SOM_SHOP='REE'
MVC LENN,=F'2' ln=2
BAL R14,SHOW call show
MVC SOMW_VAR,=CL32'SUNSUNSHINE '
MVC LENH,=F'11' lh=11
MVC SOM_SHOP,=CL8'SUN' SOM_SHOP='SUN'
MVC LENN,=F'4' ln=4
BAL R14,SHOW call show
L R13,4(0,R13) epilog
LM R14,R12,12(R13) "
XR R15,R15 "
BR R14 exit
HAYSTACK DS CL32 SOMW_VAR
SOM_SHOP DS CL8 SOM_SHOP
LENH DS F length(SOMW_VAR)
LENN DS F length(SOM_SHOP)
*------- ---- show---------------------------------------------------
SHOW ST R14,SAVESHOW save return address
BAL R14,COUNT count(SOMW_VAR,SOM_SHOP)
LR R11,R0 ic=count(SOMW_VAR,SOM_SHOP)
MVC PG(20),SOMW_VAR output SOMW_VAR
MVC PG+20(5),SOM_SHOP output SOM_SHOP
XDECO R11,PG+25 output ic
XPRNT PG,80 print buffer
L R14,SAVESHOW restore return address
BR R14 return to caller
SAVESHOW DS A return address of caller
PG DC CL80' ' buffer
*------- ---- count--------------------------------------------------
COUNT ST R14,SAVECOUN save return address
SR R7,R7 n=0
LA R6,1 istart=1
L R10,LENH lh
S R10,LENN ln
LA R10,1(R10) lh-ln+1
LOOPI CR R6,R10 do istart=1 to lh-ln+1
BH ELOOPI
LA R8,SOM_SHOP @SOM_SHOP
L R9,LENN ln
LA R4,SOMW_VAR-1 @SOMW_VAR[0]
AR R4,R6 +istart
LR R5,R9 ln
CLCL R4,R8 if substr(SOMW_VAR,istart,ln)=SOM_SHOP
BNE NOTEQ
LA R7,1(R7) n=n+1
A R6,LENN istart=istart+ln
NOTEQ LA R6,1(R6) istart=istart+1
B LOOPI
ELOOPI LR R0,R7 return(n)
L R14,SAVECOUN restore return address
BR R14 return to caller
SAVECOUN DS A return address of caller
* ---- -------------------------------------------------------
YREGS
END COUNTSTR


Output:
TREE THREE THROUGH REE 2
SUNSUNSHINE SUN 2

Add a comment
Know the answer?
Add Answer to:
MIPS Assembly Language * Write a simple program to count the number of non overlapping repetitions...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT