For this assignment you will create a C program that include

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).

Solution

#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;
}

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

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site