Computer and Software Support


Debug: P (Proceed)

Page updated January 21, 2005

 

Executes a loop, a repeated string instruction, a software interrupt, or a subroutine. Or, traces through any other instruction. Used without parameters, p lists the registers and their current values.

 
 
Syntax
p [=Address] [Number]
Parameters
Address
Specifies the location of the first instruction to execute. If you do not specify an address, the default address is the current address specified in the CS:IP registers.
Number
Specifies the number of instructions to execute before returning control to Debug.exe. The default value is 1.
?
Displays a list of debug subcommands.
Remarks
  • Windows XP and the Windows Server 2003 family of products do not use this command. It is included only to preserve compatibility with existing MS-DOS files, but it has no effect at the command line because the functionality is automatic.
  • Specifying valid Address entries

    Address is a two-part designation, containing either an alphabetic segment register or a four-digit segment address with an offset value. You can omit the segment register or segment address. CS is the default segment for the following debug subcommands: a, g, l, t, u, and w. DS is the default segment for all other subcommands. All numeric values are in hexadecimal format. You must include a colon between the segment name and the offset value. The following are valid addresses:

    CS:0100

    04BA:0100

  • Using the Address parameter

    If the Address parameter does not specify a segment, Debug.exe uses the CS register of the program being tested. If you omit Address, the program is executed beginning at the address specified by its CS:IP registers. You must precede Address with an equal sign (=) to distinguish it from Number. If the instruction at the specified address is not a loop, a repeated string instruction, a software interrupt, or a subroutine, the p subcommand works the same way as the t (trace) subcommand.

  • Transferring control to the program being tested

    When the p subcommand transfers control from Debug.exe to the program being tested, that program runs without interruption until the loop, repeated string instruction, software interrupt, or subroutine at the specified address is completed, or until the specified number of machine instructions have been executed. Control then returns to Debug.exe.

  • Viewing messages

    After p runs, Debug.exe displays the contents of the program's registers, the status of its flags, and the decoded form of the next instruction to be executed.

    Important

    • You cannot use the p subcommand to trace through read-only memory (ROM).
  • For information about running the program currently in memory by using the g (go) subcommand, see Related Topics.
  • For information about executing one instruction by using the t (trace) subcommand, see Related Topics.
Examples
In this example, the program that you are testing contains a call command instruction at address CS:143F. To run the subroutine that is the destination of call and then return control to Debug.exe, type:

p=143f

Debug.exe displays the results in the following format:

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000

DS=2246 ES=2246 SS=2246 CS=2246 IP=1443 NV UP EI PL NZ AC PO NC

2246:1442 7505 JNZ 144A

Formatting legend

Format Meaning
Italic Information that the user must supply
Bold Elements that the user must type exactly as shown
Ellipsis (...) Parameter that can be repeated several times in a command line
Between brackets ([]) Optional items
Between braces ({}); choices separated by pipe (|). Example: {even|odd} Set of choices from which the user must choose only one
Courier font Code or program output

Some of these terms may be the same or similar to DOS commands. For information on DOS Commands, click here