Back Next

Direct
  Location of data specified by a memory location specified by the operand.

  Value absolute (unsigned) memory address.

  Some systems may further separate instruction into sub-classes.
    Zero page (or near) - 1 byte operand (1st 256 addresses of memory)
      6502: LDA $42  # generally considered obsolete.

    Absolute - size of address register (segment size).
      May or may not involve additional implied registers.

      6502: LDA $2403 - different opcode than zero page version.
      8086: RCL MEMOLOC,1 - rotate through carry left, absolute address 
        operand combined with an immediate operand. Segment register implied. 
            JMP TARGET

    Far (Intel) - operand specifies full address using named segment and 
      numeric value stored in operand. 
      8086: JMPF SEGID:ADDRESS

    RISC - 32 bit instruction, m bit opcode, n bit register target, p bits
      to specify address, so limited to 1st Meg of memory.
   
  Makes relocating code difficult unless using virtual memory support. 

  The 360 architecture only provides direct addressing to the 1st 4K of
    memory, and uses an unusual feature of the R0 register.

    IBM360: L R1,42(0,0) (Memory @0 - 4095).

    When used as a base or index, R0 is always considered = 0;