Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write an ARM assembly language program which will replace a character in a strin

ID: 3621004 • Letter: W

Question

Write an ARM assembly language program which will replace a character in a string with another specified character and print the resulting string. You should return the pointer to the new string to the C program

The assembly subroutine’s definition is
extern char * subit( char * string, char this_c, char that_c )
where the first parameter is the pointer to the string to examine and replace characters,
the second parameter is the character to replace,
the third parameter is the replacement character.

The C driver code is below.
#include <stdlib.h>
#include <stdio.h>

extern char * subit( char *string, char this_c, cha that_c ) ;

int main( int argc, char *argv[] )
{
char this_c= ‘e’ ;
char that_c = ‘x’ ;
char orgstr[] = "The quick brown fox jumped over the lazy dog" ;
char * result ;

result = subit( orgstr, this_c, that_c ) ;
printf( “old: %s ”, orgstr ) ;
printf( “new: %s ”, result ) ;

exit( 0 ) ;
}

To obtain space for the new string you need to use the library routine malloc. This requires an input of the number of bytes to obtain, in register a1, and returns a pointer to the space requested, in register a1.
For example, to get a 17 byte buffer:
mov a1, #17
bl malloc
On return, register a1 will have a pointer to the memory space allocated.

You will need to use the previous assignment’s code to determine the actual string length.
You must use your string length function as a function.

Explanation / Answer

Dear, Here is the code to function subit Subit: stmfd sp!, {v1-v6, lr} ; standard entry mov v1, #0 ; set index to zero mov v4, #this_c ; this character mov v5, #that_c ; that character loop ldrb v3, [a1, v1] ; get element cmp v3,v4 be replace replace: mov v3,v5 ; replace character add v1, v1, #1 ; increment index cmp v3, #0 ; end of string bne loop ; have we done all? mov a1, v3 ; ldmfd sp!, {v1-v6, pc} ; standard exit Hope this will help you..

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote