Indirect Addressing was available for many of the 7090/94 instructions.
Where indirect addressing was allowed, it was specified in the symbolic coding by placing an asterisk just after the operation code mnemonic (e.g., ADD*). In absolute octal coding, indirect addressing was specified by setting bits 12 and 13 of the instruction word to binary ones.
If index register modification was also used, then the indexing occurred first followed by the indirection.
7090/94 Addressing (All Numbers Octal)
|DIRECT ADDRESSING:||ADD DATA1||If the AC register contained 1500 and the contents of location DATA1, with address 1000, was 2000, then AC would contain 3500 after completion of the operation.|
|INDIRECT ADDRESSING:||ADD* DATA1||If the AC register contained 1500 and if the location 1000 (DATA1) contained 2000 and if location 2000 contained 100, then AC would contain 1600 after completion of the operation. The 2000 contained in DATA1 was interpreted as the address of the operand rather than the operand itself.|
|INDIRECT ADDRESSING WITH INDEXING:||ADD* DATA1, 2||If the AC register contained 1500 and if the index register XR2 contained 200 and if the address of DATA1 was 1000 and if address 1200 contained 3000 and if the contents of location 3000 was 100, then AC would contain 1600 after completion of the operation. The operand DATA1 (located at 1000) is indexed by XR2 (contains 200) to yield an address of 1200 (before the indirection). Location 1200 (containing 3000) is indirected to location 3000 which contains 100 which is added to the AC to obtain the 1600.|
http://www.frobenius.com/Indirect Addressing.htm -- Last Revision: 23 August 2001
Copyright © 1996 - 2018 Jack Harper (unless otherwise noted)