Question: Given the following disassembly of a function: // int fun( int x, int y ) // x in %edi, y in %esi fun: movl %edi,%eax
Given the following disassembly of a function:
// int fun( int x, int y ) // x in %edi, y in %esi fun: movl %edi,%eax shrl $0x1f,%eax movl %esi,%edx shrl $0x1f,%edx andl %edx,%eax addl %edi,%esi notl %esi shrl $0x1f,%esi andl %esi,%eax retq
What was the C code for this function?
Question 6 options:
int s= x + y; if ( x & y & !s ) return 1; return 0; | |
int s= x + y; if ( x < 0 && y < 0 && s >= 0 ) return 1; return 0; | |
int s= x + y; if ( x && y && !s ) return 1; return 0; | |
int s= x + y; if ( x < 0 && y < 0 && !s ) return 1; return 0; |
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
