Convert the following C++ program into an x86 assembly language program. Make sure to use your “Chapter 8” understanding of advanced functions, parameter passing, and local variables. Post ONLY your ASM file here to Blackboard when complete

 #include

using namespace std;

int IsSemifauxtrifactored(int value)
{
    // Return 1 if a number’s factors/divisors from (value – 1) to 1 sum up to a quarter of the number value
    // Return 0 otherwise

    // A number is called “semifauxtrifactored” if its summed factors/divisors equal a quarter of the number itself
    // Integer division is used, so remainders on the halving can be lost
    // That’s why…

    // 7 is a semifauxtrifactored number
    // 7 divided by 4 with integer division is (7 / 4) = 1
    // 7 % 6 -> 1
    // 7 % 5 -> 2
    // 7 % 4 -> 3
    // 7 % 3 -> 1  
    // 7 % 2 -> 1  
    // 7 % 1 -> 0   FACTOR!
    // 7 is a semifauxtrifactored number since its factors (1) equal a quarter of the number (1)

    // 6 is a normal number
    // 6 divided by 4 with integer division is (6 / 4) = 1
    // 6 % 5 -> 1
    // 6 % 4 -> 2
    // 6 % 3 -> 0   FACTOR!
    // 6 % 2 -> 0   FACTOR!  
    // 6 % 1 -> 0   FACTOR!
    // 6 is a normal number since its factors (1 + 2 + 3) do not equal a quarter of the number (1)
}

int main()
{
    cout << "Enter a value: ";
    int value;
    cin >> value;
    value = IsSemifauxtrifactored(value);
    if (value == 1)
    {
 cout << "The number is semifauxtrifactored!";
    }
    else
    {
 cout << "The number is normal";
    }

    cout << endl;
    system(“PAUSE”);
} 

Tags: No tags