void print_result(sc_type_result table)
{
    sc_type_result::iterator it;
    printf("RESULT (%d):\n", table.size());
    for (it = table.begin() ; it != table.end(); it++)
    {
        sc_addr addr1 = (*it).first;
        sc_addr addr2 = (*it).second;
        std::cout << addr1.seg << "|" << addr1.offset << "=>" << addr2.seg << "|" << addr2.offset << std::endl;
    }
}
void print_result(sc_memory_context *context, sc_type_result table)
{
    sc_type_result::iterator it;
    printf("RESULT (%d):\n", (int)table.size());
    for (it = table.begin() ; it != table.end(); it++)
    {
        sc_addr addr1 = (*it).first;
        sc_addr addr2 = (*it).second;
        printIdtf(context, addr1);
        std::cout << " => ";
        printIdtf(context, addr2);
        std::cout << std::endl;
        //std::cout << addr1.seg << "|" << addr1.offset << "=>" << addr2.seg << "|" << addr2.offset << std::endl;
    }
}