Ski IA-64 Simulator Reference Manual 1.0L

4.4.1.3Addresses

An address is specified by a 64 bit hexadecimal number. For example, the command

pj 1000

repositions (“jumps”) the Program Window to address 0x1000. As discussed in Section 6.1, “Application-Mode and Sys- tem-Mode Simulation”, Ski supports generic addresses in application-mode programs (that is, the concept of “virtual memory” doesn’t apply to application mode programs), and physical and virtual addresses in system-mode programs. For system-mode programs, the psr.dt and psr.it bits control whether Ski interprets addresses as physical or virtual. In some cases, you may need to change the value of one or both of these bits temporarily, so that Ski will interpret addresses the way you want. You should restore the bit values before resuming simulation, of course. You can set the psr.dt bit with the Ski command “ = psr.dt 1” and clear the bit with “ = psr.dt 0”. The corresponding commands for the psr.it bit are “ = psr.it 1” and “ = psr.it 0”, respectively.

Addresses may be computed using expressions. For example, the command

dj 1000+0d50

repositions (“jumps”) the Program Window to address 1032, because 1000 (hexadecimal) added to 50 (decimal) is 1032 (hexadecimal). Address expressions are particularly useful in symbolic constructs, as described below.

4.4.2Symbolic Arguments

A symbol is a sequence of characters (a “name”). Examples of symbols are program-defined symbols, registers, internal variables, labels, and filenames. Arguments may (and sometimes must) be expressed symbolically.

4.4.2.1Program-Defined Symbols

A program-defined symbol is an identifier which can be used as a mnemonic for a memory location. Program-defined symbol names are defined in the executable file for the program being simulated. Some symbols are common, well-known names (e.g. printf, main), and others are defined by the programmer (e.g. foo, bar). The symlist command shows you the symbols sorted by address, as Figure 4-2shows.

Figure 4-2. xski’s Symbol List Window

4.4.2.2Registers

A register name is a predefined mnemonic for a processor register. The general registers, for example, are referred to as r0, r1, ..., r127. (The register names Ski recognizes are listed in Section B.1, “IA-64 Registers”.) For example, the com- mand

= r31 ip

4-4 Command Language

Copyright © 2000 Hewlett-Packard Co.

Page 56
Image 56
HP Ski Simulator, IA-64 manual Symbolic Arguments, Addresses, Program-Defined Symbols