iECM-86 COMMANDS
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.
5-9