Place a GETS subroutine where it says too.    ; Main program to test the subroutine GETS ; This program simply prompts for two strings and ; displays them back using PUTS ; -------------------------------------------------------------------------   .ORIG x3000   ; Set up the user stack: LD R6, STKBASE ; Sets up the stack by loading the base address into R6   ; Prompt for the first string: LEA R0, PRMPT1 ; Loads the address of PRMPT1 into R0 PUTS   ; Call GETS to get first string: LEA R0, STRNG1 ; Loads the address of STRNG1 ADD R6, R6, #-1 ; Push the address to store the string at STR R0, R6, #0 JSR GETS ; Call GETS ADD R6, R6, #2 ; Clean up (pop parameter & return value)   ; Prompt for second string: LEA R0, PRMPT2 ; Loads the address of PRMPT2 PUTS   ; Call GETS to get second string: LEA R0, STRNG2 ; Loads the address of STRNG2 ADD R6, R6, #-1 ; Push the second address to store the string at STR R0, R6, #0 JSR GETS ; Call GETS ADD R6, R6, #2 ; Clean up (pop parameter & return value)   ; Output both strings: LEA R0, OUT1 ; First string... PUTS LEA R0, STRNG1 PUTS LD R0, LF ; Print a linefeed OUT ; Write character to console (TRAP x21) LEA R0, OUT2 ; Second string. PUTS LEA R0, STRNG2 PUTS   HALT ; We are done   ; GLOBAL VARIABLES ; ---------------- STKBASE .FILL xFDFF ; The bottom of the stack will be xFDFF LF .FILL x0A ; A linefeed character STRNG1 .BLKW #80 ; Room for 79 characters (unpacked) + NULL STRNG2 .BLKW #80 ; Room for 79 characters (unpacked) + NULL PRMPT1 .STRINGZ "Please enter the first string: " PRMPT2 .STRINGZ "Please enter the second string: " OUT1 .STRINGZ "The first string was: " OUT2 .STRINGZ "The second string was: "   ; Professor's notes: ;===================================================================================== ; Place your GETS subroutine below the notes: ;===================================================================================== ; Subroutine GETS ; Paramters: Address - the address to store the string at ; ; Returns: Nothing ; ; Local variables ; Offset Description ; 0 Callee-saved register R0 ; -1 Callee-saved register R1 ; etc...

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
Place a GETS subroutine where it says too. 
 
; Main program to test the subroutine GETS
; This program simply prompts for two strings and
; displays them back using PUTS
; -------------------------------------------------------------------------
 
.ORIG x3000
 
; Set up the user stack:
LD R6, STKBASE ; Sets up the stack by loading the base address into R6
 
; Prompt for the first string:
LEA R0, PRMPT1 ; Loads the address of PRMPT1 into R0
PUTS
 
; Call GETS to get first string:
LEA R0, STRNG1 ; Loads the address of STRNG1
ADD R6, R6, #-1 ; Push the address to store the string at
STR R0, R6, #0
JSR GETS ; Call GETS
ADD R6, R6, #2 ; Clean up (pop parameter & return value)
 
; Prompt for second string:
LEA R0, PRMPT2 ; Loads the address of PRMPT2
PUTS
 
; Call GETS to get second string:
LEA R0, STRNG2 ; Loads the address of STRNG2
ADD R6, R6, #-1 ; Push the second address to store the string at
STR R0, R6, #0
JSR GETS ; Call GETS
ADD R6, R6, #2 ; Clean up (pop parameter & return value)
 
; Output both strings:
LEA R0, OUT1 ; First string...
PUTS
LEA R0, STRNG1
PUTS
LD R0, LF ; Print a linefeed
OUT ; Write character to console (TRAP x21)
LEA R0, OUT2 ; Second string.
PUTS
LEA R0, STRNG2
PUTS
 
HALT ; We are done
 
; GLOBAL VARIABLES
; ----------------
STKBASE .FILL xFDFF ; The bottom of the stack will be xFDFF
LF .FILL x0A ; A linefeed character
STRNG1 .BLKW #80 ; Room for 79 characters (unpacked) + NULL
STRNG2 .BLKW #80 ; Room for 79 characters (unpacked) + NULL
PRMPT1 .STRINGZ "Please enter the first string: "
PRMPT2 .STRINGZ "Please enter the second string: "
OUT1 .STRINGZ "The first string was: "
OUT2 .STRINGZ "The second string was: "
 
; Professor's notes:
;=====================================================================================
; Place your GETS subroutine below the notes:
;=====================================================================================
; Subroutine GETS
; Paramters: Address - the address to store the string at
;
; Returns: Nothing
;
; Local variables
; Offset Description
; 0 Callee-saved register R0
; -1 Callee-saved register R1
; etc...
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Knowledge Booster
Problems on Dynamic Programming
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education