Intel 80L188EC ユーザーズマニュアル

ページ / 88
5-9
iECM-86 COMMANDS
5
Super-stepping is similar to stepping, except that the super-step command treats an interrupt
service routine or a subroutine call (and the body of the subroutine that is called) as one
indivisible instruction. This allows the user to ignore the details of subroutines and interrupt
service routines while evaluating code. This may allow limited stepping through code while
operating in a concurrent environment, but the system will not operate in real time. A better
approach is to use the GO command to execute to a specified breakpoint and then step through
the code being tested, looking for proper operation. 
iECM-86 implements the step operation by using the trap flag (TF). To step over a given
instruction, iECM-86 sets the trap flag to put the processor into single-step mode. In this mode,
the CPU automatically generates an internal interrupt after each instruction, allowing a program
to be inspected as it executes. After the processor receives this trap interrupt, it restores all of the
user flags overwritten by the iECM flags.
Super-stepping is also accomplished by setting the trap flag, except for CALL instructions, which
are treated as a special case. During a STEP, the iECM-86 sets the trap flag; during a super-step
an INT3 is placed at the instruction following the CALL. Interrupts are suppressed during STEP
operations by saving the user’s IF bit, clearing it before the STEP occurs, and then restoring it.
During a GO or SSTEP command, all instructions are executed by the target.
The iECM-86 commands that implement step operations are the following:
STEP
STEP 
count 
STEP FROM 
code_addr 
STEP FROM 
code_addr   count 
SSTEP 
SSTEP 
count 
SSTEP FROM 
code_addr 
SSTEP FROM
 code_addr   count 
Aside from the style of the actual step operation, the SSTEP and STEP commands behave the
same. They are called single-stepping commands are described as follows. 
{STEP | SSTEP}
This command single-steps one time. 
{STEP | SSTEP} count 
This command single-steps count times.
{STEP | SSTEP} FROM code_addr 
This command loads the user's program counter (PC) with 
code_addr and then single-steps one time.