What is the first step in the Engineering Design process?
What is the first step in the Engineering Design process?
What is the first step in the Engineering Design process?
Questions
Whаt is the first step in the Engineering Design prоcess?
Questiоn 3 [CLO 3]: Technicаl Essаy - Assembly Instructiоns: This questiоn hаs three parts (A, B, C). Answer ALL parts. Show your work. Part A - Assembly to C Conversion (3 points)The following assembly is the disassembled output of a C program. Translate it into its equivalent C code. Identify all variables, their initial values, and all operations. push ebpmov ebp, espsub esp, 10hmov dword ptr [ebp-4], 16hmov dword ptr [ebp-8], 5mov eax, [ebp-4]add eax, [ebp-8]mov [ebp-0Ch], eaxmov ecx, [ebp-4]sub ecx, [ebp-8]mov [ebp-10h], ecxmov eax, 0leaveret Hint: 0x16h = 22 in decimal. Identify what [ebp-0Ch] and [ebp-10h] represent. Your Answer (write equivalent C code): Part B - Assembly Trace & If-Else with XOR (4 points) Analyze the following assembly. It contains an if-else branch and bitwise XOR operations. mov dword ptr [ebp-4], 1cmp dword ptr [ebp-4], 0jnz loc_40101Cmov eax, [ebp-4]xor eax, 2mov [ebp-4], eaxjmp loc_401025loc_40101C:mov ecx, [ebp-4]xor ecx, 3mov [ebp-4], ecxloc_401025: Hint: jnz jumps if the result is NOT zero. 1 XOR 3 in binary: 01 XOR 11 = 10 = 2. (i) Trace the code step by step and determine the final value of [ebp-4]. (2 pts) (ii) Write the equivalent C code. (2 pts) Part C - C to Assembly Conversion (3 points)Convert the following C program into x86-32 Intel syntax assembly. Include the complete _adder function andthe relevant part of _main that calls it. Use proper prologue, epilogue, and CDECL stack-based argumentpassing. int adder(int a, int b) {return a + b;}void main() {int x = 1;int y = 2;printf("result: %dn", adder(x, y));} Requirements: In _adder: a at [ebp+8], b at [ebp+12]. In _main: push args right-to-left, call _adder, clean stack (add esp,8), then push result for printf. Your Answer (write x86-32 Intel syntax assembly):