answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
NikAS [45]
2 years ago
10

For the (pseudo) assembly code below, replace X, Y, P, and Q with the smallest set of instructions to save/restore values on the

stack and update the stack pointer. Assume that procA and procB were written independently by two different programmers who are following the MIPS guidelines for caller-saved and callee-saved registers. In other words, the two programmers agree on the input arguments and return value of procB, but they can't see the code written by the other person.(50 points)
procA:
$s0 = ...
$s1 = ...
$s2 = ...
$t0 = ...
$t1 = ...
$t2 = ...
X
$a0 = ...
$a1 = ...
jal procB
Y
... = $s1
... = $t0
... = $t1
... = $a0
jr $ra

procB:
P
... = $a0
... = $a1
$s2 = ...
$t0 = ...
Q
jr $ra
Computers and Technology
1 answer:
Dimas [21]2 years ago
8 0

Answer:

Explanation:

Let us first consider the procedure procA; the caller in the example given.

  Some results: $s0,$s1,$s2, $t0,$t1 and $t2 are being stored by procA. Out of these registers, few registers are accessing by procA after a call to procB. But, procB might over-write these registers.

       Thus, procA need to save some registers into stack first before calling procB, .

      only $s1,$t0 and $t1 are being used after return from procB in the given example,

       Caller saves and restores only values in $t0-$t9, according to MIPS guidelines for caller-saved and callee-saved registers, .

       Thus, procA needs to save only $t0 and $t1.

    jal instruction overwrites the register $ra by writing the address, to which the control should jump back, after completing the instructions of procB, when procB is called,.

       Therefore, procA also need to save $ra into stack.

 ProcA is writing new values into $a0,$a2, procA must save $a0 and $a1 first before calling procB, .

     In the given example, after return from procB, only $a0 is being used. It is therefore enough to save $a0.

   Also, procA needs to save frame pointer, which points the start of the stack space for each procedure.

       Generally, as soon as the procedure begins, frame pointer is set to the current value of the stack pointer,.

Let us consider the procedure procB; the callee in the given example.

 The callee is responsible for saving values in $s0-$s7 and restoring them before returning to caller, this is according to MIPS guidelines for caller-saved and callee-saved registers,

   procB is expected to over-write the registers $s2 and $t0. Nonetheless, in the first two lines, procB might over-write the registers $s0 and $s1.

   Thus, procB is responsible for saving and restoring $s0,$s1 and $s2.

X:

We need to create space for 5 values on the stack since procA needs to save $a0,$ra,$t0,$t1 and $fp(frame pointer), . Each value(word) takes 4 bytes.

$sp = $sp – 20 # on the stack, create space for 5 values

sw $a0, 16($sp) # store the result in $a0 into the memory address

               # indicated by $sp+20

sw $ra, 12($sp) # save the second value on stack

sw $t0, 8($sp) # save the third value on stack

sw $t1, 4($sp) # save the fourth value on stack

sw $fp, 0($sp) #  To the stack pointer, save the frame pointer

$fp = $sp      #  To the stack pointer, set the frame pointer

Y:

lw $fp, 0($sp) #  from stack, start restoring values

lw $t1, 4($sp)

lw $t0, 8($sp)

lw $ra, 12($sp)

lw $a0, 16($sp)

$sp = $sp + 20 # decrease the size of the stack

P:

$sp = $sp – 12 #  for three values, create space on the stack

sw $s0, 0($sp) # save the value in $s0

sw $s1, 0($sp) # save the value in $s1

sw $s2, 0($sp) # save the value in $s2

Q:

lw $s0, 0($sp) #  from the stack, restore the value of $s0

lw $s1, 0($sp) #  from the stack, restore the value of $s1

lw $s2, 0($sp) #  from the stack, restore the value of $s2

$sp = $sp + 12 # decrease the stack size

