Answer the given question with a proper explanation and step-by-step solution. PLEASE PAY ATTENTION TO THE DATA TYPES AND FOLLOW THE CODE AND DIRECTIONS EXACTLY Convert the following C++ program into an x86 assembly language program. Comment the start of each "code block" that performs one of the listed mathematical calculations. Comments go to the right of the actual code, all starting on the same column. Post ONLY your ASM file here to Blackboard when complete. // Global variables char a = 5; char b = 6; char c = 7; char d = 8; char e = 2; char f = 3; char g = 1; char h = 4; // Code int main() { --h; c = g + h; d = e + 22 - c - b; g = -h; ++b; a = g + d - 15; b = a + 92 - b; h = d + (-f) - d; // Move a into the eax register // Move b into the ebx register // Move c into the ecx register // Move d into the edx register // Call the DumpRegs function // Move e into the eax register // Move f into the ebx register // Move g into the ecx register // Move h into the edx register // Call the DumpRegs function e = e - 6; g = 126; --a; b = 15 - e + f; c = -f; d = -h + g - a; e = a + c - a; f = c + 10 - b; // Move a into the eax register // Move b into the ebx register // Move c into the ecx register // Move d into the edx register // Call the DumpRegs function // Move e into the eax register // Move f into the ebx register // Move g into the ecx register // Move h into the edx register // Call the DumpRegs function // Call the WaitMsg function }
Answer the given question with a proper explanation and step-by-step solution.
PLEASE PAY ATTENTION TO THE DATA TYPES AND FOLLOW THE CODE AND DIRECTIONS EXACTLY
Convert the following C++ program into an x86 assembly language program.
Comment the start of each "code block" that performs one of the listed mathematical calculations.
Comments go to the right of the actual code, all starting on the same column.
Post ONLY your ASM file here to Blackboard when complete.
// Global variables
char a = 5;
char b = 6;
char c = 7;
char d = 8;
char e = 2;
char f = 3;
char g = 1;
char h = 4;
// Code
int main()
{
--h;
c = g + h;
d = e + 22 - c - b;
g = -h;
++b;
a = g + d - 15;
b = a + 92 - b;
h = d + (-f) - d;
// Move a into the eax register
// Move b into the ebx register
// Move c into the ecx register
// Move d into the edx register
// Call the DumpRegs function
// Move e into the eax register
// Move f into the ebx register
// Move g into the ecx register
// Move h into the edx register
// Call the DumpRegs function
e = e - 6;
g = 126;
--a;
b = 15 - e + f;
c = -f;
d = -h + g - a;
e = a + c - a;
f = c + 10 - b;
// Move a into the eax register
// Move b into the ebx register
// Move c into the ecx register
// Move d into the edx register
// Call the DumpRegs function
// Move e into the eax register
// Move f into the ebx register
// Move g into the ecx register
// Move h into the edx register
// Call the DumpRegs function
// Call the WaitMsg function
}
Step by step
Solved in 2 steps