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 #
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
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.