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

convert exactly to ARM assembly language..using Raspbian OS on a raspberry pi..u

ID: 3590423 • Letter: C

Question


convert exactly to ARM assembly language..using Raspbian OS on a raspberry pi..using registers R0-R15

#include int main int number_1-0, number_2-0, sum-0, difference-0, product-0; printf( Hello! Welcome to Two Integers.Inln") printf( Enter an integer for first number: "); scanf("%d", &number-1;); printf( Enter an integer for second number: "); scanf("%d", &number-2;); sum = number1 + number2; difference - number_2 - number 1; product = number1 * number2; printf("The sum of %d and %d is %d ",number1,number-2,sum); printf("The difference of %d and %d is %d ",number1,number-2,difference); printf("The product of %d and %d is %d ",number-1 ,number-2,product); return 0;

Explanation / Answer

Please find the below assembly code.

.file        1 ""

                .section .mdebug.abi32

                .previous

                .nan       legacy

                .module               fp=32

                .module               nooddspreg

                .abicalls

                .rdata

                .align     2

$LC0:

                .ascii      "Hello! Welcome to Two IntegersAn"

                .align     2

$LC1:

                .ascii      "Enter an integer for first number: "

                .align     2

$LC2:

                .ascii      "%d"

                .align     2

$LC3:

                .ascii      "Enter an integer for second number: "

                .align     2

$LC4:

                .ascii      "The sum of %d and %d is %d "

                .align     2

$LC5:

                .ascii      "The difference of %d and %d is %d "

                .align     2

$LC6:

                .ascii      "The product of %d and %d is %d "

                .text

                .align     2

                .globl     main

                .set        nomips16

                .set        nomicromips

                .ent        main

                .type     main, @function

main:

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

                .mask    0xc0000000,-4

                .fmask 0x00000000,0

                .set        noreorder

                .cpload $25

                .set        nomacro

                addiu     $sp,$sp,-56

                sw          $31,52($sp)

                sw          $fp,48($sp)

                move    $fp,$sp

                .cprestore           16

                movz     $31,$31,$0

                sw          $0,36($fp)

                sw          $0,40($fp)

                sw          $0,24($fp)

                sw          $0,28($fp)

                sw          $0,32($fp)

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

                nop

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

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

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,puts

1:            jalr          $25

                nop

                lw           $28,16($fp)

                nop

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

                nop

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

                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($LC2)($28)

                nop

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

                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)

                nop

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

                nop

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

                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,40

                move    $5,$2

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

                nop

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

                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)

                lw           $3,36($fp)

                lw           $2,40($fp)

                nop

                addu      $2,$3,$2

                sw          $2,24($fp)

                lw           $3,40($fp)

                lw           $2,36($fp)

                nop

                subu      $2,$3,$2

                sw          $2,28($fp)

                lw           $3,36($fp)

                lw           $2,40($fp)

                nop

                mult       $3,$2

                mflo       $2

                sw          $2,32($fp)

                lw           $2,36($fp)

                lw           $3,40($fp)

                lw           $7,24($fp)

                move    $6,$3

                move    $5,$2

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

                nop

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

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

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,printf

1:            jalr          $25

                nop

                lw           $28,16($fp)

                lw           $2,36($fp)

                lw           $3,40($fp)

                lw           $7,28($fp)

                move    $6,$3

                move    $5,$2

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

                nop

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

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

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,printf

1:            jalr          $25

                nop

                lw           $28,16($fp)

                lw           $2,36($fp)

                lw           $3,40($fp)

                lw           $7,32($fp)

                move    $6,$3

                move    $5,$2

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

                nop

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

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

                nop

                move    $25,$2

                .reloc     1f,R_MIPS_JALR,printf

1:            jalr          $25

                nop

                lw           $28,16($fp)

                move    $2,$0

                move    $sp,$fp

                lw           $31,52($sp)

                lw           $fp,48($sp)

                addiu     $sp,$sp,56

                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"