Next: , Previous: Instruction structure, Up: MIX instruction set


2.1.2.2 Loading operators

The following instructions are used to load memory contents into a register.

LDA
Put in rA the contents of cell no. M. OPCODE = 8, MOD = fspec. rA <- V.
LDX
Put in rX the contents of cell no. M. OPCODE = 15, MOD = fspec. rX <- V.
LDi
Put in rIi the contents of cell no. M. OPCODE = 8 + i, MOD = fspec. rIi <- V.
LDAN
Put in rA the contents of cell no. M, with opposite sign. OPCODE = 16, MOD = fspec. rA <- -V.
LDXN
Put in rX the contents of cell no. M, with opposite sign. OPCODE = 23, MOD = fspec. rX <- -V.
LDiN
Put in rIi the contents of cell no. M, with opposite sign. OPCODE = 16 + i, MOD = fspec. rIi <- -V.

In all the above load instructions the `MOD' field selects the bytes of the memory cell with address `M' which are loaded into the requisite register (indicated by the `OPCODE'). For instance, the word `+ 00 13 01 27 11' represents the instruction

     LD3    13,1(3:3)
      ^      ^ ^  ^
      |      | |  |
      |      | |   --- MOD = 27 = 3*8 + 3
      |      |  --- INDEX = 1
      |       --- ADDRESS = 00 13
       --- OPCODE = 11

Let us suppose that, prior to this instruction execution, the state of the MIX computer is the following:

     [rI1] = - 00 01
     [rI3] = + 24 12
     [12] = - 01 02 03 04 05

As, in this case, `M = 13 + [rI1] = 12', we have

     V = [M](3:3) = (- 01 02 03 04 05)(3:3)
       = + 00 00 00 00 03

(note that the specified subfield is left-padded with null bytes to complete a word). Hence, the MIX state, after the instruction execution, will be

     [rI1] = - 00 01
     [rI3] = + 00 03
     [12] = - 01 02 03 04 05

To further illustrate loading operators, the following table shows the contents of `rX' after different `LDX' instructions:

`LDX 12(0:0) [rX] = - 00 00 00 00 00'
`LDX 12(0:1) [rX] = - 00 00 00 00 01'
`LDX 12(3:5) [rX] = + 00 00 03 04 05'
`LDX 12(3:4) [rX] = + 00 00 00 03 04'
`LDX 12(0:5) [rX] = - 01 02 03 04 05'