ASSIGNMENT

  • Copy and paste the code below to https://godbolt.org
  • Use the following compiler for the ASM code generation: <strong>x86-64 clang 10.0.0</strong>
  • Under the compiler options, use -Os
  • Create a separate text file or markdown (MD) file to explain the x86 registers being used in the assembly
    • Example: RBP, RSP, EAX, EDI (you will need to research, but with Google, you will be okay)
  • Create a separate text file or markdown (MD) file:
    • Explain each and every single line of the ASM program
    • You do not have to explain the C code
    • Attempt to provide the WHY rather than the WHAT
    • For example, do not just say “Moving R1 to R0” but state that “Moving R1 to R0 such that we can pass that as the first parameter to printf”
    #include <stdio.h>
    #include <stdlib.h>
    
    __attribute__((noinline))
    int sum2(int a, int b) {
        return a + b;
    }
    
    __attribute__((noinline))
    void print_the_value(int value) {
        printf("%d", value);
    }
    
    void entry_point() {
        int a = rand(); // R4
        int b = rand(); // R0
        int result = sum2(b, a);
        print_the_value(result);

    }


    Customer Area

    Make your order right away

    Confidentiality and privacy guaranteed

    satisfaction guaranteed