Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

For the (pseudo) assembly code below, replace X, Y, P, and Q with the smallest s

ID: 3786231 • Letter: F

Question

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.

procA:
$s0 = ...
$s1 = ...
$s2 = ...
$t0 = ...
$t1 = ...
X
$a0 = ...
$a1 = ...
jal procB
Y
... = $s0
... = $t1
... = $a0
jr $ra

procB:
P
... = $a0
... = $a1
$s1 = ...
$t0 = ...
Q
jr $ra

Explanation / Answer


section   .text
global_start   ;must be declared for linker (gcc)
  
_start:   ;tell linker entry point
section.stack
; Save the AX and BX registers in the stack
PUSH AX
PUSH BX
mov   edx,$s0 ;message length
mov   ecx,$s1 ;message to write
mov   ebx,$s2 ;file descriptor (stdout)
mov   eax,$t0 ;system call number (sys_write)
int   0x80 ;call kernel
  
mov   edx,$t1 ;message length
mov   ecx,$a0 ;message to write
mov   ebx,$a1
equ $s0
equ $s1
equ $s2
   
push ecx
mov eax, $a0
mov ebx, $a1

jal procB
  
pop ecx  
mov   edx,$s0
mov ecx,$s1
mov ebx,$a0
jr $ra

; Restore the original values
POP   AX
POP   BX

section   .text
global_start   ;must be declared for linker (gcc)
  
_start:   ;tell linker entry point
section.stack
; Save the AX and BX registers in the stack
PUSH AX
PUSH BX
mov   edx,$a0 ;message length
mov   ecx,$a1 ;message to write
mov   ebx,$s1 ;file descriptor (stdout)
mov   eax,$t0 ;system call number (sys_write)
int   0x80 ;call kernel
  
pop ecx  
mov   edx,$s0
mov ecx,$s1
mov ebx,$a0
jr $ra
; Restore the original values
POP   AX
POP   BX


  


  

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote