his is what I have so far I need help with the commenting on the assembly code    I have included my C code that this assembly was generated from  My assembly code largest(int*, int):         push    rbp         mov     rbp, rsp         mov     QWORD PTR [rbp-24], rdi         mov     DWORD PTR [rbp-28], esi         mov     rax, QWORD PTR [rbp-24]         mov     eax, DWORD PTR [rax]         mov     DWORD PTR [rbp-4], eax         mov     DWORD PTR [rbp-8], 1         jmp     .L2 .L4:         mov     eax, DWORD PTR [rbp-8]         cdqe         lea     rdx, [0+rax*4]         mov     rax, QWORD PTR [rbp-24]         add     rax, rdx         mov     eax, DWORD PTR [rax]         cmp     DWORD PTR [rbp-4], eax         jge     .L3         mov     eax, DWORD PTR [rbp-8]         cdqe         lea     rdx, [0+rax*4]         mov     rax, QWORD PTR [rbp-24]         add     rax, rdx         mov     eax, DWORD PTR [rax]         mov     DWORD PTR [rbp-4], eax .L3:         add     DWORD PTR [rbp-8], 1 .L2:         mov     eax, DWORD PTR [rbp-8]         cmp     eax, DWORD PTR [rbp-28]         jl      .L4         mov     eax, DWORD PTR [rbp-4]         pop     rbp         ret .LC0:         .string "enter the size of an array" .LC1:         .string "%d" .LC2:         .string "\n Enter the elements in an array:" .LC3:         .string "Largest number in array:%d" main:         push    rbp         mov     rbp, rsp         sub     rsp, 224         mov     edi, OFFSET FLAT:.LC0         mov     eax, 0         call    printf         lea     rax, [rbp-12]         mov     rsi, rax         mov     edi, OFFSET FLAT:.LC1         mov     eax, 0         call    __isoc99_scanf         mov     edi, OFFSET FLAT:.LC2         mov     eax, 0         call    printf         mov     DWORD PTR [rbp-4], 0         jmp     .L7 .L8:         lea     rdx, [rbp-224]         mov     eax, DWORD PTR [rbp-4]         cdqe         sal     rax, 2         add     rax, rdx         mov     rsi, rax         mov     edi, OFFSET FLAT:.LC1         mov     eax, 0         call    __isoc99_scanf         add     DWORD PTR [rbp-4], 1 .L7:         mov     eax, DWORD PTR [rbp-12]         cmp     DWORD PTR [rbp-4], eax         jl      .L8         mov     edx, DWORD PTR [rbp-12]         lea     rax, [rbp-224]         mov     esi, edx         mov     rdi, rax         call    largest(int*, int)         mov     DWORD PTR [rbp-8], eax         mov     eax, DWORD PTR [rbp-8]         mov     esi, eax         mov     edi, OFFSET FLAT:.LC3         mov     eax, 0         call    printf         mov     eax, 0         leave         ret My c code    #include   // C function to find maximum in arr[] of size n   int largest(int a[], int n)   {      // Initialize large element        int large=a[0];   // Traverse array elements from second and   // compare every element with current large    for(int i=1;i

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

 

This is what I have so far I need help with the commenting on the assembly code 

 

I have included my C code that this assembly was generated from 



My assembly code



largest(int*, int):

        push    rbp

        mov     rbp, rsp

        mov     QWORD PTR [rbp-24], rdi

        mov     DWORD PTR [rbp-28], esi

        mov     rax, QWORD PTR [rbp-24]

        mov     eax, DWORD PTR [rax]

        mov     DWORD PTR [rbp-4], eax

        mov     DWORD PTR [rbp-8], 1

        jmp     .L2

.L4:

        mov     eax, DWORD PTR [rbp-8]

        cdqe

        lea     rdx, [0+rax*4]

        mov     rax, QWORD PTR [rbp-24]

        add     rax, rdx

        mov     eax, DWORD PTR [rax]

        cmp     DWORD PTR [rbp-4], eax

        jge     .L3

        mov     eax, DWORD PTR [rbp-8]

        cdqe

        lea     rdx, [0+rax*4]

        mov     rax, QWORD PTR [rbp-24]

        add     rax, rdx

        mov     eax, DWORD PTR [rax]

        mov     DWORD PTR [rbp-4], eax

.L3:

        add     DWORD PTR [rbp-8], 1

.L2:

        mov     eax, DWORD PTR [rbp-8]

        cmp     eax, DWORD PTR [rbp-28]

        jl      .L4

        mov     eax, DWORD PTR [rbp-4]

        pop     rbp

        ret

.LC0:

        .string "enter the size of an array"

.LC1:

        .string "%d"

.LC2:

        .string "\n Enter the elements in an array:"

.LC3:

        .string "Largest number in array:%d"

main:

        push    rbp

        mov     rbp, rsp

        sub     rsp, 224

        mov     edi, OFFSET FLAT:.LC0

        mov     eax, 0

        call    printf

        lea     rax, [rbp-12]

        mov     rsi, rax

        mov     edi, OFFSET FLAT:.LC1

        mov     eax, 0

        call    __isoc99_scanf

        mov     edi, OFFSET FLAT:.LC2

        mov     eax, 0

        call    printf

        mov     DWORD PTR [rbp-4], 0

        jmp     .L7

.L8:

        lea     rdx, [rbp-224]

        mov     eax, DWORD PTR [rbp-4]

        cdqe

        sal     rax, 2

        add     rax, rdx

        mov     rsi, rax

        mov     edi, OFFSET FLAT:.LC1

        mov     eax, 0

        call    __isoc99_scanf

        add     DWORD PTR [rbp-4], 1

.L7:

        mov     eax, DWORD PTR [rbp-12]

        cmp     DWORD PTR [rbp-4], eax

        jl      .L8

        mov     edx, DWORD PTR [rbp-12]

        lea     rax, [rbp-224]

        mov     esi, edx

        mov     rdi, rax

        call    largest(int*, int)

        mov     DWORD PTR [rbp-8], eax

        mov     eax, DWORD PTR [rbp-8]

        mov     esi, eax

        mov     edi, OFFSET FLAT:.LC3

        mov     eax, 0

        call    printf

        mov     eax, 0

        leave

        ret




My c code 

 

#include <stdio.h>

 

// C function to find maximum in arr[] of size n

 

int largest(int a[], int n)

 

{

 

   // Initialize large element

 

     int large=a[0];

 

// Traverse array elements from second and

 

// compare every element with current large

 

 for(int i=1;i<n;i++)

 

    {

 

// If the current element is greater than large, then assign the value of large with the current element

 

        if(large<a[i])

 

        {

 

            large=a[i];

 

        }

 

    }

 

    return large;

 

    }

 

 

 

int main()

 

{

 

// declaration of variables   and array size

 

    int n;

 

    int largest_num;

 

    int a[50];

 

    printf("enter the size of an array");

 

    scanf("%d",&n);

 

    printf("\n Enter the elements in an array:");

 

    for(int i=0;i<n;i++)

 

    {

 

        scanf("%d",&a[i]);

 

    }

 

    largest_num=largest(a,n);

 

    printf("Largest number in array:%d",largest_num);

 

    return 0;

 

}

 

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY