Intel 80L186EB Computer Hardware User Manual


 
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.