Assignment Question

Activity Summary In this lab you will construct an assembly routine that puts the ASCII representation of an input string in memory at a specified location. The LC-3 machine language provides several useful TRAP calls for I/O. For example, GETC (TRAP x20) gets one character from the keyboard and places its ASCII code in RO. OUT (TRAP 021) performs the opposite function - it takes the contents of RO and outputs the specified character (using ASCII encoding) to the display. The LC-3 provides two output TRAPS for strings: PUTS (TRAP x22) and PUTSP (TRAP x24). Both of these expect (in RO) a starting address for a string, and output the encoded string to the display. Your task is to produce two programs that provide the "opposite" function of PUTS and PUTSP -that is, they take a string as input and place the string into memory at a location specified in RO. You will create two separate stand-alone programs: one for GETS and one for GETSP. The programs do not need to be implemented as subroutines or TRAP calls. Using the LC-3 simulator, you will construct an assembly-level program that prompts the user for a string (the end of the string will be delimited by the character x0A, the ASCII character "Enter"). You will store the ASCII string representation of this input (including a terminating NULL character) in memory. The "Enter" character should not be considered part of the string and thus should not be stored. For the purposes of demonstration, I would like you to store the string at address x3100 (add the appropriate code to your program) and show that you have successfully stored the string by printing it back to the display using PUTS or PUTSP. Your program will be located in memory at location x3000.
The following is an example output for both GETS.asm and GETSP.asm: Enter string to echo: inconceivable ! inconceivable !
Part 1:
Use canvas to turn in your well-commented assembly code implementing the GETS operation. Your program should be named GETS . ASK Note: Well-commented means "easy to follow high-level flow and design decisions". You do not have to comment every line of code, but you should have high-level comments for each 3-10 lines that represent a functional block of code or high-level idea. Your program should run correctly when the machine is randomized before loading your program!
Part 2:
Use canvas to turn in your well-commented assembly code for the GETSP operation. Your program should be named GETSP .ASM. You will also need to demonstrate your working program for the TA in the lab session on or before the due date. Your program should run correctly when the machine is randomized before loading your program, and for odd- or even-length strings.