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

The following c++ code is used to reverse string array in place. #include <iostr

ID: 3606551 • Letter: T

Question

The following c++ code is used to reverse string array in place.

#include <iostream>

using namespace std;

void reverse(char [], int size);

void swap(char *x, char *y);

int main() {

char arr[] = "this is my string";

cout<<arr<<endl;

reverse(arr, 17);

cout<<arr<<endl;

return 0;

}

void reverse(char arr[], int size) {

for(int i=0, j=size-1; i<j; i++, j--) {

swap(&arr[i], &arr[j]);

}

}

void swap(char *x, char *y) {

char t = *x;

*x = *y;

*y = t;

}

write this c++ code in MIPS Assembly language.

Explanation / Answer

.data nl: .asciiz " " inputPrompt: .asciiz "Please enter an integer: " theString: .space 32 theInteger: .word 1 .text main: la $a0, inputPrompt #load address a0 with prompt li $v0, 4 #load system call, print string into v0 syscall li $v0, 5 #load system call, read int into v0 syscall sw $v0, theInteger #store saved int into $t0 li $v0, 8 #load system call, read string with mem address la $a0, theString #load address of reserved string space lw $a1, theInteger #load address of saved int length for string syscall lw $t0, theInteger add $a1,$zero,$t0 #pass lenght of string jal stringreverse #reverse the string stringreverse: add $t0,$a0,$zero #starting address add $t1,$zero,$zero #i = 0 addi $t2,$a1,-1 #j = length-1 loop: add $t3,$t0,$t1 lb $t4,0($t3) #the lb string[i] add $t5,$t0,$t2 lb $t6,0($t5) #the lb string[j] sb $t4,0($t5) #string[j] = string[i] sb $t6,0($t3) #string[i] = string[j] addi $t1,$t1,1 #i++ addi $t2,$t2,-1 #j-- slt $t6,$t2,$t1 beqz $t6,loop exit: li $v1, 4 #system call to print reversed string la $a2, 0($a1) syscall li $v0, 10 syscall

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