You might be interested in
Which of the following is not a characteristic of a good value log entry
Stolb23 [73]
What are we supposed to find? Help us
6 0
1 year ago
Brandon purchased a new processor online as an upgrade. When he purchased the processor, he made sure that it used the same sock
Sergio039 [100]

D. You will not be able install the processor in the wrong motherboard.

<u>Explanation:</u>

Brandon before buying any microprocessor for upgrading in the mother board, Brandon has to take care of following things

1. Whether upgrade is possible, if possible where mother supports or not

2. Pick socket combination is correct or not.

3. After upgrading the microprocessor, Brandon has to check whether voltage and cooling fans fit in the same space in the mother board.

4. Whether existing ram type supports or not.

5. Sometimes once fixed removing upgrading microprocessor will damage the mother board.

Since Brandon has already concluded motherboard chipset compatibility is not been checked.

7 0
2 years ago
A user complains that her computer is performing slowly. She tells you the problem started about a week ago when new database so
k0ka [10]

Answer:

Option (B) is the correct of this question.

Explanation:

The performance of a monitor and process counters to observe the performance is the tool or method which determines the new software is hogging the computer resources. So this way the user don't have any problem with computer.

  • You can view log files in Windows Performance Monitor to see a visual representation of the performance counter data.
  • Performance counters are bits of code that log, count, and measure software events that allow a high-level view of user trends.
  • To customize the tracking of AD FS output using the Quality Monitor.
  • Type Output Monitor on Start screen, then click ENTER.
  • Expand Data Collector Sets in the console tree, right-click on User Specified, point to New, then select Data Collector Collection.

Other options are incorrect according to the given scenario.

4 0
2 years ago
Select the correct answer from each drop-down menu. Rita runs a small business that designs custom furnishings for corporate cli
LUCKY_DIMON [66]

Software as a Service cloud model is ideal for Rita’s business. SaaS are office solutions that allow Rita’s small business to work more efficiently and in a more organized way. Most SaaS applications are used for invoicing and accounting, sales, performance monitoring, and overall planning. SaaS applications can save Rita money. They do not require the deployment of a large infrastructure at her location. As a result, it drastically reduces the upfront commitment of resources. Whoever manages SaaS’s IT infrastructure running the applications brings down fees for software and hardware maintenance. SaaS has generally been acknowledged to be safer than most on-premise software.

5 0
2 years ago
Read 2 more answers
The ______________________ are incident management personnel that the incident commander or unified command assign to directly s
postnew [5]

Answer:

The Command Staff are the incident management personnel that the incident commander or unified command assign to directly support the command function.

Explanation:

Based on the information retrieved from the ICS (Incident Command System), to handle properly incidents that occur, Command Staff are assigned by the incident commander or unified command.

8 0
2 years ago
Other questions:
  • Edria was faced with a situation in which she was given sensitive information about twenty different clients, including their so
    13·2 answers
  • Which term describes a process by which malicious code can enter from a non-secure network, and make a hairpin, or sharp turn, a
    6·1 answer
  • 9. Which of the following are true for all regular languages and all homomorphisms? (a) h (L1 ∪ L2)= h (L1) ∩ h (L2). (b) h (L1
    5·1 answer
  • A network router connects multiple computers together and allows them to send messages to each other. If two or more computers s
    7·1 answer
  • Joe, Kate and Jody are members of the same family. Kate is 5 years older than Joe. Jody is 6 years older than Kate . The sum of
    11·2 answers
  • Show how the recursive multiplication algorithm computes XY, where X = 1234 and Y = 4321. Include all recursive computations.
    11·1 answer
  • (Java) Which of the following code segments correctly declare a Strings and gives it a value of "fortran".
    12·1 answer
  • 15. It is the process of capturing data or translating information to recording format
    12·1 answer
  • What temperature is most commonly used in autoclaves to sterilize growth media and other devices prior to experimentation
    9·1 answer
  • daniel wants to buy a computer to use for playing games after work. he loves racing games and wants to make sure his device has
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!