Ski IA-64 Simulator Reference Manual 1.0L

example is “ xski my_program”. The second way is to use the load, iaload, or romload commands, which take the filename as the first argument, for example, “ load my_program”.

6.5.2Summary of Program Loading Commands

load filename [args]+

Prepare for IA-64 application-mode simulation: Load the file specified by filename and prepares to pass the program args encoded using the C-language argc/argv mechanism. The file must be an IA-64 ELF file.

iaload filename address [mapfile [args]+]

Prepare for IA-32 application-mode simulation: Load the IA-32 executable file specified by filename , which must be an MS-DOS .comor .exe file and prepare to pass the program args encoded using MS-DOS command line argument conventions. The address specifies where Ski should load the program. This should be a physical address; virtual addressing is only supported for system-mode programs. The value you provide is used, along with information from the .exe file or MS-DOS defaults for a .com file, to setup the IA-32 execution environment, such as segment descriptors, the stack pointer, etc. The mapfile is an ASCII text file providing the mappings between symbols and addresses; it must be compatible in format with the mapfile produced by the Microsoft “ML” linker. The psr.is bit is set.

romload filename address [mapfile ]

Prepare for IA-64, IA-32, or mixed system-mode simulation: Load the MS-DOS .com-format file specified by filename . (The MS-DOS .comformat is essentially raw binary.) Address and mapfile are as described for the iaload command above. The address can be physical or virtual, depending on the setting of the psr.it bit, as described in Section 4.4.1.3, “Addresses”.

6.5.3Notes about Program Loading

6.5.3.1Adding Information after Loading

Sometimes, the load file doesn’t contain enough information. In this case, you can use a command file (see Chapter 9, “Command Files”) to add more information. You execute the command file at the appropriate time, generally after loading the program. For example, perhaps you want to test how an application program handles error conditions that are hard to create in a “real” hardware environment. You could load the program and use a command file to create the error condition. Then you would run the program and test its behavior.

As another example, perhaps you want to simulate the transfer of control from a bootstrap program, an interrupt, or an application program to the operating system. You could load the operating system as a system-mode program and use a command file to set up memory and registers to their appropriate state at the instant of the control transfer.

6.5.3.2Creating the argc, argv, and envp Parameters

The first time an application-mode simulated program starts, it receives command line parameters and environment vari- ables using the C language argc/argv/envp mechanism. (IA-32 application-mode programs do not receive environment variables.) By default, the program receives the same command line parameters you gave to Ski when you started it. For example, if you invoked Ski as “ xski my_program foo bar”, Ski would start up using the X Window System interface, load the executable IA-64 program my_program, and use “ foo”, “ bar”, and environment variables to initialize the argc, argv and envp parameters passed on the memory stack. The environment variables are a copy of the variables Ski received from the shell when it started.

Instead of specifying the executable program on Ski’s invocation line as in the example above, you can use the load or iaload commands to load the executable program. You can add extra arguments to load and iaload. Later, when you invoke the run command, Ski will pass the extra arguments to the simulated program as command line parameters. For example, you could issue the command “ load my_program foo bar”. When you run the program, Ski would pass

foo” and “ bar” to the program as command line parameters using the argc/argv/envp mechanism. Note that IA-32 appli- cation-mode programs must be loaded with the iaload command; they cannot be loaded from the Ski invocation line.

6-4

Program Simulation

Copyright © 2000 Hewlett-Packard Co.

Page 68
Image 68
HP Ski Simulator, IA-64 manual Summary of Program Loading Commands, Load filename args+, Adding Information after Loading