Question: Suppose we want to generate assembly code for the following C function: The code that follows is a portion of the assembly code that performs

Suppose we want to generate assembly code for the following C function:

long shift_left4_rightn (long x, long n) { } x < >= n; return x;

The code that follows is a portion of the assembly code that performs the actual shifts and leaves the final value in register %rax. Two key instructions have been omitted. Parameters x and n are stored in registers %rdi and %rsi, respectively.

long shift_left4_rightn (long x, long n) x in %rdi, n in %rsi. shift_left4_rightn: movq %rdi, %rax movl %esi,

Fill in the missing instructions, following the annotations on the right. The right shift should be performed arithmetically.

long shift_left4_rightn (long x, long n) { } x < >= n; return x;

Step by Step Solution

3.39 Rating (143 Votes )

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock

This exercise gives you a chance to generate a little ... View full answer

blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Computer Systems A Programmers Perspective Questions!