Scientific Computing on Itanium-Based Systems

Chapter 5: Introduction to Itanium Architecture Assembly Language Programming

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].

Itanium Processor Assembly Language

The basic elements of a program written in assembly language are

  • identifiers

  • names symbols, registers, mnemonics

  • constants

  • expressions

  • statements

Identifiers

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.

Names

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

Symbols refer to memory locations, instructions, functions, object file...

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Programmable Logic Controllers (PLC)
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.