Question: Here is the skeleton code for a program in lc3 to prompt the user to enter a string, and display that string to the console.
Here is the skeleton code for a program in lc3 to prompt the user to enter a string, and display that string to the console. I have most of the code, but the parts that are empty (they are labeled) are required. ] Thank you! ; ; Program to repeat a string. ; Input: User enters a string, up to 30 characters ; Output: We store the string in memory and display it ; .ORIG x3000 ;*************************************** ;Part I: Initialize ;*************************************** ;We allocated memory for the string already. LEA r1, str1 ; addr of array to store string ;Why are we using LEA here and not LD or LDI? AND r3, r3, #0 ; to store the size of the string/array AND r2, r2, #0 ;Prompt user to enter the string LEA r0, prompt1 ;PUTS writes a string of ASCII characters to the console display ;from the address specified in R0. ;Writing terminates with the occurrence of x0000 PUTS ;*************************************** ;Part II: Read / Store the string ;*************************************** ; ; Start reading characters ; ;GETC is same as TRAP x20: Reads a char and stores its ASCII code in R0 loop GETC ; Read a character. ;ASCII for newline/carriage return is LF and it is stored at #10 ;________ ;Add a line here to check if the new char is a carriage return. BRZ done out ; echo character STR r0, r1, #0 ADD r1, r1, #1 ; advance ptr to array ;________ ;Add a line here to increment size of the array LD r6, EOL ADD r4, r3, r6 ; check if we reached max length BRN loop ;*************************************** ;Part III: Display the string ;*************************************** done ;________ ;Add a line here to append NULL at the end of string ;Keep the label done. What is the ASCII char for NULL? ;Why are we adding NULL to the end of our string? ;________ ;Add a line here to add a carriage return to your string/array out LEA r0, str1 PUTS HALT prompt1 .STRINGZ "Enter a string of 30 characters or less. " str1 .BLKW 30 ; Allocate memory for chars to be stored EOL .fill #-29 ; Limit of chars .end
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
