# Referencing data

Data can be referenced from the monitor debugger either
in the virtual space or in the real memory space.

## Data specifications

Data location is specified
in this form:

```
address{;window}
```
Note: The data always displays in hexadecimal.

## Virtual address specification

The address
of a virtual element is specified in this form:

```
[rreg|{.}fid][.|,]disp
```
The base frame-ID (FID) is either the content of the register
or a FID number in decimal or in hexadecimal, prefixed by a period.
The displacement is either expressed in decimal, prefixed by a comma,
or in hexadecimal, prefixed by a period.

## Example(s)

Offset x'300' in frame 1.

```
1.300
```
Offset 16 in frame x'12'.

```
.12,16
```
Offset x'100' off the location pointer at by register
3.

```
r3.100
```

## Monitor Address Specification

The address
of a monitor element is specified in this form:

```
{[l|g] }.hexaddress{[+|-] {.}offset}
```
or

```
/symbol{[+|-] {.}offset}
```
where

| l | Used for local data. |
| --- | --- |
| g | Used for global data. |
The second form requires the presence of the file sdb.sym on the current directory or on /usr/lib/pick. This file is not shipped with the system. It is reserved for development
purposes only.

The optional offset, which is added to or subtracted
from the *n* base address, is either expressed in
decimal or in hexadecimal, if prefixed by a period.

## Example(s)

Absolute address.

```
.40000100
```
First address in the local data space.

```
l.0
```
Offset x'10' off the address x'100' in global data space.

```
g.100+.10
```
Address of symbol sys.time.

```
/sys.time
```
Offset +x'100' off the symbol tcb0.

```
/tcb0+.100
```

## Window specification

The window specifies
the number of bytes to display. The window is expressed in decimal
or in hexadecimal (prefixed by a period). The default window size
is 4. When using a symbolic name, the window is set automatically.

---
Source: https://d3codex.com/unix/referencing-data/ - part of the D3Codex reference.
