1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Gnesinka [82]
3 years ago
5

int decode2(int x, int y, int z); is compiled into 32bit x86 assembly code. The body of the code is as follows: NOTE: x at %ebp+

8, y at %ebp+12, z at %ebp+16 movl 12(%ebp), %edx subl 16(%ebp), %edx movl %edx, %eax sall $31, %eax sarl $31, %eax imull 8(%ebp), %edx xorl %edx, %eax Parameters x, y, and z are stored at memory locations with offsets 8, 12, and 16 relative to the address in register %ebp. The code stores the return value in register %eax. The shl or sal instruction is used to shift the bits of the operand destination to the left, by the number of bits specified in the count operand Write C code for decode2 that will have an effect equivalent to our assembly Code. int decode2(int x, int y, int z) { }
Computers and Technology
1 answer:
kherson [118]3 years ago
8 0

Answer: provided in the explanation segment

Explanation:

This looks a bit confusing but you can follow through using the provided code.

/*

Line 1. x at %ebp+8, y at %ebp+12, z at %ebp+16

Line 2. movl 12(%ebp), %edx

Line 3. subl 16(%ebp), %edx

Line 4. movl %edx, %eax

Line 5. sall $31, %eax

Line 6. sarl $31, %eax

Line 7. imull 8(%ebp), %edx

Line 8. xorl %edx, %eax

*/

#include<stdio.h>

// function decode above program

int decode2(int x,int y,int z){

  // In Line 2 y is stored in variable

  int var1 = y;

 

  // In Line 3 subtract z from var1 and store in var1

  var1 = var1 - z;

  // In Line 4 move var1 value to another value count

  int count = var1;

  // In Line 5 left shift by 31 value in count

  count<<31;

  // In Line 6 right shift by 31 value in count

  count>>31;

  // In Line 7 multiply x with value in var1

  var1 = var1*x;

  // In Line 8 xor the var1 and count and store in count

  count = var1 ^ count;

  // return count;

  return count;

}

// main function for testing

int main(){

  printf("Enter the value of x ");

  int x;

  scanf("%d",&x);

  printf("Enter the value of y ");

  int y;

  scanf("%d",&y);

  printf("Enter the value of z ");

  int z;

  scanf("%d",&z);

  printf("value of decode2(%d,%d,%d) is %d\n",x,y,z,decode2(x,y,z));

  return 0;

}

cheers i hope this helps

You might be interested in
HELP BRAINLST!!<br><br> How is labor already being automated in supermarkets?
11Alexandr11 [23.1K]

Answer:

Self-checkouts as well.

Explanation:

6 0
3 years ago
Cho một File Input.TXT chứa dãy nhị phân liên tiếp của một văn bản đã mã
Verizon [17]

Answer:

hyfchoofdcgvjoo

Jajosoxjkq

4 0
3 years ago
Read 2 more answers
With a C program (memory map), data in _____ is initialized by the kernel to arithmetic 0 or null pointers before the program st
jolli1 [7]

Answer:

The answer is "  Uninitialized data segment ".

Explanation:

It (memory map) field whenever a C program is locked to run, the kernels must allocate information into 0 or null pointer in this section until the process runs. This variable, that is outside of any function, has been stored in uninitialized data item by the C statement (like, "long amount[1000];").  

If we did not declare the data segment, it also called bss, in which all block which begins with the symbol and is called for an old assembly language operator.

3 0
4 years ago
ANSWER QUICKLY!!! <br><br> What is an advantage of digital portfolios?
algol13
Easy to carry or utilize
8 0
2 years ago
Which is an example of a natural separation of visitors from employees?
natulia [17]

Answer:

d) desk

Explanation:

srry if this is wrong ;

4 0
3 years ago
Other questions:
  • Assume you have a byte-addressable machine that uses 32-bit word (integers are 32-bit) and you are storing the following informa
    5·1 answer
  • Your laptop normally connects to your home wireless network automatically, but recently you have to connect to the network manua
    10·1 answer
  • Which of the following sentences is written in a passive voice
    5·2 answers
  • Write a program that prompts a user to enter numeric values. As each value is entered, the program should: - Append the value to
    7·1 answer
  • How can you tell the difference between subnet addresses and interface addresses?
    13·1 answer
  • What best describes the computer's BIOS (basic input-output system)?
    5·1 answer
  • I NEED THIS ASAP
    12·2 answers
  • Differentiate the term, "bundling," as applied to a Mac/Apple computer and a PC.
    5·1 answer
  • Write a MY SQL query to display the name and hire date of all employees who were hired in 1992.
    9·1 answer
  • Can u guys report me as much as u can I’m trying to delete this account
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!