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

How do you convert the following C code to Pep/9 assembly code #include <iostrea

ID: 3594995 • Letter: H

Question

How do you convert the following C code to Pep/9 assembly code

#include <iostream>

using namespace std;

int main()
{
int i, j, N;

/* Input number of rows from user */
printf("Enter number of rows: ");
scanf("%d", &N);

/* Iterate through N rows */
for(i=1; i<=N; i++)
{
/* Iterate over columns */
for(j=1; j<=N; j++)
{
/* Print star for each column */
printf("*");
  
int k;
for(k=1; i<=N; k--)
{
/* Print star for each column */
printf("+");
  
break;
  
}

  
}   
printf(" ");
/* Move to the next line/row */
printf(" ");
}

return 0;
}

Explanation / Answer

please find the below assembly code for your c code

.file        1 ""

                .section .mdebug.abi32

                .previous

                .nan       legacy

                .module               fp=32

                .module               nooddspreg

                .abicalls

                .comm std,4,4

                .rdata

                .align     2

$LC0:

                .ascii      "Enter number of rows: "

                .align     2

$LC1:

                .ascii      "%d"

                .text

                .align     2

                .globl     main

                .set        nomips16

                .set        nomicromips

                .ent        main

                .type     main, @function

main:

                .frame $fp,48,$31                                                           # vars= 16, regs= 2/0, args= 16, gp= 8

                .mask    0xc0000000,-4

                .fmask 0x00000000,0

                .set        noreorder

                .cpload $25

                .set        nomacro

                addiu     $sp,$sp,-48

                sw          $31,44($sp)

                sw          $fp,40($sp)

                move    $fp,$sp

                .cprestore           16

                movz     $31,$31,$0

                lw           $2,%got($LC0)($28)

                nop

                addiu     $4,$2,%lo($LC0)

                lw           $2,%call16(printf)($28)

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,printf

1:            jalr          $25

                nop

                lw           $28,16($fp)

                addiu     $2,$fp,36

                move    $5,$2

                lw           $2,%got($LC1)($28)

                nop

                addiu     $4,$2,%lo($LC1)

                lw           $2,%call16(__isoc99_scanf)($28)

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,__isoc99_scanf

1:            jalr          $25

                nop

                lw           $28,16($fp)

                li              $2,1                                        # 0x1

                sw          $2,24($fp)

                b             $L2

                nop

$L8:

                li              $2,1                                                                        # 0x1

                sw          $2,28($fp)

                b             $L3

                nop

$L7:

                li              $4,42                                                                     # 0x2a

                lw           $2,%call16(putchar)($28)

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,putchar

1:            jalr          $25

                nop

                lw           $28,16($fp)

                li              $2,1                                                                        # 0x1

                sw          $2,32($fp)

                nop

                lw           $2,36($fp)

                lw           $3,24($fp)

                nop

                slt           $2,$2,$3

                bne        $2,$0,$L5

                nop

                li              $4,43                                                                     # 0x2b

                lw           $2,%call16(putchar)($28)

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,putchar

1:            jalr          $25

                nop

                lw           $28,16($fp)

                nop

$L5:

                lw           $2,28($fp)

                nop

                addiu     $2,$2,1

                sw          $2,28($fp)

$L3:

                lw           $2,36($fp)

                lw           $3,28($fp)

                nop

                slt           $2,$2,$3

                beq        $2,$0,$L7

                nop

                               

                li              $4,10                                                                     # 0xa

                lw           $2,%call16(putchar)($28)

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,putchar

1:            jalr          $25

                nop

                lw           $28,16($fp)

                li              $4,10                                                                     # 0xa

                lw           $2,%call16(putchar)($28)

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,putchar

1:            jalr          $25

                nop

                lw           $28,16($fp)

                lw           $2,24($fp)

                nop

                addiu     $2,$2,1

                sw          $2,24($fp)

$L2:

                lw           $2,36($fp)

                lw           $3,24($fp)

                nop

                slt           $2,$2,$3

                beq        $2,$0,$L8

                nop

                move    $2,$0

                move    $sp,$fp

                lw           $31,44($sp)

                lw           $fp,40($sp)

                addiu     $sp,$sp,48

                j               $31

                nop

                .set        macro

                .set        reorder

                .end       main

                .size       main, .-main

                .ident    "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.1) 5.4.0 20160609"

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