Registers

Syntax

[[@]]register

The register is the name of a CPU or p-code register. You can specify a register name if you want to use the current value stored in the register. Registers are rarely needed in source-level debugging. However, they are frequently used for lower-level debugging.

When you specify an identifier, CodeView first checks the program's symbol table for the name. If the debugger does not find the name, it checks to see if the name is a register. If you want the identifier to name a register regardless of any name in the symbol table, use an at sign (@) before the register name.

For example, if your program has a symbol called AX, specify @AX to refer to the AX register. You can avoid this conflict by making sure that your program does not use register names as identifiers.

Table 11.1 lists the registers known to CodeView. The p-code registers are available when you are debugging p-code. The 32-bit registers are available on 80386 and 80486 machines when you turn the 386 option on.

Table 11.1 Registers

Register Type Register Names

8-bit high byte AH, BH, CH, DH
8-bit low byte AL, BL, CL, DL
16-bit general purpose AX, BX, CX, DX
16-bit segment CS, DS, SS, ES
16-bit pointer SP, BP, IP
16-bit index SI, DI
16-bit high word* TH
16-bit low word* TL
Quoting* PQ
32-bit general purpose† EAX, EBX, ECX, EDX
32-bit pointer† ESP, EBP
32-bit index† ESI, EDI
 

* Available only when debugging p-code

† Available only when 386 option is turned on