The identifier you specify as the first argument to .DEFINE_IREG becomes an integer register symbol. Thereafter, it cannot be used as a MACRO-64 identifier. Specifically, the user-defined register symbol is only allowed where a register is allowed. In this sense, the user-defined register symbol is reserved until the end of the assembly unit or until you delete its definition (see .UNDEFINE_REG), whichever occurs first. The second argument to .DEFINE_IREG can be either an integer expression or a currently defined integer register symbol. An integer expression indicates the register number to assign to the register symbol. The expression can contain no forward or external references and must be in the range of 0 to 31. Alternatively, you can define a register symbol in terms of another, currently defined register symbol. A currently defined register symbol is a predefined register symbol or a register symbol that you have previously defined. In this case, the new register symbol you specify with the first argument receives the current value of the register symbol you specify with the second argument.