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

mips .text main: li $a0, 0 jal putDec li $a0, \'\ \' li $v0, 11 syscall li $a0,

ID: 3824991 • Letter: M

Question

mips


   .text

main:
   li $a0, 0
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall
  
   li $a0, 1
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall
  
   li $a0, 196
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall
  
   li $a0, -1
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall
  
   li $a0, -452
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall
  
   li $a0, 2
   jal mystery
   move $a0, $v0
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall

   li $a0, 3
   jal mystery
   move $a0, $v0
   jal putDec
   li $a0, ' '
   li $v0, 11
   syscall

   li    $v0, 10       # terminate program
   syscall

putDec:
   ## FILL IN ##
  
       jr   $ra       # returnv

mystery: bne $0, $a0, recur    #
    li $v0, 0        #
    jr $ra            #
recur: sub $sp, $sp, 8    #
    sw $ra, 4($sp)    #
    sub $a0, $a0, 1    #
    jal mystery        #
    sw $v0, 0($sp)    #
    jal mystery        #
    lw $t0, 0($sp)    #
    addu $v0, $v0, $t0    #
    addu $v0, $v0, 1    #
    add $a0, $a0, 1    #
    lw $ra, 4($sp)    #
    add $sp, $sp, 8    #
    jr $ra            #

put Dec: li $v0, 1 syscall. li 1. li $v1 11 character print syscall li al, '1' li $v1, 11 character print syscall 1 prints the string li $v1, 4 la Sal, Str syscall. Str a SC 2 M-1" -1 prints the integer li sv1, 1 sprints the integer la Sal, -1 syscall.

Explanation / Answer

Solution:

Executable Code:

#include<stdio.h>
#include<string>
#include<conio.h>
#include<malloc.h>
#include<stdlib.h>
char* mystery(char* c,char *res,int n)
{
      
   if(n==0)
   {
       printf("%s",res);
       return res;
   }
   else  
   {
       char *res1=(char *)malloc(strlen(res)+strlen(c)+1);
       strcpy(res1, res);
       strcat(res1, c);
       mystery(c,res1,n-1);
   }
}
int main()
{
   char *res=new char[1];
   res="";
   mystery("0",res,5);
   printf(" ");
   mystery("1",res,5);
   printf(" ");
   mystery("196",res,5);
   printf(" ");
   mystery("-1",res,5);
   printf(" ");
   mystery("-452",res,5);
   printf(" ");
   mystery("3",res,5);
   printf(" ");
   mystery("7",res,5);
   printf(" ");
   mystery("32",res,5);
   getch();
   return 0;
}

Output:

00000
11111
196196196196196
-1-1-1-1-1
-452-452-452-452-452
33333
77777
3232323232