// @topic W130110 C++ program that checks for multiplication overflow // @brief using in-line assembly (__asm) section // main_sm_calc.cpp #include <iostream> #include <cstdlib> /*unsigned short*/ int one = 0x2000; /*unsigned short*/ int two = 0x0100; /*unsigned short*/ int result; /*unsigned short*/ int one32 = 0x2000; //0000; /*unsigned short*/ int two32 = 0x0100; //0000; int main() { while (std::cin) { std::cout << "one32: "; std::cin >> std::hex >> one32; std::cout << "two32: "; std::cin >> std::hex >> two32; //result = one * two; result = one32 * two32; __asm { jo result_overflow jmp result_good } result_overflow: std::cout << "overflow in " << std::dec << one32 << "*" << two32 << "=" << result << " " << std::hex << result << "\n"; //system("pause"); //return 1; continue; result_good: std::cout << "everything okay in " << std::dec << one32 << "*" << two32 << "=" << result << " " << std::hex << result << "\n"; //system("pause"); //return 0; continue; }//while }