×
Samples Blogs Make Payment About Us Reviews 4.9/5 Order Now

strcat routine in MIPS Homework Solution

June 23, 2024
Rehana Magnus
Rehana Magnus
🇨🇦 Canada
Assembly Language
Rehana Magnus, PhD in Computer Science from the esteemed Acadia Institute of Technology, Canada. With 6 years of experience, specializes in assembly language programming. Proficient in low-level coding, optimizing performance, and enhancing system functionality.
Key Topics
  • Enter two strings and Concatenate It
Tip of the day
Use the REPL (Read-Eval-Print Loop) to test your code interactively, and practice writing concise, readable expressions to harness Scala’s powerful syntax effectively.
News
In 2024, universities abroad, like Dublin City University, have introduced cutting-edge programming courses, including Computer Engineering programs focusing on AI and machine learning.

Enter two strings and Concatenate It

Write an assembly language assignment program with a subroutine STRCAT which will ask the user for two different strings and will display the concatenated string back to the user. A sample run of the program is:

MIPS

Solution

EXPORT main ; this line is needed to interface with init.s IMPORT GetCh ; Input one ASCII character from the UART #1 window (from keyboard) IMPORT PutCh ; Output one ASCII character to the UART #1 window IMPORT PutCRLF ; Output CR and LF to the UART #1 window IMPORT UDivMod ; Perform unsigned division to obtain quotient and remainder IMPORT GetDec ; Input a signed number from the UART #1 window IMPORT PutDec ; Output a signed number to the UART #1 window IMPORT GetStr ; Input a CR-terminated ASCII string from the UART #1 window IMPORT PutStr ; Output null-terminated ASCII string to the UART #1 window AREA MyCode, CODE, READONLY ALIGN main PUSH {LR} ; save return address of caller in init.s ; Prompt user to enter first string LDR R0, =Prompt1 BL PutStr ; Read string from keyboard, save in STR1 LDR R0, =STR1 MOV R1,#MaxSTR1 BL GetStr ; Prompt user to enter second string LDR R0, =Prompt2 BL PutStr ; Read string from keyboard, save in STR2 LDR R0, =STR2 MOV R1,#MaxSTR2 BL GetStr LDR R0,=STR1 ; point to start of first string LDR R1,=STR2 ; point to start of second string BL STRCAT ; concatenate strings using subroutine ; Print result message LDR R0, =Result BL PutStr ; Print concatenated string LDR R0, =STR1 BL PutStr POP {PC} ; return from main (our last executable instruction) ; Subroutine to concatenate the two strings with addresses R0 and R1 ; by adding second string at the end of the first one STRCAT PUSH {LR} ; save return address of caller LOOP1 LDRB R2, [R0] ; load character from first string CMP R2, #0 ; check if it's end of string BEQ LOOP2 ; if so, go to next loop ADD R0, R0, #1 ; else, increment position in string B LOOP1 ; repeat loop LOOP2 LDRB R2, [R1], #1 ; load character from second string and increment STRB R2, [R0], #1 ; save character in first string and increment CMP R2, #0 ; check if it's end of string BNE LOOP2 ; if not zero, repeat loop POP {PC} ; return from subroutine MaxSTR1 EQU 200 ; maximum string length for first string MaxSTR2 EQU 100 ; maximum string length for second string Prompt1 DCB "Enter STR1: ",0 Prompt2 DCB "Enter STR2: ",0 Result DCB "Your concatenated string: ",0 ALIGN AREA MyData, DATA, READWRITE STR1 SPACE MaxSTR1+1 STR2 SPACE MaxSTR2+1 ALIGN ;-------------------- END OF MODIFIABLE CODE ---------------------- ALIGN END ; end of source program in this file

Similar Samples

Explore our comprehensive collection of programming homework samples at ProgrammingHomeworkHelp.com. Our diverse examples cover various programming languages and topics, showcasing our proficiency in delivering clear, well-commented solutions. Whether you're struggling with algorithms, data structures, or software development projects, our samples provide valuable insights and guidance to excel in your programming assignments.