Microsoft DirectX 8.0 (C++)

an

These are the address registers. These registers are not available in vertex shader version 1.0 of Microsoft® DirectX® 8.0, and only a single register is available in version 1.1. The address register, designated as a0.x, may be used as signed integer offset in relative addressing into the constant register file.

c[a0.x + n]

Reads from out of the legal range will return (0.0, 0.0, 0.0, 0.0). Address registers may be a destination only for the mov instruction. Address registers cannot be read by the vertex shader, just used in relative addressing of the constant register file. Addresses read from outside the range of constant registers supported will return unpredictable results.

Version 1.0 vertex shaders that make any use of the address register will fail the Microsoft Direct3D® API call to create the vertex shader. Version 1.1 vertex shaders that attempt to use the address register before setting it will also fail.