Scientific Computing on Itanium-Based Systems

The programming elements introduced in the previous chapters are followed in this chapter by more information on how to write or interface with routines in Itanium assembly language. The first half of the chapter contains an overview of the assembly language for Itanium processors. The second half describes some of the most common 64-bit software and run-time architecture conventions for the Intel Itanium architecture [1].
The basic elements of a program written in assembly language are
identifiers
names symbols, registers, mnemonics
constants
expressions
statements
Identifiers represent symbolic names for machine instructions, memory locations, constants, or sections in the object file. (A section is a portion of an object file, such as code or data, looked upon as one unit.) Letters, digits, and a few special characters (@, _, ?,.) can be used in identifiers, but the first character cannot be a digit. For example fma, label0, _label0, PI, @pos, and .text are all valid identifiers.
There are three different name spaces, for
symbols for example label0, var1, Var1
registers such as r2, f6, F6, ar.fpsr
mnemonics for example fma, fmpy, fadd
Only the symbols are case sensitive, so while var1 and Var1 are different, f6 and F6 are identical. A name may not be defined twice in the same space, but it is possible to define it once in each name space.
Symbols refer to memory locations, instructions, functions, object file...