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

For this assignment you will create a C program that includes inline assembly co

ID: 3789034 • Letter: F

Question

For this assignment you will create a C program that includes inline assembly code. Your code should do the following:

Query the user for a 32-bit integer, saving the integer into an appropriate C variable. Use assembly code to copy the value into another C variable.

Query the user for a 16-bit variable saving the value into an appropriate C variable. Use assembly code to copy the value into another 16-bit C variable.

Query the user for an 8-bit character saving the value into an appropriate C variable. Use assembly code to copy the value into another 8-bit variable.

Copy the 8-bit value entered in step 3 into the lower 8-bit portion of the copied-to variable used in step 1 (using assembly).

Print the results of each of the above steps (using printf in your C code).

Explanation / Answer

#include <stdint.h>
#include<stdio.h>

int main()
{
int n0 , val1 ;
int16_t n1 , val2 ;
char ch, cval;
printf("enter 32bit number ");
scanf("%d",&n0);

    asm ("movl %1, %%ebx;"
         "movl %%ebx, %0;"
         : "=r" ( val1 )        /* output */
         : "r" ( n0 )         /* input */
         : "%ebx"         /* clobbered register */
     );
printf("val =%d",val1);


printf(" enter 16bit number ");
scanf("%d",&n1);

    asm ("movw %1, %%ax;"
         "movw %%ax, %0;"
         : "=r" ( val2 )        /* output */
         : "r" ( n1 )         /* input */
         : "%ax"         /* clobbered register */
     );
printf("val 2 =%d",val2);

printf(" enter char ");
scanf("%c",&ch);

    asm ("movb %1, %%dl;"
         "movb %%dl, %0;"
         : "=r" ( cval )        /* output */
         : "r" ( ch )         /* input */
         : "%dl"         /* clobbered register */
     );
     
printf("character =%c",cval);
return 0;
}

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