本文整理汇总了C++中Breakpoint::GetOperandFlags方法的典型用法代码示例。如果您正苦于以下问题:C++ Breakpoint::GetOperandFlags方法的具体用法?C++ Breakpoint::GetOperandFlags怎么用?C++ Breakpoint::GetOperandFlags使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Breakpoint
的用法示例。
在下文中一共展示了Breakpoint::GetOperandFlags方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
bool Core65c02::Execute (unsigned int count)
{
bool hit_breakpoint = false;
Breakpoint * bp = 0;
unbuild_P(P);
while (count && !hit_breakpoint)
{
--count;
/* check for interrupts */
if (interrupt_flags)
{
if ((I == 0) && (interrupt_flags & F_IRQ))
interrupt(IRQ_VECTOR, F_IRQ);
else if (interrupt_flags & F_NMI)
interrupt(NMI_VECTOR, F_NMI);
else if (interrupt_flags & F_RESET)
interrupt(RES_VECTOR, F_RESET);
else if ((I==0) && (interrupt_flags & F_PAD_A_IRQ))
{
printf("got keyboard interrupt\n");
interrupt(PAD_A_IRQ_VECTOR, F_PAD_A_IRQ);
}
}
/* fetch, decode, and execute and instruction */
opcode = READ(emPC); ++emPC;
EXECUTE(opcode);
++num_instructions;
/* tick the clock for interested parties */
if (num_clockusers != 0)
{
unsigned long long time = 1000000000;
time = (time * cycle_clock) / frequency;
for (int idx = 0; idx < num_clockusers; ++idx)
clockuser[idx]->TellTime(time);
}
/* check for encountered breakpoints */
int nbkpts = bpm->NumBreakpoints();
if (nbkpts != 0)
{
/* must count down (not up) because of automatic breakpoint deletion */
while (nbkpts--)
{
bp = bpm->GetBreakpointAtIndex(nbkpts);
if (bp->IsEnabled() == false)
continue;
if (bp->GetOperandFlags() == bp_PC)
{
if (bp->GetConditionFlags() == bp_equal)
if (bp->GetAddress() == emPC)
{
hit_breakpoint = true;
if (bp->IsAutomatic())
bpm->DeleteBreakpoint(bp);
}
}
else if (bp->GetOperandFlags() == bp_S)
{
if (bp->GetConditionFlags() == bp_equal)
if (bp->GetValue() == S)
{
hit_breakpoint = true;
if (bp->IsAutomatic())
bpm->DeleteBreakpoint(bp);
}
}
}
}
}
P = build_P();
return hit_breakpoint;
}