- Index register
An index register in a computer's CPU is a
processor register used for modifyingoperand addresses during the run of a program, typically for doing vector/array operations. Index registers were first used in the BritishManchester Mark I computer, in1949 .Index registers are used for a special kind of indirect addressing where an "immediate" constant (i.e. which is part of the instruction itself) is added to the contents of a register to form the address to the actual operand or data; architectures which allow more than one register to be used this way naturally have an opcode field for specifying which register to use.
In early computers without any form of indirect addressing, array operations had to be performed either by linearly repeating program code for each array element (i.e. over all address locations), or by using rather "dirty"
self-modifying code techniques – both alternatives leading to quite significant disadvantages in program flexibility and maintenance, as well as being wasteful of computer memory; the latter a very scarce resource in computer installations of the early era (as well as in early microcomputers several decades later).In general, index registers became a standard part of computers during the technology's second generation (roughly 1955–1964). See, for example, the IBM 700/7000 mainframes. Early "small machines" with index registers include the
AN/USQ-17 , around1960 , and the real-time computers fromScientific Data Systems . The firstmicroprocessor with an index register appears to have been theMotorola 6800 , whose upgraded cloneMOS Technology 6502 made good use of two such registers.
Wikimedia Foundation. 2010.