absolute address
|
A virtual (not physical) address within the process’ address space that is computed as an absolute number. |
absolute expression |
An expression that is not subject to link-time relocation. |
alias |
Two identifiers referring to the same element. |
assembler |
A program that translates assembly language into machine language. |
assembly language |
A low level symbolic language closely resembling machine-code language. |
binding |
The process of resolving a symbolic reference in one module by finding the definition of the symbol in another module, and substituting the address of the definition in place of the symbolic reference. The linker binds relocatable object modules together, and the DLL loader binds executable load modules. When searching for a definition, the linker and DLL loader search each module in a certain order, so that a definition of a symbol in one module has precedence over a definition of the same symbol in a later module. This order is called the binding order. |
bundle |
128 bits that include three instructions and a template field. |
COFF |
Common Object File Format, an object-module format. |
directive |
An assembler instruction that does not produce executable code. |
execution time |
The time during which a program is actually executing, not including the time during which the program and its DLLs are being loaded. |
expression |
A sequence of symbols that represents a value. |
function name |
A label that refers to a procedure entry point. |
global symbol |
Symbol visible outside the source file in which it is defined. |
IA-32
|
Intel Architecture-32: the name for Intel’s current 32-bit Instruction Set Architecture (ISA). |
identifier |
Syntactic representation of symbol names using alphabetic or special characters, and digits. |
instruction |
An operation code that performs a specific machine operation. |
instruction group |
Itanium(TM) architecture instructions are organized in instruction groups. Each instruction group contains one or more statically contiguous instructions that execute in parallel. An instruction group must contain at least one instruction; there is no upper limit on the number of instructions in an instruction group. An instruction group is terminated statically by a stop, and dynamically by taken branches. Stops are represented by a double semi-colon (;;). You can explicitly define stops. Stops immediately follow an instruction, or appear on a separate line. They can be inserted between two instructions on the same line, as a semi-colon (;) is used to separate two instructions. |
Instruction Set Architecture
|
The architecture that defines application level resources which include: user-level instructions, addressing modes, segmentation, and user visible register files. instruction tag A label that refers to an instruction. |
ISA |
See Instruction Set Architecture |
Itanium processor |
Name of Intel’s first 64-bit processor. |
label |
A location in memory of code or data. |
link time |
The time when a program, dynamic-link library (DLL), or starred object is processed by the linker. Any activity taking place at link time is static. |
linkage table
|
A table containing text, unwind information, constants, literals, and pointers to imported data symbols and functions. |
local symbol |
Symbol visible only within the source file in which it is defined. |
location counter |
Keeps track of the current address when assembling a program. It starts at zero at the beginning of each segment and increments appropriately as each instruction is assembled. To adjust the location counter of a section, use the .align directive, or the .org directive. |
memory stack
|
A contiguous array of memory locations, commonly referred to as “the stack”, used in many processors to save the state of the calling procedure, pass parameters to the called procedure and store local variables for the currently executing procedure. |
mnemonic |
A predefined assembly-language name for machine instructions, pseudo-ops, directives, and data-allocation statements. |
multiway branch bundle |
A bundle that contains more than one branch instruction. |
name space |
A virtual (not physical) file. The assembler assigns names to a symbol, register, or mnemonic name space. Usually a name is defined only once in each separate name space. A name can be defined twice, in the symbol and register name space. In this case the register name takes precedence over the symbol name. |
operator |
The assembly-language operators indicate arithmetic or bitwise-logic calculations. |
plabel |
See procedure label. |
predicate registers |
64 1-bit predicate registers that control the execution of instructions. The first register, p0, is always treated as 1. |
predication |
The conditional execution of an instruction used to remove branches from code. |
procedure label |
A reference or pointer to a procedure. A procedure label (PLabel) is a special descriptor that uniquely identifies the procedure. The PLabel descriptor contains the address of the function’s actual entry point, and the linkage table pointer. |
pseudo-op
|
An instruction aliasing a machine instruction, provided for the convenience of the programmer. |
qualifying predicate |
The execution of most instructions is gated by a qualifying predicate. If the predicate is true, the instruction executes normally; if the instruction is false the instruction does not modify architectural state or affect program behaviour. |
register rotation |
Software renaming of registers to provide every loop iteration with its own set of registers. |
register stack configuration |
A 64-bit register used to control the register stack engine (RSE). |
relocatable expression |
An expression that is subject to link-time relocation |
rotating registers |
Registers which are rotated by one register position at each loop execution so that the content of register X is in register X+1 after one rotation. The predicate, floating-point, and general registers can be rotated. The registers are rotated in a wrap-around fashion. |
section
|
Portions of an object file, such as code or data, bound to one unit. |
software pipelining |
Pipelining of a loop by way of allowing the processor to execute, in any given time, several instructions in various instructions of the loop. |
stacked registers |
Stacked general registers, starting at r32, used to pass parameters to the called procedure and store local variables for the currently executing procedure. |
statement |
An assembly-language program consists of a series of statements. The following are primary types of assembly-language statements: • label statements • instruction statements • directive statements • assignment statements • equate statements • data allocation statements • cross-data allocation statements |
stop |
Indicates the boundary of an instruction group. It is placed in the code by the assembly writer or compiler. |
symbol declaration |
The symbol address is resolved, not necessarily based on the current module. Declare symbols using a .global or .weak directive. |
symbol definition |
The symbol address is resolved based on the current module. A symbol is defined by assigning it a type and value. You can define a symbol either in an assignment statement, by using it as a label, or with a .common directive. |
temporary symbol |
A symbol name that is not placed in the object-file symbol table. To define a temporary symbol name, precede the name with a period (.). |
weak symbol |
Undefined symbol in object file, resolved during link time. |